Kafka 集群部署

这篇具有很好参考价值的文章主要介绍了Kafka 集群部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、环境准备

2、搭建ZooKeeper集群

配置文件

节点标记

环境变量

启动集群

数据同步测试

故障测试

3、搭建 Kafka 集群

配置文件

环境变量

配置其他机器

启动服务

4、集群测试

创建 Topic

显示 Topic 配置

创建 Producer

创建consumer

删除Topic

查看Zookeeper元数据


一个Broker就是一个kafka服务,三种安装Kafka的方式,分别为:单节点单Broker部署、单节点多Broker部署、集群部署(多节点多Broker)。实际生产环境中使用的是第三种方式,以集群的方式来部署Kafka。

1、环境准备

主机名

IP

应用

CentOS_JClouds

192.168.137.253

Kafka + ZooKeeper

CentOS_Book

192.168.137.252

Kafka + ZooKeeper

CentOS_Client01

192.168.137.6

Kafka + ZooKeeper

由于zookeeper依赖java环境,所以我们需要安装jdk,官网建议最低安装jdk 1.8版本

# 安装JDK
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/
# 配置环境变量
vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar 
export PATH JAVA_HOME CLASSPATH
source /etc/profile
2、搭建ZooKeeper集群
配置文件
# 解压安装装包
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/

# 创建内存数据库快照存放目录
mkdir -p /data/zk/data
mkdir -p /data/zk/datalog


# 修改配置文件
cd /usr/local/apache-zookeeper-3.7.1-bin/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg 
#----------------------------------zoo.cfg-------------------------------
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zk/data        #修改这一行为我们创建的目录
dataLogDir=/data/zk/datalog   #添加这一行
clientPort=2181
# 三个节点配置,格式为:
# server.服务编号=服务地址、LF通信端口、选举端口
server.1=cong11:2888:3888
server.2=cong12:2888:3888
server.3=cong13:2888:3888
#----------------------------------zoo.cfg-------------------------------

注:server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

如果需要配置Observer,按照如下配置

peerType=observer
server.1=cong11:2888:3888:observer
server.2=cong12:2888:3888
server.3=cong13:2888:3888
节点标记

myid配置:在/data/zk/data设置myid, 这个myid的数字跟配置文件里面的server id对应

# JClouds
echo 1 > /data/zk/data/myid
# Book
echo 2 > /data/zk/data/myid
# Client01
echo 3 > /data/zk/data/myid
环境变量
vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.7.1-bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source /etc/profile
启动集群
# 启动三台机器zookeeper
zkServer.sh start

# 查看集群状态
zkServer.sh status

Kafka 集群部署,Kafka,kafka,分布式

Kafka 集群部署,Kafka,kafka,分布式

数据同步测试
# Clouds连接Zookeeper创建新的节点
create /testNode 123

Kafka 集群部署,Kafka,kafka,分布式

Kafka 集群部署,Kafka,kafka,分布式

故障测试

关掉JClouds(主)的ZooKeeper服务,其他节点选举为新的主,再将旧主(JClouds)重启

[root@JClouds local]# zkServer.sh stop

Kafka 集群部署,Kafka,kafka,分布式

# 查看其他服务的状态
[root@Client01 conf]# zkServer.sh status

Kafka 集群部署,Kafka,kafka,分布式

重新启动JClouds,查看服务状态

Kafka 集群部署,Kafka,kafka,分布式

3、搭建 Kafka 集群
配置文件
# 解压软件包
tar -zxvf kafka_2.13-3.2.1.tgz -C /usr/local/

# 编辑配置文件
vim /usr/local/kafka_2.13-3.2.1/config/server.properties
#--------------------------------配置文件-------------------------------------------
# broker的全局唯一编号,不能重复
broker.id=0
# 监听
listeners=PLAINTEXT://:9092  #开启此项
# 日志目录
log.dirs=/data/kafka/log      #修改日志目录
# 配置zookeeper的连接(如果不是本机,需要该为ip或主机名)
zookeeper.connect=cong11:2181,cong12:2181,cong13:2181
#--------------------------------配置文件-------------------------------------------

# 创建日志目录
mkdir -p /data/kafka/log
环境变量
# 添加path环境变量
vim /etc/profile
export KAFKA_HOME=/usr/local/kafka_2.13-3.2.1
export PATH=$KAFKA_HOME/bin:$PATH
source /etc/profile
配置其他机器


# 拷贝kafka到其他机器
for i in 252 6;do scp -r /usr/local/kafka_2.13-3.2.1/ 192.168.137.$i:/usr/local/;done
# 拷贝profile
scp /etc/profile 192.168.137.252:/etc/profile
scp /etc/profile 192.168.137.6:/etc/profile
source /etc/profile

# 修改其他kafka的broker.id
[root@Book config]# sed -i 's/broker.id=0/broker.id=1/g' /usr/local/kafka_2.13-3.2.1/config/server.properties
[root@Client01 config]# sed -i 's/broker.id=0/broker.id=2/g' /usr/local/kafka_2.13-3.2.1/config/server.properties

# 创建日志目录
[root@Book ~]# mkdir -p /data/kafka/log
[root@Client01 ~]# mkdir -p /data/kafka/log
启动服务
# 后台启动服务
kafka-server-start.sh -daemon /usr/local/kafka_2.13-3.2.1/config/server.properties 

# 查看服务进程
jps -m

Kafka 集群部署,Kafka,kafka,分布式

4、集群测试
创建 Topic
kafka-topics.sh --create --bootstrap-server JClouds:9092 replication-factor 2  --partitions 4 --topic test
  • --replication-factor:指定副本数量
  • --partitions:指定分区数量
  • --topic:主题名称
