kafka原理和集群
搭建kafka 首先要搭建好 前面的 zookeeper 环境
• kafka是什么?
– Kafka是由LinkedIn开发的一个分布式的消息系统
– kafka是使用Scala编写
– kafka是一种消息中间件
• 为什么要使用 kafka
– 解耦、冗余、提高扩展性、缓冲
– 保证顺序,灵活,削峰填谷
– 异步通信
kafka集群
• kafka 角色与集群结构
– producer:生产者,负责发布消息
– consumer:消费者,负责读取处理消息
– topic: 消息的类别
– Parition:每个Topic包含一个或多个Partition.
– Broker:Kafka集群包含一个或多个服务器
– Kafka通过Zookeeper管理集群配置,选举leader
• kafka 角色与集群结构
===================================================================
• kafka 集群的安装配置
– kafka 集群的安装配置是依赖zookeeper的, 搭建kafka 集群之前,首先请创建好一个可用 zookeeper集群
– 安装 openjdk 运行环境
– 分发 kafka 拷贝到所有集群主机
– 修改配置文件
– 启动与验证
• server.properties
- broker.id
- 每台服务器的broker.id都不能相同
- zookeeper.connect
- zookeeper 集群地址,不用都列出,写一部分即可
1 下载解压 kafka 压缩包
]# tar -xf kafka_2.10-0.10.2.1.tgz -C ./
2 把 kafka 拷贝到 /usr/local/kafka 下面
]# mv kafka_2.10-0.10.2.1 /usr/local/kafka
3 修改配置文件
vim/usr/local/kafka/config/server.properties
broker.id=11
zookeeper.connect=node1:2181,node2:2181,node3:2181
4 拷贝 kafka 到其他主机,并修改 broker.id ,不能重复
]# for i in {11..13} ;do scp kafka/config/server.properties 192.168.1.$i:/usr/local/kafaka ;done
###注意这里拷贝过去后要修改其他节点的 broker.id 数,不得重复
5 启动 kafka 集群
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
验证集群
创建一个 topic
cd /usr/local/kafka/
./bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --zookeeper node3:2181 --topic nsd1804
生产者,负责发布消息
cd /usr/local/kafka/
./bin/kafka-console-producer.sh --broker-list node2:9092 --topic nsd1804
消费者,负责读取处理消息
cd /usr/local/kafka/
./bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic nsd1804