kafka概述:
定义
kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),主要应用于大数据实时处理领域
kafka对消息保存时根据Topic进行归类,发送消息成为Producer、消息接收者称为Consumer、此外kafka集群有多个kafka实例组成、每个实例(sever)成为broker
无论时kafka集群,还是consumer都依赖于zookeeper集群保存一些信息、来保证系统可用性
ps:读写请求都是leader、follower只是数据备份、每个leader的follower不能放在同一个broker下面
同一个组的消费者不能同时消费一个分区的数据
broker的partition的lader信息、和topic信息都存在zookeep集群里面,可以到zookeeper下面查找到topic、查看leader信息
消息队列
点对点模式(一对一,消费者主动拉去数据、消息收到后消息清除、缺点:要实时监控服务端是否有数据
发布/订阅模式(一对多,数据生产后,推送给所有订阅者)
消息队列优点:
解耦
冗余
扩展性
灵活¥&峰值处理能力
可恢复性
顺序保证
缓冲
异步通信
kafka集群部署
bin目录存放启动文件,kafka启动、topic创建、producer生产者创建、consumer消费者创建文件。config存放系统配置文件。server.properlies
1、修改配置文件:vim server.properties
broker.id=1#这是这台broker的值
添加:zookeeper.connect=192.168.172.12:12181,192.168.172.11:12181,192.168.172.10:12181
#这个是zookeeper集群的ip+端口
2、启动服务、进入kafka/bin目录
启动kafka程序
nohup ./kafka-server-start.sh -daemon ../config/server.properties& #后台永久启动
3、检查服务是否启动
jps #查看所有java程序启动
4、创建topic来验证是否成功
./kafka-topics.sh --create --zookeeper 192.168.172.10:12181 --replication-factor 2 -- partitions 1 --topic my-topic
参数解释:replication-factor 2 创建2个副本
partitions 1 创建一个分区
topic my-topic 主题名称
5、创建一个生产者producer,生产者连kafka地址+端口
进入kafka/bin目录下有一个kafka-console-consumer.sh执行文件
./kafka-console-producer.sh --broker-list 192.168.7.70:9092 --topic my-topic
执行命令后开始输入数据
6、在另一台虚拟机创建一个消费者cunsumer、消费者连的市zookeeper集群地址+端口
./kafka-console-consumer.sh --zookeeper 192.168..7.70:2181 --topic my-topic
启动消费者后会自动去读取生产者的数据
7、可以到
实例截图: