kafka的认识,安装zookeeper,kafka
Posted yangxiaoli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka的认识,安装zookeeper,kafka相关的知识,希望对你有一定的参考价值。
一,kafka是什么
kafka是一个分布式的发布-订阅消息系统,能够支持海量的数据传递,在高效和实时的消息处理业务系统中,kafka都有广泛应用,kafka将消息持久化到磁盘中,并且创建了备份保存了数据的安全,kafka在保证了较高的处理速度的同时,又能保证数据处理的低延迟和数据的零丢失。
二,特性
1、高吞吐量,低延迟:kafka每秒可以处理几十万条数据,他的延迟最低只有几毫秒,每个主题可以分多个分区,消费组对分区进行消费。
2、可扩展性:kafka集群支持热扩展
3、持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份,防止数据丢失
4、容错性:允许集群中节点失败
5、高并发:支持数千个客户端同时读写
三、概念详解
1、Producer :数据的生产者将数据发布到kafka的topic中,broker接收到生产者发送的消息之后,将该消息追加到当前用于追加数据的segment文件中,生产者发送的消息,存储到一个partition(分区)中,生产者也可以指定存储在某一个分区中
2、Consumer: 消费者可以从broker中读取数据,消费者可以消费多个topic中的数据
3、Topic:消息的种类
4、Partition: topic中的数据分割成一个活多个partition(分区),每个topic至少有一个partition。每个partition的数据使用多个segment文件存储。partition中的数据存储是有序的,如果topic有多个partition,消费数据时不能保证数据的顺序,在需要严格保证消息的消息顺序的场景下,需要将partition数目设为1
5、Partition Offset :每条消息在分区中存在的位置
6、Replicas of partition:副本是一个分区的备份,副本不会被消费者消费,副本只能防止数据丢失
7.broker:kafka集群包含一个或多个服务器,服务器节点称为broker,broker存储topic的数据
8、Leader: 负责数据的读写,每个partition有多个副本,其中有且仅有一个作为leader
9、Follower: follower跟随leader,所有写的请求都通过leader路由,数据变更会广播给所有的follower,follower与leader保持同步,如果leader失效,就从follower中选举一个新的leader,当两者都挂掉,卡住、或者同步太慢,leader会把这个follower从”in sync replicas“(ISR)列表中删除,重新创建一个follower
10、zookeeper: 负责维护和协调broker,当kafka系统中新增或者某个broker发生故障失效时,由zookeeper通知生产者和消费者,生产者和消费者根据zookeeper的broker状态信息协调数据的发布和订阅任务
11、AR(Assigned Replicas): 分区中所有副本统称为AR
12、ISR(in sync replicas): 所有与leader部分保持一定程度的副本(包括leader副本在内)组成ISR
13、OSR(Out_of_Sync Replicas): 与leader副本同步滞后过多的副本
14、HW(Hign Watermark):高水位,标识了一个特定的offset,消费者只能拉取到这个offset之前的消息
15、LEO(Log End Offset): 即日志末端位移,记录了该副本底层日志中下一条消息的位移值,也就是说,如果LEO=10,那么标识该副本保存了10条消息,位移值范围是[0,9]
四、安装zookeeper
zookeeper是安装Kafka的必要组件,Kafka通过zookeeper来实现对元数据信的 管理,包括集群、主题、分区等内容。
-
- 官网下载zookeeper,上传致虚拟机
解压tar -zxvf zookeeper-3.4.14.tar.gz
- 修改zookeeper的配置文件,进入安装路径conf目录,将zoo.sample.cfg改为zoo.cfg
- 启动zookeeper 进入bin目录: zkServer.sh start
- 如果命令找不到,可以去配置环境变量
- 官网下载zookeeper,上传致虚拟机
五、安装Kafka
- 官网下载,上传虚拟机
- 解压启动 bin/kafka-server-start.sh config/server.properties
- 在server.properties中需要注意:
- 启动完成之后,重新打开一个终端,验证启动进程
六、测试消息生产与消费
1、创建一个主题
bin/kafka-topics.sh -z00keeper localhost:2181 -create -topic heima -partitions 2 -replication-factor 1
2、查看主题
命令: bin/kafka- topics.sh -2ookeeper localhost:2181 -list
3、查看主题详情
命令:bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic yangxiaoli
4.启动消费方接收消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic yangxiaoli
5.生产者发送消息
命令: bin/kafka-console-producer.sh -broker-list 192.168.117.129:9092 --topic yangxiaoli
以上是关于kafka的认识,安装zookeeper,kafka的主要内容,如果未能解决你的问题,请参考以下文章