【Kafka】安装测试
知识点
kafka的俗语解释
broker: kafka集群包含一个或多个服务器,服务器节点称为broker
broker存储topic的数据。如果某topicKafka 集群包含一个或多个服务器,服务器节点称为broker。
broker存储topic的数据。如果某topic有N个partition,集群有N个broker,那么每个broker存储该topic的一个partition。
如果某topic有N个partition,集群有(N M)个broker,那么其中有N个broker存储该topic的一个partition,剩下的M个broker不存储该topic的partition数据。
如果某topic有N个partition,集群中broker数目少于N个,那么一个broker存储该topic的一个或多个partition。在实际生产环境中,尽量避免这种情况的发生,这种情况容易导致Kafka集群数据不均衡。
topic: 每条发布到kafka集群的消息都有一个类别,这个类别称为Topic,类似于数据库的表名
Partition: topic 中的数据分割为一个或者多个partition 每个topic至少有一个partition。每个partition中的数据使用多个segment文件存储。partition中的数据是有序的,不同partition间的数据丢失了数据的顺序。如果topic有多个partition,消费数据时就不能保证数据的顺序。在需要严格保证消息的消费顺序的场景下,需要将partition数目设为1。
Producer : 生产者就是数据的发布在,该角色将消息发布到Kafka的topic中broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的segment文件中,生产者发送的消息,存储到一个partition中,生产者也可以指定数据存储的partition。
Consumer : 消费者可以从broker中读取数据。消费者可以消费多个topic中的数据。
Consumer Group :每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
Leader:每个partition有多个副本,其中有且仅有一个作为Leader,Leader是当前负责数据的读写的partition。
Follower:Follower跟随Leader,所有写请求都通过Leader路由,数据变更会广播给所有Follower,Follower与Leader保持数据同步。如果Leader失效,则从Follower中选举出一个新的Leader。当Follower与Leader挂掉、卡住或者同步太慢,leader会把这个follower从“in sync replicas”(ISR)列表中删除,重新创建一个Follower。
Kafka基本架构的介绍:
-
Broker Kafka集群包含一个或多个服务器,这种服务器被称为broker
-
Topic 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
-
Partition Partition是物理上的概念,每个Topic包含一个或多个Partition.
-
Producer 负责发布消息到Kafka broker
-
Consumer 消息消费者,向Kafka broker读取消息的客户端。
-
Consumer Group 每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
1.Java环境
2.Kafka安装
本次实验Kafka版本为:kafka_2.11-2.0.0
安装包内已经附带zookeeper,不需要额外安装zookeeper
3.Zookeeper启动
Kafka根目录下运行:
bin/zookeeper-server-start.sh config/zookeeper.properties
出现:
INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
表示ZooKeeper已经成功地在端口2181上启动了。
4.Kafka服务器启动
(Zookeeper启动状态下)
Kafaka根目录下运行:
bin/kafka-server-start.sh config/server.properties
控制台输出:
INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
表示Kafka服务器启动成功,默认端口是9092.
5.创建Topic、查看Topic状态
创建一个topic用于消息的发送与接收。
bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic test --partitions 1 --replication-factor 1
该topic名字是test,分区partition数量为1,副本replication数量为1。
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
6.Producer、Consumer视角
1.Producer
kafka默认提供了脚本工具,可以不断地接受标准输入,并将它们发送到kafka的某个topic上的分区上。 启动以下命令后,输入一行文本数据,脚本将该文本封装成一条kafka消息发送给指定的topic。
Kafaka根目录下运行:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
每当按下回车键后该行文本即会被发送
2.Consumer
Kafka根目录下运行:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
Reference
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanejba
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24