显示 Topic 配置
kafka-topics.sh --bootstrap-server JClouds:9092 --describe --topic test

Kafka 集群部署,Kafka,kafka,分布式

  • leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
  • replicas:列出了所有的副本节点,不管节点是否在服务中.
  • isr:是正在服务中的节点
# 列出指定的topic
kafka-topics.sh --bootstrap-server JClouds:9092 --list --topic test

# 列出所有的topic
kafka-topics.sh --bootstrap-server JClouds:9092 --list 
创建 Producer

在JClouds节点上测试产生者消息

[root@JClouds ~] kafka-console-producer.sh --broker-list JClouds:9092 --topic test

Kafka 集群部署,Kafka,kafka,分布式

创建consumer

在Book节点上测试消费

kafka-console-consumer.sh --bootstrap-server JClouds:9092,Book:9092,Client01:9092 --topic test --from-beginning

Kafka 集群部署,Kafka,kafka,分布式

删除Topic
kafka-topics.sh --delete --bootstrap-server JClouds:9092 --topic test
查看Zookeeper元数据
zkCli.sh

Kafka 集群部署,Kafka,kafka,分布式文章来源地址https://www.toymoban.com/news/detail-807635.html

到了这里,关于Kafka 集群部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式消息流处理平台kafka(一)-kafka单机、集群环境搭建流程及使用入门

    kafka最初是LinkedIn的一个内部基础设施系统。最初开发的起因是,LinkedIn虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。 所以在设计理念上,开发者不想只是开发一个能够存储数据的系统,如关系数据库、Nosql数据库、搜索引擎等

    2024年02月16日
    浏览(50)
  • 分布式运用之Filebeat+Kafka+ELK 的服务部署

    Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic 的。 topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。Producer 生产的数据会被不断追加到该 log 文件末端,

    2024年02月06日
    浏览(44)
  • Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文)

    说明: 本篇将详细介绍用二进制安装包部署hadoop等组件,注意事项,各组件的使用,常用的一些命令,以及在部署中遇到的问题解决思路等等,都将详细介绍。 ip hostname 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 1.2.1系统版本 1.2.2内存建议最少4g、2cpu、50G以上的磁盘容量 本次

    2024年02月12日
    浏览(50)
  • 【软件开发/设计】分布式架构中的组件(如Kafka、MongoDB和Nginx)如何进行容器化部署

    容器化部署是将应用程序及其依赖打包成一个容器镜像,然后在任何支持容器的环境中运行这个镜像的过程。在分布式架构中,像Nginx、MongoDB、Kafka这样的组件通过容器化可以更易于部署、扩展和管理。以下是这些组件容器化部署的一般步骤和原理: 容器化部署的一般步骤

    2024年02月04日
    浏览(47)
  • 【大数据工具】Kafka伪分布式、分布式安装和Kafka-manager工具安装与使用

    Kafka 安装包下载地址:https://archive.apache.org/dist/kafka/ 1. Kafka 伪分布式安装 1. 上传并解压 Kafka 安装包 使用 FileZilla 或其他文件传输工具上传 Kafka 安装包: kafka_2.11-0.10.0.0.tgz 解压安装包 2. 编辑配置文件 3. 拷贝并修改配置文件 分别修改 server2.properties、server3.properties 4. 创建日志

    2024年02月14日
    浏览(46)
  • 分布式消息服务kafka

    什么是消息中间件? 消息中间件是分布式系统中重要的组件,本质就是一个具有接收消息、存储消息、分发消息的队列,应用程序通过读写队列消息来通信。 例如:在淘宝购物时,订单系统处理完订单后,把订单消息发送到消息中间件中,由消息中间件将订单消息分发到下

    2024年02月01日
    浏览(43)
  • 【分布式技术】消息队列Kafka

    目录 一、Kafka概述 二、消息队列Kafka的好处 三、消息队列Kafka的两种模式 四、Kafka 1、Kafka 定义 2、Kafka 简介 3、Kafka 的特性 五、Kafka的系统架构 六、实操部署Kafka集群  步骤一:在每一个zookeeper节点上完成kafka部署 ​编辑 步骤二:传给其他节点 步骤三:启动3个节点 kafka管理

    2024年01月23日
    浏览(51)
  • 分布式 - 消息队列Kafka:Kafka 消费者的消费位移

    01. Kafka 分区位移 对于Kafka中的分区而言,它的每条消息都有唯一的offset,用来表示消息在分区中对应的位置。偏移量从0开始,每个新消息的偏移量比前一个消息的偏移量大1。 每条消息在分区中的位置信息由一个叫位移(Offset)的数据来表征。分区位移总是从 0 开始,假设一

    2024年02月12日
    浏览(46)
  • 分布式 - 消息队列Kafka:Kafka生产者架构和配置参数

    生产者发送消息流程参考图1: 先从创建一个ProducerRecord对象开始,其中需要包含目标主题和要发送的内容。另外,还可以指定键、分区、时间戳或标头。在发送ProducerRecord对象时,生产者需要先把键和值对象序列化成字节数组,这样才能在网络上传输。 接下来,如果没有显式

    2024年02月13日
    浏览(45)
  • 分布式 - 消息队列Kafka:Kafka生产者发送消息的方式

    不管是把Kafka作为消息队列、消息总线还是数据存储平台,总是需要一个可以往Kafka写入数据的生产者、一个可以从Kafka读取数据的消费者,或者一个兼具两种角色的应用程序。 Kafka 生产者是指使用 Apache Kafka 消息系统的应用程序,它们负责将消息发送到 Kafka 集群中的一个或多

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包