1、使用消息队列的好处?
解耦、扩展性、可恢复性、缓冲、灵活性&峰值处理能力(削峰)、异步通信、顺序保证
2、消息队列的两种模式:
a.点对点模式(一对一,消费者主动拉取,消息消费后就会删除)
b.发布/订阅模式(一对多,消息消费后不会删除,kafka中是消费者主动拉取消息)
3、kafka的组成
1)produncer:消息生产者,发布消息到kafka;
2)broker:一个broker就是一个Kafka服务器,一个集群有多个broker,一个broker有多个topic;
3)cousumer:消费者,向kafka主动拉取消息;
4)consumer group:消费者组,可以看成一个整体,消费者组里面的消费者只能消费不同的分区,一个分区只能被一个消费者组里面的一个消费者消费。
5)topic:消息的队列,生产者和消费者面向的都是一个topic
6)partition:分区,一个topic可以包含多个partition,每个partition在不同的分区,partition内部有序;
7)replication:副本,分为leader和follower,副本数设置不能超过broker数,分区数可以超过;
8)leader:副本的角色,producer和consumer只和leader交互;
9)follower:副本的角色,从leader中复制数据;
10)zookeeper:0.9版本之前offset存储在zk,0.9版本及之后offset存储在kafka;
4、Kafka部署时修改配置文件server.properties
#broker 的全局唯一编号,不能重复
broker.id=0
#删除 topic 功能使能
delete.topic.enable=true
#kafka 运行日志存放的路径
log.dirs=/opt/module/kafka/data
#配置连接 Zookeeper 集群地址
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181
5、Kafka全起脚本(使用时脚本名kfk.sh start/stop即可)
#!/bin/bash
case $1 in
"start"){
#遍历拿到hadoop集群的hostname,也可以写死
for i in `cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves`
do
echo "========== $i =========="
ssh $i 'source /etc/profile&&/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties'
echo $?
done
};;
"stop"){
#遍历拿到hadoop集群的hostname,也可以写死
for i in `cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves`
do
echo "========== $i =========="
ssh $i 'source /etc/profile&&/opt/module/kafka2/bin/kafka-server-start.sh '
echo $?
done
};;
esac
6、kafka命令行操作
1)查看当前服务器所有中所有topic
kafka-topics.sh --zookeeper hadoop102:2181 --list
2)创建topic
kafka-topics.sh --zookeeper hadoop102:2181 --create --topic first --partitions 2 --replication-factor 2
3)删除topic
kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic first
4)增加topic分区
kafka-topics.sh --zookeeper hadoop102:2181 --alter --topic first --partitions 4
5)发送消息
kafka-console-producer.sh --broker-list hadoop102:2181 --topic first
6)消费消息
kafka-console-consumer.sh --zookeeper hadoop102:2181 --topic first
kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
7)查看某个topic详情
kafka-topics.sh --zookeeperhadoop102:2181 --describe --topic first
402

被折叠的 条评论
为什么被折叠?



