1. 调度服务-zookeeper
启动zookeeper-server
服务运行如下语句:
bin/zookeeper-server-start.sh config/zookeeper.properties
2. 缓存服务-kafka
kafka
可使用多个服务器(节点)缓存消息数据,可称为经纪人
、broker
、kafka
,每个kafka-server
拥有唯一的broker id
。
启动kafka-server
服务运行如下语句:
bin/kafka-server-start.sh config/server.properties
可启动多个缓存服务用于接收生产者的数据,同时一个节点可以为多个topic
主题服务。
bin/kafka-server-start.sh config/server-1.properties
bin/kafka-server-start.sh config/server-2.properties
3. 指定消息源
消息源这里称为topic
,用于标识不同的业务或者数据源,创建生产者和消费者的时候需要指定。
topic
相关操作:
# 创建topic
# 副本因子: --replication-factor数量,此处指定为1
# 如果副本因子副本因子是3,此处会分配3个kafka缓存服务来处理此主题的消息
# 分区: --partitions数量,此处指定为1
# topic名称:--topic名称,此处设置为topic_A
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_A
# 查看所有
> bin/kafka-topics.sh --list --zookeeper localhost:2181
# 描述topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic_A
描述副本因子为3主题名称为topic_A的信息为:
Topic: topic_A
PartitionCount: 1
ReplicationFactor: 3
Configs:
Topic: topic_A
Partition: 0
Leader: 1
Replicas: 1,2,0 对应kafka服务节点broker id,展现存活和不存活的服务
Isr: 1,2,0 对应kafka服务节点broker id,表示现存存活的服务
4. 启动控制台生产者
控制台生产者,生产数据给消费者处理,需要指定topic
:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic_A
其中生产者产生的指定topic
的数据首先传输给分配的kafka leader
节点。
5. 启动控制台消费者
控制台消费者,处理kafka
节点传输的指定topic
的数据:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_A --from-beginning