【运维】使用三台ECS搭建Kafka集群

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 使用三台CentOS7系统的ECS云服务器,软件包kafka_2.11-1.1.1.tgz

环境准备:

1.使用三台ECS云服务器,内存建议最小2G

2.获取kafka软件包,解压

[root@kafka-1 ~]# tar -zxf kafka_2.11-1.1.1.tgz 
[root@kafka-1 ~]# ls
kafka_2.11-1.1.1  kafka_2.11-1.1.1.tgz

 

3.安装jdk1.8.0

[root@kafka-1 bin]# yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

 

4.配置主机名映射

image.png

 

5.其余selinux,防火墙配置略

kafka包里的文件夹结构,bin目录下为启动管理服务的脚本,config目录下为服务配置

image.png

 

一、配置kafka内置zookeeper集群

kafka集群依赖于zk集群,这里就用kafka包内置的zk服务配置集群

//编辑zookeeper.properties配置文件,添加以下配置

[root@kafka-1 config]# vim zookeeper.properties
initLimit=10
syncLimit=5
server.1=kafka1:2888:3888
server.2=kafka2:2888:3888
server.3=kafka3:2888:3888
quorumListenOnAllIPs=true

 

//创建myid表示zk服务节点,写入id(对应配置文件中的server.x中的x)myid文件中

[root@kafka-1 ~]# mkdir -p /tmp/zookeeper
[root@kafka-1 ~]# echo 1 > /tmp/zookeeper/myid

 

//启动zk

[root@kafka-1 bin]# ./zookeeper-server-start.sh -daemon ../config/zookeeper.properties

 

//启动完成后的端口监听,在其中一台leader有监听2888端口

[root@kafka-2 zookeeper]# ss -ntlp
State      Recv-Q Send-Q                                                  Local Address:Port                                                                 Peer Address:Port              
LISTEN     0
50                                                                 :::2181                                                                           :::*                  users:(("java",pid=30223,fd=96))
LISTEN     0     50                                                                 :::2888                                                                           :::*                  users:(("java",pid=30223,fd=99))
LISTEN     0        50                                                                 :::3888                                                                           :::*                  users:(("java",pid=30223,fd=97))
LISTEN     0     128

2181:对cline端提供服务

3888:选举leader使用

2888:集群内机器通讯使用(Leader监听此端口)

 

二、创建kafka集群

 

//修改kafka的配置文件server.properties

[root@kafka-1 config]# vim server.properties
broker.id=1   //id对应节点号,有所区分
port=9092    
advertised.host.name=kafka1   //端口监听的IP或主机名
zookeeper.connect=kafka1:2181,kafka2:2181,kafka3:2181  //连接各节点的IP或主机名:端口

 

//启动kafka

[root@kafka-1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties

 

//启动完成后的端口监听

[root@kafka-1 ~]# ss -ntlp
State      Recv-Q Send-Q                                                  Local Address:Port                                                                 Peer Address:Port              
LISTEN     0     50                                                                 :::9092                                                                           :::*                  users:(("java",pid=27495,fd=101))
LISTEN     0     50                                                                 :::2181                                                                           :::*                  users:(("java",pid=521,fd=96))

 

//查看java进程,显示kafka

[root@kafka-1 ~]# jps
2049 Jps
27495 Kafka
521 QuorumPeerMain

 

三、测试kafka服务

//在节点1上创建topic

[root@kafka-1 bin]# ./kafka-topics.sh --create --zookeeper kafka1:2181 --replication-factor 1 --partitions 1 --topic taoresetTEST
Created topic "taoresetTEST".

 

//在节点2上查看topic

[root@kafka-2 bin]# ./kafka-topics.sh --list --zookeeper kafka2:2181 
taoresetTEST

 

//在节点2上查看topic

[root@kafka-3 bin]# ./kafka-topics.sh --list --zookeeper kafka3:2181 
taoresetTEST

 

相关文章
|
10天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
20天前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
54 4
|
26天前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
56 2
|
1月前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
52 2
|
1月前
|
SQL 机器学习/深度学习 分布式计算
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
61 1
|
11天前
|
弹性计算 运维
新 企业级ECS集群运维管理训练营 打卡学习领好礼
新 企业级ECS集群运维管理训练营 打卡学习领好礼
48 3
|
18天前
|
运维 应用服务中间件 调度
自动化运维:使用Ansible实现服务器批量管理
【10月更文挑战第26天】在当今快速发展的IT领域,自动化运维已成为提升效率、降低人为错误的关键技术手段。本文通过介绍如何使用Ansible这一强大的自动化工具,来简化和加速服务器的批量管理工作,旨在帮助读者理解自动化运维的核心概念和实践方法。文章将围绕Ansible的基础使用、配置管理、任务调度等方面展开,通过实际案例引导读者深入理解自动化运维的实现过程,最终达到提高运维效率和质量的目的。
|
18天前
|
消息中间件 存储 Prometheus
Kafka集群如何配置高可用性
Kafka集群如何配置高可用性
|
29天前
|
运维 负载均衡 安全
自动化运维:使用Ansible进行服务器配置管理
【10月更文挑战第15天】在本文中,我们将探讨如何利用Ansible这一强大的自动化工具来简化和加速服务器的配置管理工作。通过实际案例和代码示例,我们将展示Ansible如何帮助运维人员高效地进行软件部署、系统更新和日常维护任务,从而提升工作效率并减少人为错误。
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
36 1