首页 > 其他分享 >【Kafka专栏】-Kafka从初始到搭建到应用

【Kafka专栏】-Kafka从初始到搭建到应用

时间:2022-12-30 17:38:16浏览次数:70  
标签:node2 -- kafka topic 2181 专栏 Kafka 搭建



=========================================================

声明:由于不同平台阅读格式不一致(尤其源码部分),所以获取更多阅读体验!!

个人网站地址:​http://www.lhworldblog.com/

==========================================================



一、前述

Kafka是一个分布式的消息队列系统(Message Queue)。

【Kafka专栏】-Kafka从初始到搭建到应用_zookeeper

kafka集群有多个Broker服务器组成,每个类型的消息被定义为topic。

同一topic内部的消息按照一定的key和算法被分区(partition)存储在不同的Broker上。

消息生产者producer和消费者consumer可以在多个Broker上生产/消费topic。

二、概念理解

Topics and Logs:

 

Topic即为每条发布到Kafka集群的消息都有一个类别,topic在Kafka中可以由多个消费者订阅、消费。

每个topic包含一个或多个partition(分区),partition数量可以在创建topic时指定,每个分区日志中记录了该分区的数据以及索引信息。如下图:

【Kafka专栏】-Kafka从初始到搭建到应用_服务器_02

Kafka只保证一个分区内的消息有序,不能保证一个主题的不同分区之间的消息有序。如果你想要保证所有的消息都绝对有序可以只为一个主题分配一个分区。(分区内有序,一个主题topic不一定是有序的)

分区会给每个消息记录分配一个顺序ID号(偏移量),能够唯一地标识该分区中的每个记录。Kafka集群保留所有发布的记录,不管这个记录有没有被消费过,Kafka提供相应策略通过配置从而对旧数据处理。

【Kafka专栏】-Kafka从初始到搭建到应用_kafka_03

 

 

实际上,每个消费者唯一保存的元数据信息就是消费者当前消费日志的位移位置。位移位置是由消费者控制,即、消费者可以通过修改偏移量读取任何位置的数据

 

Producers -- 生产者

 

指定topic来发送消息到Kafka Broker

Consumers -- 消费者

根据topic消费相应的消息

三、集群安装

 

集群规划

Zookeeper集群共三台服务器,分别为:node1、node2、node3。

Kafka集群共三台服务器,分别为:node1、node2、node3。

 

安装Kafka:

tar zxvf kafka_2.10-0.9.0.1.tgz -C /opt/

mv kafka_2.10-0.9.0.1/ kafka

修改配置文件:config/server.properties

 

【Kafka专栏】-Kafka从初始到搭建到应用_zookeeper_04

 

【Kafka专栏】-Kafka从初始到搭建到应用_kafka_05

核心配置参数说明:

broker.id: broker集群中唯一标识id,0、1、2、3依次增长(broker即Kafka集群中的一台服务器

注:

当前Kafka集群共三台节点,分别为:node1、node2、node3。对应的broker.id分别为0、1、2。

zookeeper.connect: zk集群地址列表

当前node1服务器上的Kafka目录同步到其他node2、node3服务器上:

scp -r /opt/kafka/ node2:/opt

scp -r /opt/kafka/ node3:/opt

 

修改node2、node3上Kafka配置文件中的broker.id(分别在node2、3服务器上执行以下命令修改broker.id)(当集群大时,使用此安装命令)

 

sed -i -e 's/broker.id=.*/broker.id=1/' /opt/kafka/config/server.properties

sed -i -e 's/broker.id=.*/broker.id=2/' /opt/kafka/config/server.properties

 

 启动kakka集群

 

A、启动Zookeeper集群。

B、启动Kafka集群。

分别在三台服务器上执行以下命令启动:

bin/kafka-server-start.sh config/server.properties

 

 测试

 

(kafka-topics.sh --help查看帮助手册)

创建topic话题:

bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --create --replication-factor 2 --partitions 3 --topic test

 

(参数说明:

--replication-factor:指定每个分区的复制因子个数,默认1个

--partitions:指定当前创建的kafka分区数量,默认为1个

--topic:指定新建topic的名称)

 

查看topic列表:

bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --list

 

查看“test”topic描述:

bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --describe --topic test

 

创建生产者:

bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test

 

创建消费者:

bin/kafka-console-consumer.sh --zookeeper node1:2181,node2:2181,node3:2181 --from-beginning --topic test

注:

查看帮助手册:

bin/kafka-console-consumer.sh help

标签:node2,--,kafka,topic,2181,专栏,Kafka,搭建
From: https://blog.51cto.com/u_11936913/5980840

相关文章

  • 【Storm篇】--Storm从初始到分布式搭建
    =========================================================声明:由于不同平台阅读格式不一致(尤其源码部分),所以获取更多阅读体验!!个人网站地址:​​http://www.lhworldblog.......
  • FTP搭建YUM源
    一、需求背景    在一些涉密单位,为了更好的维护好内网环境,虚拟机一般都是禁止上外网的,并且接外设必须是客户自己的或者必我们的也必须现场认证一下,windows的话可以......
  • 【Sqoop篇】----Sqoop从搭建到应用案例
    =========================================================声明:由于不同平台阅读格式不一致(尤其源码部分),所以获取更多阅读体验!!个人网站地址:​​http://www.lhworldblog.......
  • MongoDB分片集群搭建
    MongoDB简介MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库......
  • Linux搭建ELK+Filebeat+Redis分布式日志管理平台
    ELK介绍需求背景业务发展越来越庞大,服务器越来越多各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志开发人员排查问题,需要到服务器上查日志,不......
  • Linux搭建Hadoop-2.7.2分布式集群
    Hadoop简介Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Had......
  • ELK+Filebeat+Kafka分布式日志管理平台搭建
    ELK介绍需求背景业务发展越来越庞大,服务器越来越多各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志开发人员排查问题,需要到服务器上查日志,不......
  • Linux搭建ELK+Filebeat+Nginx+Redis分布式日志管理平台
    ELK介绍需求背景业务发展越来越庞大,服务器越来越多各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志开发人员排查问题,需要到服务器上查日志,不......
  • Linux搭建ELK-7.5.1分布式集群并且配置X-Pack
    ELK介绍需求背景业务发展越来越庞大,服务器越来越多各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志开发人员排查问题,需要到服务器上查日志,不......
  • Docker搭建Portainer可视化界面
    一、什么是Portainer?Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示......