学习kafka
一、简介
- kafka是一个分布式的消息队列,可以集群部署,消息队列的作用如下。
-
kafka对消息保存时根据Topic进行归类。发送消息者称为Producer,消息接受者称为Consumer。
kafka集群有多个kafka实例,每个实例称为broker。 -
无论是kafka就集群,还是consumer都依赖于
zookeeper
集群保存一些meta信息,保证系统可用性。 -
kafka的Topic是分区的形式分布在不同的实例上,每个分区有N个副本,N个副本中有一个是Leader,N-1个Followers。
-
一个消费者组中的消费者不能同时消费同一个分区。
-
kafka的工作架构如下。
二、简单使用
以一个三节点的kafka集群为例(伪分布式方式)
2.1 配置文件
2.1.1 config/server.properties
conf/server.properties是kafka的主要配置文件,主要修改以下属性。
- listeners: 这个broker(kafka进程)监听的端口
- broker.id: 这个broker在zookeeper中注册的id号,全局唯一的,不同的broker一定不要相同。
- log.dirs: 日志的输出文件。
- zookeeper.connect: 集群中所有zookeeper的hostname:port ,逗号隔开。
2.1.2 config/zookeeper.properties
config/zookeeper.properties是zookeeper的配置文件,修改以下属性
- dataDir: 因为是伪分布式部署,所以数据文件路径最好不要相同
- clientPort: 伪分布式,端口不能相同。
2.2 启动集群zookeeper服务
因为是伪分布式,所以只要在其中