Kafka集群部署指南

一、前言

1、Kafka简介

Kafka是一个开源的分布式消息引擎/消息中间件,同时Kafka也是一个流处理平台。Kakfa支持以发布/订阅的方式在应用间传递消息,同时并基于消息功能添加了Kafka Connect、Kafka Streams以支持连接其他系统的数据(Elasticsearch、Hadoop等)

Kafka最核心的最成熟的还是他的消息引擎,所以Kafka大部分应用场景还是用来作为消息队列削峰平谷。另外,Kafka也是目前性能最好的消息中间件。

2、Kafka架构

在Kafka集群(Cluster)中,一个Kafka节点就是一个Broker,消息由Topic来承载,可以存储在1个或多个Partition中。发布消息的应用为Producer、消费消息的应用为Consumer,多个Consumer可以促成Consumer Group共同消费一个Topic中的消息。

3、准备工作

1、Kafka服务器

准备3台CentOS服务器,并配置好静态IP、主机名

软件版本说明

2、ZooKeeper集群

Kakfa集群需要依赖ZooKeeper存储Broker、Topic等信息,这里我们部署三台ZK

参考下一篇:

奇哥:ELK-基础系列(六)-ELK加入消息队列-Zookeeper​zhuanlan.zhihu.com

二、部署过程

1、应用&数据目录

#创建应用目录
mkdir /usr/kafka#创建Kafka数据目录
mkdir /kafka
# 创建日志目录
mkdir /kafka/logs
chmod 777 -R /kafka

2、下载&解压

Kafka官方下载地址:https://kafka.apache.org/down... 这次我下载的是2.3.0版本

#进入 opt下

kafka_2.12-2.3.0.tgz 其中2.12是Scala编译器的版本,2.3.0才是Kafka的版本

3、Kafka节点配置

#进入应用目录
cd /usr/kafka/kafka_2.12-2.3.0/#修改配置文件
vim config/server.properties

通用配置

配置日志目录、指定ZooKeeper服务器

# A comma separated list of directories under which to store log files
log.dirs=/kafka/logs# root directory for all kafka znodes.
zookeeper.connect=elk-1:2181,elk-2:2181,elk-3:2181

分节点配置

  • Kafka01
broker.id=0#listeners=PLAINTEXT://:9092
listeners=PLAINTEXT://elk-1:9092

  • Kafka02
broker.id=1#listeners=PLAINTEXT://:9092
listeners=PLAINTEXT://elk-2:9092

  • Kafka03
broker.id=2#listeners=PLAINTEXT://:9092
listeners=PLAINTEXT://elk-3:9092

5、启动Kafka

#进入kafka根目录
cd /usr/kafka/kafka_2.12-2.3.0/
#启动
nohup ./bin/kafka-server-start.sh config/server.properties &#启动成功输出示例(最后几行)
[2019-06-26 21:48:57,183] INFO Kafka commitId: fc1aaa116b661c8a (org.apache.kafka.common.utils.AppInfoParser)
[2019-06-26 21:48:57,183] INFO Kafka startTimeMs: 1561531737175 (org.apache.kafka.common.utils.AppInfoParser)
[2019-06-26 21:48:57,185] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)

三、Kafka测试

1、创建Topic

在kafka01(Broker)上创建测试Tpoic:test-ken-io,这里我们指定了3个副本、1个分区

bin/kafka-topics.sh --create --bootstrap-server 192.168.88.51:9092 --replication-factor 3 --partitions 1 --topic test-ken-io

Topic在kafka01上创建后也会同步到集群中另外两个Broker:kafka02、kafka03

2、查看Topic

我们可以通过命令列出指定Broker的

bin/kafka-topics.sh --list --bootstrap-server 192.168.88.52:9092

3、发送消息

这里我们向Broker(id=0)的Topic=test-ken-io发送消息

bin/kafka-console-producer.sh --broker-list  192.168.88.51:9092  --topic test-ken-io#消息内容
> test by ken.io

4、消费消息

在Kafka02上消费Broker03的消息

bin/kafka-console-consumer.sh --bootstrap-server 192.168.88.53:9092 --topic test-ken-io --from-beginning

在Kafka03上消费Broker02的消息

bin/kafka-console-consumer.sh --bootstrap-server 192.168.88.52:9092 --topic test-ken-io --from-beginning

然后均能收到消息

test by ken.io

这是因为这两个消费消息的命令是建立了两个不同的Consumer 如果我们启动Consumer指定Consumer Group Id就可以作为一个消费组协同工,1个消息同时只会被一个Consumer消费到

bin/kafka-console-consumer.sh --bootstrap-server 192.168.88.53:9092 --topic test-ken-io --from-beginning --group testgroup_kenbin/kafka-console-consumer.sh --bootstrap-server 192.168.88.52:9092 --topic test-ken-io --from-beginning --group testgroup_ken

四、备注

1、Kafka常用配置项说明

Kafka常用Broker配置说明:

