无缝部署Kafka集群环境:成功实践指南

一、Kafka集群环境的重要性

  1. 数据处理和分发:Kafka被用于数据处理和分发系统,因为它能够高效地处理大规模的数据流。一个稳定可靠的Kafka集群环境可以确保数据的可靠传输和存储。

  2. Kafka集群环境可以用于实时流处理,支持实时数据的传输、处理和分析。

  3. Kafka集群环境可以作为数据的中心化存储和备份平台,确保数据的安全性和可靠性。

  4. 通过搭建Kafka集群环境,可以实现分布式的消息处理和存储,具备弹性和高可用性,能够应对大量数据和高并发的处理需求。

  5. Kafka集群环境可以根据需求进行横向扩展,以满足不断增长的数据规模和业务需求,并且支持性能的优化和调整。

在这里插入图片描述

二、准备工作

硬件需求:

  1. 建议至少三台服务器用于构建一个基本的高可用性Kafka集群。

  2. 建议使用多核处理器、大内存容量和快速的存储设备,以确保高性能和可靠性。

在规划Kafka集群环境的硬件时,要综合考虑数据处理需求、性能、可靠性和安全性等因素,以确保构建一个稳定、高性能、可扩展和高可用的Kafka集群环境。

软件组件的选型与版本选择:

  1. 选择最新的稳定版本的Apache Kafka。始终推荐使用公认的稳定版本,以获取最新的功能和安全更新。同时,确保使用Kafka官方发布的版本而不是开发版本或预览版。

  2. Linux是部署Kafka的首选操作系统,因为它对于高性能、可靠性和网络负载具有良好的支持。

  3. Kafka需要Java环境来运行,选择官方推荐的版本:JDK 8/11/16。

配置Kafka集群的网络和安全设置:

  1. 网络配置:为每台服务器分配静态IP地址,确保在集群中能够稳定地进行通信。为每台服务器设置唯一的主机名,方便在集群中进行识别和通信。

  2. 配置防火墙规则:Kafka使用的端口包括9092(用于Broker之间的通信)、2181(用于ZooKeeper)、9094(用于TLS/SSL加密通信)等。

三、多节点Kafka集群部署

由于资源有限,博主只准备了两台服务器:

服务器IP
1号192.168.11.59
2号192.168.11.235

3.1、 zookeeper部署

zookeeper先只部署一台,在1号机器(192.168.11.59)上启动zookeeper。

sh zookeeper-server-start.sh -daemon ../config/zookeeper.properties

注意:shell脚本在kafka安装目录的bin文件夹中。

3.2、 启动1号机器的broker

(1)修改server.properties(在config目录)。

broker.id=0

zookeeper.connect=192.168.11.59:2181

修改broker.id(也可以改为-1,自动分配)和配置对应的zookeeper ip地址。

(2)启动kafka。

sh kafka-server-start.sh -daemon ../config/server.properties

默认端口为:9092,可以通过命令lsof -i:9092查看kafka是否启动成功。

$ lsof -i:9092
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    84858  fly  152u  IPv6 802800      0t0  TCP *:9092 (LISTEN)
java    84858  fly  168u  IPv6 813310      0t0  TCP localhost:50918->fly-virtual-machine:9092 (CLOSE_WAIT)
java    84858  fly  172u  IPv6 810764      0t0  TCP localhost:50920->fly-virtual-machine:9092 (CLOSE_WAIT)
java    84858  fly  180u  IPv6 812452      0t0  TCP localhost:50924->fly-virtual-machine:9092 (ESTABLISHED)
java    84858  fly  181u  IPv6 810766      0t0  TCP fly-virtual-machine:9092->localhost:50924 (ESTABLISHED)
java    84858  fly  186u  IPv6 815339      0t0  TCP 192.168.11.59:9092->192.168.11.59:42758 (ESTABLISHED)
java    84858  fly  187u  IPv6 815340      0t0  TCP fly-virtual-machine:9092->localhost:50978 (ESTABLISHED)
java    84858  fly  188u  IPv6 815341      0t0  TCP fly-virtual-machine:9092->localhost:50980 (ESTABLISHED)
java    88485  fly   89u  IPv6 813836      0t0  TCP 192.168.11.59:42758->192.168.11.59:9092 (ESTABLISHED)
java    88485  fly   90u  IPv6 813837      0t0  TCP localhost:50978->fly-virtual-machine:9092 (ESTABLISHED)
java    88485  fly   91u  IPv6 813838      0t0  TCP localhost:50980->fly-virtual-machine:9092 (ESTABLISHED)

3.3、 启动2号机器的broker

(1)修改server.properties(在config目录)。

broker.id=1

zookeeper.connect=192.168.11.59:2181

修改broker.id(也可以改为-1,自动分配)和配置对应的zookeeper ip地址。
(2)启动kafka。

sh kafka-server-start.sh -daemon ../config/server.properties

默认端口为:9092,可以通过命令lsof -i:9092查看kafka是否启动成功。

3.4、查看kafka集群

(1)创建主题。

sh kafka-topics.sh --create --zookeeper 192.168.11.59:2181 -replication-factor 2 --partitions 2 --topic kafka-2

(2)查看主题。

sh kafka-topics.sh --describe --zookeeper 192.168.11.59:2181 --topic kafka-2

显示消息:

Topic:kafka-2	PartitionCount:2	ReplicationFactor:2	Configs:
	Topic: kafka-2	Partition: 0	Leader: 1	Replicas: 1,0	Isr: 1,0
	Topic: kafka-2	Partition: 1	Leader: 0	Replicas: 0,1	Isr: 0

3.5、测试集群

开启一个生产者,两个消费者。当两个消费者同属一个消费组开启后,消费者轮流收到发送者的数据。

(1)生产者:

sh kafka-console-producer.sh --broker-list 192.168.11.59:9092 --topic kafka-2

(2)消费者:

sh kafka-console-consumer.sh --bootstrap-server 192.168.11.59:9092 --topic kafka-2

默认是group 0,也可以指定,比如:

sh kafka-console-consumer.sh --bootstrap-server 192.168.31.249:9092 --topic kafka-2 --group 0 --from-beginning

kafka-console-consumer.sh部分支持的参数:

参数值类型说明有效值
–topicstring被消费的topic
-partitioninteger指定分区 除非指定’–offset’,否则从分区结束(latest)开始消费
–offsetstring执行消费的起始offset位置 默认值:latestlatest、earliest
–consumer-propertystring将用户定义的属性以key=value的形式传递给使用者
–consumer.configstring消费者配置属性文件 请注意,[consumerproperty]优先于此配置
–from-beginning从存在的最早消息开始,而不是从最新消息开始
–groupstring指定消费者所属组的ID

总结

本节演示了一个zookeeper加两个broker的部署,实际使用总只是三个zookeeper,三个broker。部署方式相同。

在构建Kafka集群环境时,还需要考虑使用监控和管理工具,例如Prometheus、Grafana、Kafka Manager等,以便对Kafka集群进行监控、管理和故障排除。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion 莱恩呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值