linux运维、架构之路-Kafka集群部署
一、Kafka介绍
Kafka是一个开源的分布式消息引擎/消息中间件,同时Kafka也是一个流处理平台。Kakfa支持以发布/订阅的方式在应用间传递消息,同时并基于消息功能添加了Kafka Connect、Kafka Streams以支持连接其他系统的数据(Elasticsearch、Hadoop等)。Kafka最核心的最成熟的还是他的消息引擎,所以Kafka大部分应用场景还是用来作为消息队列削峰平谷。另外,Kafka也是目前性能最好的消息中间件。
二、Kafka架构图
Kafka集群(Cluster)中,一个Kafka节点就是一个Broker,消息由Topic来承载,可以存储在1个或多个Partition中。发布消息的应用为Producer、消费消息的应用为Consumer,多个Consumer可以促成Consumer Group共同消费一个Topic中的消息。
名称 | 说明 |
Broker | Kafka节点 |
Topic | 主题,用来承载消息 |
Partition | 分区,用于主题分片存储 |
Producer | 生产者,向主题发布消息的应用 |
Consumer | 消费者,从主题订阅消息的应用 |
Consumer Group | 消费者组,由多个消费者组成 |
三、Kafka集群部署
Kafka 官网文档:http://kafka.apache.org/ Kafka 下载地址:http://kafka.apache.org/downloads
1、服务器规划
系统 | IP | 软件 | JAVA | 主机名 |
CentOS7.5 | 192.168.56.11 | kafka_2.11-2.0.0.tgz | jdk1.8.0_181 | kafka1 |
CentOS7.5 | 192.168.56.12 | kafka_2.11-2.0.0.tgz | jdk1.8.0_181 | kafka2 |
CentOS7.5 | 192.168.56.13 | kafka_2.11-2.0.0.tgz | jdk1.8.0_181 | kafka3 |
2、系统基础环境准备
#参照: https://www.cnblogs.com/yanxinjiang/p/12752871.html #安装好JDK和Zookeeper集群
Kakfa集群需要依赖ZooKeeper存储Broker、Topic等信息,这里我们部署三台ZK。
3、