kafka创建topic_ELK-基础系列(六)-ELK加入消息队列-Kafka部署相关推荐

  1. 阿里云消息队列Kafka商业化:支持消息无缝迁移到云上

    摘要: 7月25日,阿里云宣布正式推出消息队列Kafka,全面融合开源生态.在兼容Apache生态的基础上,阿里云消息队列Kafka彻底解决了开源产品稳定性不足的痛点,可用性达99.9%,数据可靠性9 ...

  2. 消息中间件系列(五):MQ消息队列的12点核心原理总结

    消息队列已经逐渐成为分布式应用场景.内部通信.以及秒杀等高并发业务场景的核心手段,它具有低耦合.可靠投递.广播.流量控制.最终一致性 等一系列功能. 无论是 RabbitMQ.RocketMQ.Act ...

  3. 分布式消息队列 Kafka

    分布式消息队列 Kafka 2016-02-25 杜亦舒 Kafka是一个高吞吐量的.分布式的消息系统,由Linkedin开发,开发语言为scala 具有高吞吐.可扩展.分布式等特点 适用场景 活动数 ...

  4. 阿里云正式推出消息队列Kafka:全面融合开源生态

    摘要: 在全面兼容Apache Kafka生态的基础上,消息队列Kafka彻底解决Apache Kafka稳定性不足的长期痛点,并且支持消息无缝迁移到云上. 近日,阿里云宣布正式推出消息队列Kafka ...

  5. 光速入门消息队列Kafka

    文章目录 光速入门消息队列Kafka 消息队列 知识要点 2.1 背景.问题的产生 2.2 消息队列应运而生 2.3 消息队列的特点 认识kafka 知识要点 2.1 认识kafka 2.2 kafk ...

  6. 消息队列 Kafka的架构原理 (小白必看)

    最终大家会掌握 Kafka 中最重要的概念,分别是 Broker.Producer.Consumer.Consumer Group.Topic.Partition.Replica.Leader.Fol ...

  7. 消息队列kafka的面试问题汇总

    1.为什么要使用消息队列MQ? kafka的作用:解耦,异步,削峰(解决高峰期瘫痪) 2.架构中引入MQ之后可能存在的问题? 系统的可用性降低了,因为一旦MQ遇到故障,整个系统就歇菜了 系统的复杂性变 ...

  8. 消息队列——kafka基础

    KafKa 首先自然是要列出Kafka官网地址啦:https://kafka.apache.org/ 概述 定义 Kafka 是一个分布式的---基于发布/订阅模式的消息队列(Message Queu ...

  9. 消息队列系列之分布式消息队列Kafka

    介绍 ApacheKafka®是一个分布式流媒体平台.这到底是什么意思呢? 我们认为流媒体平台具有三个关键功能: 它可以让你发布和订阅记录流.在这方面,它类似于消​​息队列或企业消息传递系统. 它允许 ...

最新文章

  1. Centos7 上安装Docker
  2. 甲子光年微信公众号往期精华文章[2019-08-14]
  3. Flutter开发之SimpleDialog对话框组件-1(40)
  4. 【转】三天学好ADO
  5. python中dataframe导出文件_使用Python将Pandas DataFrame导出为PDF文件
  6. 如何在window下杀死进程?
  7. ethercat通讯协议_工业控制常用接口协议大全,长见识了
  8. jelly bean android,Jelly Bean占Android系统份额突破10%
  9. 安全测试===sqlmap(壹)转载
  10. javascript图片库威力增强版
  11. 数据结构排序系列详解之七 归并排序
  12. XmlHttpRequest错误:Access-Control-Allow-Origin不允许使用原点null
  13. 8.Jenkins 权威指南 --- 自动化部署和持续交付
  14. 2014年计算机应用文摘,2014年江西信息技术高考试卷Word版
  15. 计算机维修行业中年,35岁改行的5个职业 中年转行也很轻松,你选对了吗
  16. npm install 报错 Failed at the XXX install script
  17. 港科夜闻|全国政协副主席梁振英先生率香港媒体高管团到访香港科大(广州)...
  18. m4a转如何快速转换为wav格式呢
  19. 前端开发系列(十六)网页布局教程(2)
  20. Could not find artifact com.oracle:ojdbc6:pom:11.2.0.3 in central

热门文章

  1. 私有化 Serverless Application 的探索与思考
  2. 华为最新人事调整:余承东任智能汽车解决方案 BU CEO;美团悄悄更换抽佣规则,佣金不降反升;Scala 3 正式发布|极客头条...
  3. ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数?
  4. 联手三年,获取数千名客户,阿里云如何重构 Elastic 开放免费的技术?
  5. 热点 | Excel不“香”了,数据分析首选Python!
  6. Async Python 竟不比sync Python 快,怎么回事?
  7. JS、Java、C 依然强势,Go、Kotlin、Python 成为潜力股,2020 开发者生态系统报告揭晓!...
  8. Mybatis 逆向工程使用姿势不对文档全被清空,一怒之下写了个插件……
  9. 如何摆脱初学者的不自信,成为一名专业编程人士?
  10. 如何使用 Spring 对数据库进行 CURD?