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

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

故障测试

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

[root@JClouds local]# zkServer.sh stop

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

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

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

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

  • 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

创建consumer

在Book节点上测试消费

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/326888.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

挂载mount、卸载umount,和rpm安装包

1.创建一个挂载目录dvd 2.把dev/cdrom 挂载到dvd 3.查看 4.挂载的格式 卸载挂载点 dvd 重新挂载到nsd30 rpm安装包的安装位置 可执行命令:一般安装到/usr/bin下 服务器程序,管理工具:一般安装到sbin下 配置文件:一般安装到etc下…

可以部署到Vercel的一些有趣项目

博客地址 可以部署到Vercel的一些有趣项目-雪饼分享几款可以部署在Vercel上的项目,更新中~ 免费的域名要不要? 如果你还不会将项目部署到Vercel,或是绑定域名建议阅读 将项目部署到Vercel,并绑定域名 Excalidraw 白板 一个开源的…

Halcon提取彩色多通道图像的亚像素边缘edges_color_sub_pix算子

Halcon提取彩色多通道图像的亚像素边缘edges_color_sub_pix算子 如要要提取彩色多通道图像的亚像素边缘,可以使用edges_color sub pix算子。该算子与edges_sub_pix 算子的参数十分相似,但又有所区别。首先从名称上看,edges color sub pix 算…

电商API接口|Javascript抓取京东、淘宝商品数据

“ 不知怎么建站?就找怎么建站! ” 背景: EDI许可证网站和ICP许可证网站需要有丰富的商品数据来应付EDI、ICP许可证下证审核。下面介绍的这种方法是我之前主要的抓取数据的方法,大概用了一年多。这几天又对这个方法进行了一些优…

k8s 存储卷和pvc,pv

存储卷---数据卷 容器内的目录和宿主机的目录进行挂载。 容器在系统上的生命周期是短暂的,deletek8s用控制器创建的pod,delete相当于重启,容器的状态也会回复到初始状态。 一旦回到初始状态,所有的后天编辑的文件的都会消失。 …

docker screen 常用基础命令

1.docker基础命令 1.1开启docker systemctl start docker #开启docker service docker restart #重启docker systemctl stop docker #关闭docker 1.2查看命令 docker images #查看docker镜像docker ps #查看正在运行的镜像或者容器docker ps -a #查看所有容器1.3运…

算法部署过程中如何确保数据的安全?

在数字化时代,数据安全成为了企业和个人面临的一项主要挑战。随着技术的迅速发展,尤其在算法部署过程中,确保敏感数据的安全性变得更加复杂和关键。在这个背景下,软件加密和授权机制的作用显得尤为重要。软件加密不仅仅是转换数据…

IF=16.6 | Quick CTL细胞免疫佐剂免疫HLA转基因小鼠,助力TCR- T细胞构建!

023年10月12日,中国科学院微生物研究所高福研究团队和谭曙光研究团队于Nature Communications发表了题为KRAS G12V neoantigen specific T cell receptor for adoptive T cell therapy against tumors的研究论文。 影响因子:16.6 Doi:KRAS G…

HCS私有云简介

1、HCS简介和发展史 华为云产品:私有云和公有云,现在的私有云已经和公有云越来越像了FusionSphere是华为的一个品牌2016年,在5.0版本的时候,华为Openstack叫FusionSphere Openstack 5.0,底层用的是suse操作系统&#…

PLC编程中ST语言操作符的使用方法

ST(Structured Text)语言操作符主要用于PLC编程,主要包括算术运算符、比较运算符和逻辑运算符等。 算术运算符包括加()、减(-)、乘(*)、除(/)和指…

深信服技术认证“SCCA-C”划重点:交付和运维体系

为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。“考试重点”内容框架,帮助大家快速get重点知识。 划重点来啦 *点击图片放大展示 深信服云计算认证&#xff…

记一次用Qt开发 “启动器” 的经历

项目背景 背景 工具多,需要频繁切换。Windows环境,因为日常用到的软件较多,大致如下 浏览器涉及3款 FirefoxChromeEdge 开发的编译器及IDE涉及 Visual StudioVisual Studio CodePycharmSublime Text 设备涉及 DeskTopMackbook AirNoteBook…

【模板规范】会议纪要模板

文章目录 1、简介2、纪要模板2.1、表格类会议纪要2.2、文档类会议纪要2.3、简易版项目纪要 3、会议纪要3.1、作用3.2、特点3.2.1、工作会议纪要3.2.2、代表会议纪要3.2.3、座谈会议纪要3.2.4、联席会议纪要3.2.5、办公会议纪要3.2.6、汇报会议纪要3.2.7、技术鉴定会议纪要 3.3、…

NVMe系统内存结构 - SGL

NVMe系统内存结构 - SGL 1 SGL简介2 SGL Segment3 SGL Descriptor3.1 SGL Data Block descriptor3.2 SGL Bit Bucket descriptor3.3 SGL Segment descriptor3.4 SGL Last Segment descriptor 4 SGL组织结构4.1 SGL1为SGL Data Block descriptor4.2 SGL1为SGL Last Segment desc…

【每日一题】2719. 统计整数数目-2024.1.16

题目; 2719. 统计整数数目 给你两个数字字符串 num1 和 num2 &#xff0c;以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件&#xff0c;我们称它是一个好整数&#xff1a; num1 < x < num2min_sum < digit_sum(x) < max_sum. 请你返回好整数的…

解决Windows 10/11不能连接WiFi的几种办法,可以尝试

没有什么事情比电脑无法连接到互联网更令人沮丧了。当你的Windows 10/11电脑无法连接到网络时,本文将帮助你完成一些修复。 为什么我不能连接到网络 无线网络是复杂的,因为有几个故障点。从Wi-Fi交换机到软件冲突、路由器问题和ISP问题,找出网络故障可能很困难。 Windows…

兴达易控EtherCAT转Profibus网关让工业自动化变得轻松快捷

EtherCAT转Profibus网关&#xff08;XD-ECPBM20&#xff09;是一种用于实现不同通信协议间互联互通的设备。它主要用于工业控制系统中&#xff0c;能够将EtherCAT总线的数据传输转换为Profibus网络可接受的格式。这样的网关设备在工业自动化领域有着广泛的应用&#xff0c;因为…

zds1104示波器使用指南

1、设置语言 2、功能检测验证示波器是否正常工作 3、示波器面板按钮详解 3.1、软键 3.2、运行控制与操作区 3.3、水平控制区 3.4、垂直控制区 3.5、多功能控制区 3.6、断电启动恢复&#xff0c;auto setup&#xff0c;default setup&#xff0c;恢复出厂设置详细解释 3.7、触…

UE5 RPG AttributeSet的设置

AttributeSet 负责定义和持有属性并且管理属性的变化。开发者可以子类化UAttributeSet。在OwnerActor的构造方法中创建的AttributeSet将会自动注册到ASC。这一步必须在C中完成。 Attributes 是由 FGameplayAttributeData定义的浮点值。 Attributes能够表达从角色的生命值到角色…

基于ArcGIS的晕线制作

在借助ArcGIS进行制图时&#xff0c;我们有时需要为矢量边界添加晕线&#xff0c;今天就来探索一下基于ArcGIS的晕线制作操作。 软件版本&#xff1a;ArcMap10.4.1 方法一&#xff1a;制作多环缓冲区 工具路径&#xff1a;Analysis Tools-Proximity-Mutiple Ring Buffer 思…