Kafka
- 是一个分布式的消息系统,是一种消息中间件
Kafka 作用
-
解耦、冗余、提高性能、缓冲
-
保证顺序、灵活、削峰填谷
-
异步通信
Kafka 角色与集群结构
-
Producer:生产者,负责发布消息
-
consumer:消费者,负责读取处理消息
-
topic: 消息的类别
-
parition: 每个Topic包含一个parition或者多个parition
-
Broker: kafka集群包含一个或多个服务器
-
kafka通过Zookeeper管理集群配置,选举leader
Kafka 集群的安装
1、kafka集群安装配置依赖Zookeeper,搭建Kafka集群之前需要先搭建zookeeper集群
2、安装openjdk运行环境
3、分发kafka拷贝到所有集群主机
4、修改配置文件
5、启动验证
步骤一:搭建Kafka集群
1)解压 kafka 压缩包
Kafka在node1,node2,node3上面操作即可
[root@node1 ~]# tar -xf kafka_2.10-0.10.2.1.tgz
2)把 kafka 拷贝到 /usr/local/kafka 下面
[root@node1 ~]# mv kafka_2.10-0.10.2.1 /usr/local/kafka
3)修改配置文件 /usr/local/kafka/config/server.properties
[root@node1 ~]# cd /usr/local/kafka/config
[root@node1 config]# vim server.properties
broker.id=22
zookeeper.connect=node1:2181,node2:2181,node3:2181
4)拷贝 kafka 到其他主机,并修改 broker.id ,不能重复
[root@node1 config]# for i in 23 24; do rsync -aSH --delete /usr/local/kafka 192.168.1.$i:/usr/local/; done
[1] 27072
[2] 27073
[root@node2 ~]# vim /usr/local/kafka/config/server.properties
//node2主机修改
broker.id=23
[root@node3 ~]# vim /usr/local/kafka/config/server.properties
//node3主机修改
broker.id=24
5)启动 kafka 集群(node1,node2,node3启动)
[root@node1 local]# /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
[root@node1 local]# jps //出现kafka
26483 DataNode
27859 Jps
27833 Kafka
26895 QuorumPeerMain
6)验证配置,创建一个 topic
[root@node1 local]# /usr/local/kafka/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --zookeeper node3:2181 --topic aa
Created topic "aa".
7)模拟生产者,发布消息
[root@node2 ~]# /usr/local/kafka/bin/kafka-console-producer.sh \
--broker-list node2:9092 --topic aa //写一个数据
ccc
ddd
8)模拟消费者,接收消息
[root@node3 ~]# /usr/local/kafka/bin/kafka-console-consumer.sh \
--bootstrap-server node1:9092 --topic aa //这边会直接同步
ccc
ddd