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 | 消费者组,由多个消费者组成 |
三、部署:
环境准备:
kafka1:centos7系统(已安装jdk环境)
kafka2:centos7系统 (已安装jdk环境)
kafka3:centos7系统 (已安装jdk环境)
kafka版本:kafka_2.13-2.6.0.tgz
1、将kafka压缩包解压,解压后移动到/usr/local/目录中(三台机器相同操作),如图:

2、进入到kafka目录中,创建日志目录,如图:

3、进入配置文件目录config,编辑配置文件server.properties,如图:


上图中的配置为通用配置,三台机器都是一样,指定zookeeper服务器的时候,如果有多台,每台之间用逗号分隔。
4、接下来继续编辑配置文件 server.properties ,每个节点要分别设置broker.id的值和listeners的值,如图:



注:节点IP必须要写,否则接收不到数据的
5、防火墙开放9092端口,执行命令如下:
firewall-cmd –zone=public –add-port=9092/tcp –permanent
firewall-cmd –reload
6、启动kafka
进入到bin目录下,执行命令启动,如图:



