消息队列
1. 点对点:消息不会被保存,与推送类似,要起一个线程不断检测是否有消息
2. 订阅发布模式:,队列会保存消息,拉取(kafka)、推送(公众号)
kafka基本框架:
producer:
consumer:
1. consumer group: 多个消费者,但分区只能被一个消费者消费
kafka cluster:
1. partition:
2. replication:
a. leader: 对外提供服务
b. follower: 仅做备份
3. topic: 消息分类
4. broker: 节点
zookeeper: 主要用于解耦,保存kafka的一些信息,消费者的消费信息。0.9版本之前offset保存在zk,后续挪到了zk。(维护的链接太多,和zk的交互太多。)
zk的安装和配置
kafka相关的配置文件
server: kafka本身相关的配置
broke.id: 配置id,只能是正整数
log.dirs: kafka存数据的目录,数据的命名:topic+partition
zookeeper.connect:zk的链接信息,用逗号隔开
zk
consumer
producer
kafka相关脚本
start: /bin/kafka-server-start.sh -daemon config/server.properties
stop: /bin/kafka-server-stop.sh
topics:
列表:/bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181
创建: /bin/kafka-topics.sh --create --topic first --partitions 2 --replication-factor 2 --zookeeper 127.0.0.1:2181
删除: /bin/kafka-topics.sh --delete --topic first --zookeeper 127.0.0.1:2181
查看: /bin/kafka-topics.sh --describe --topic first --zookeeper 127.0.0.1:2181
producer:
start: /bin/kafka-console-producer.sh -- topic first --broke-list 127.0.0.1:9092
consumer:
start: /bin/kafka-console-consumer.sh -- topic first --zookeeper 127.0.0.1:2181 --from-beginning(不建议使用)
start: /bin/kafka-console-consumer.sh -- topic first --bootstrap-server 127.0.0.1:9092 --from-begging
网友评论