一:kafka组件
kafka服务:
Topic:主题,Kafka处理的消息的不同分类。
Broker:消息的代理,Kafka集群中的一个kafka服务节点称为一个broker,主要存储消息数据。存在硬盘中。每个topic都是有分区的。
Partition:Topic物理上的分组,一个topic在broker中被分为1个或者多个partition,分区在创建topic的时候指定。
Message:消息,是通信的基本单位,每个消息都属于一个partition。
kafka服务相关:
Producer:消息和数据的生产者,向Kafka的一个topic发布消息。
Consumer:消息和数据的消费者,订阅topic并处理其发布的消息。
zookeeper:协调kafka的正常运行。
二:kafka的集群安装
1:启动zookeeper集群(注意是集群不是简单的三个节点自带的zk启动)
2:修改配置文件
vi /opt/kafka/config/server.properties
broker.id=0
log.dirs=/opt/kafka_logs
zookeeper.connect=localhost0:2181,localhost1:2181,localhost2:2181
3:同步到其他节点并修改
broker.id分别为1和2
scp -r /opt/kafka/ localhost1
:/opt/
scp -r /opt/kafka/ localhost2
:/opt/
broker.id=1
broker.id=2
4:启动所有的server
nohup /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties >>/opt/logs/kafka-server.log 2>&1 &
三:kafka操作---Topic
1:增:新增一个topic:“hello”,为它分配一个分区,保存一个副本
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic hello
2:查:查询hello的信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello
3:改:修改hello为2个分区(只能增加)
bin/kafka-topics.sh --alter --zookeeper localhost:2181 --partitions 2 --topic hello
4:删:删除hello的topic
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic hello
注意: topic的删除功能默认为false。
四:kafka操作---生产消费
1:创建生产者 producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello
2:创建消费者
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic hello --from-beginning