Kafka集群搭建

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Kafka集群搭建

1 下载或复制Kafka安装包

http://archive.apache.org/dist/kafka/0.10.1.0/

2 解压缩Kafka安装包

tar -zxvf kafka_2.11-0.10.1.0.gz

3 配置Kafka集群

配置Kafka集群时只需要修改broker.id和zookeeper.connect。

  1. 在Master上的配置
    在Server Basics代码段中,在“broker.id=0”下面增加“host.name=master”。
broker.id=0
host.name=master

在该文件的ZooKeeper代码段中,将已有的“zookeeper.connect= localhost:2181”替换成如下的代码(需要根据实际集群情况配置):

zookeeper.connect=master:2181,slave0:2181,slave1:2181

完成了Master上的配置后,需要将Master上的Kafka安装目录复制到Slave。我们这里需要复制两次,其中一次。

scp -r kafka_2.11-0.10.1.0 slave0:~/

  1. 在Slave上的配置

Kafka集群还需要在Slave上进行必要的配置。对于这里的Slave0,将其server.properties配置文件中的broker.id设置为1,host.name设置为slave0,ZooKeeper代码段保持不变。

4 Kafka的初步应用

启动ZooKeeper服务,集群的话启动集群

./kafka-server-start.sh ~/kafka_2.11-0.10.1.0/config/server.properties

由于Kafka是作为守护进程加载的,执行上述命令后终端也会出现停顿状态,这表示系统已经处于后台运行状态,所以也不需要关闭该终端窗口,只要保持当前状态即可。

实际上,用户可以另外开启一个终端,通过“jps”命令来查看当前系统进程列表,可以看到的几个进程名称。

注意事项

1.有一些用户在启动Kafka自带的ZooKeeper服务时可能会失败,或者即使启动了也不能正常工作,例如无法支持主题创建。


2.这时可以先关闭刚才启动的ZooKeeper服务(可以简单地通过“kill-9 PID”命令来终止QuorumPeerMain服务,其中PID是QuorumPeerMain的进程ID,如上面示例中的4775),然后通过HBase来启动其自带的ZooKeeper服务,或者启动独立安装的ZooKeeper。只要启动成功,也同样可以为Kafka的工作提供支持。


3.上述实践说明,在Hadoop集群应用中,只要能够启动任何一个组件自带的ZooKeeper服务,或者启动独立安装的ZooKeeper,就可以为其他任何需要ZooKeeper服务的组件提供支持,并不需要每个组件都启动自带的ZooKeeper。

4.1 创建主题

要使用Kafka,一定需要创建主题。主题(Topic)是消息中间件的基本概念,相当于文件系统的目录,其实就是用于保存消息内容的计算实体,通过主题名称可标识消息,就如同通过目录名标识目录一样。


我们在Master上创建一个名为test的主题。注意,为了创建主题,请在Master上另外开启一个终端,并进入Kafka安装目录,并执行如下命令:


./kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic test

./kafka-topics.sh --list --zookeeper master:2181

执行成功后会出现“Created topic‘test’”的提示,我们也可以通过执行下面的命令查看已经创建的主题。

4.2 发送消息

消息中间件是一个用于接收消息并转发消息的服务。为了检验Kafka是否能够正常工作,需要创建一个消息生产者(Producer)来产生消息。请重新开启一个终端,然后执行如下的命令:

./kafka-console-producer.sh --broker-list master:9092 --topic test

作为Producer,上面的终端一直处于产生消息的状态,其任务就是等待用户的输入,并保存到主题中。这时需要在另一个终端上创建消息消费者(Consumer),才能接收这些消息。

4.3 消费消息

要创建消息消费者并接收消息,需要在一个新的终端上执行如下的命令:

./kafka-console-consumer.sh --zookeeper master:2181 --topic test --from-beginning

按下Enter键后,即可接收到从消息生产者发送到test主题中的消息,如图7-21所示。

./kafka-topics.sh --describe --zookeeper master:2181 --topic test

可以看到,消息生产者和消息消费者通过Kafka的消息中间件联系起来了,消息生产者是产生消息的一方,而消息消费者只需要从主题中接收消息。这种应用模式在很多数据处理系统中都可以发挥积极作用。例如,在一些实时大数据应用中,Kafka可以保存从数据源产生的数据,接收者(消息消费者)则可以按照自己的数据传输速率接收数据,因此,Kafka起到了一个缓冲作用。


由于Kafka是一个分布式的消息分发系统,所以也可以在集群中的任何节点接收消息,例如,在Slave0上通过执行“bin/kafka-console-consumer.sh --zookeeper master:2181 --topic test --from-beginning”命令能够接收到从Master发送的消息。同样,还可以在Slave上创建消息生产者向Kafka服务器(Server)发送消息,使得集群的任何节点都可以接收消息。

目录
相关文章
|
6月前
|
消息中间件 安全 Kafka
2024年了,如何更好的搭建Kafka集群?
我们基于Kraft模式和Docker Compose同时采用最新版Kafka v3.6.1来搭建集群。
1367 2
2024年了,如何更好的搭建Kafka集群?
|
21天前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
54 4
|
1月前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
52 2
|
19天前
|
消息中间件 存储 Prometheus
Kafka集群如何配置高可用性
Kafka集群如何配置高可用性
|
1月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
64 6
|
3月前
|
消息中间件 Kafka 测试技术
【Kafka揭秘】Leader选举大揭秘!如何打造一个不丢失消息的强大Kafka集群?
【8月更文挑战第24天】Apache Kafka是一款高性能分布式消息系统,利用分区机制支持数据并行处理。每个分区含一个Leader处理所有读写请求,并可有多个副本确保数据安全与容错。关键的Leader选举机制保障了系统的高可用性和数据一致性。选举发生于分区创建、Leader故障或被手动移除时。Kafka提供多种选举策略:内嵌机制自动选择最新数据副本为新Leader;Unclean选举快速恢复服务但可能丢失数据;Delayed Unclean选举则避免短暂故障下的Unclean选举;Preferred选举允许基于性能或地理位置偏好指定特定副本为首选Leader。
75 5
|
3月前
|
消息中间件 监控 Java
联通实时计算平台问题之监控Kafka集群的断传和积压情况要如何操作
联通实时计算平台问题之监控Kafka集群的断传和积压情况要如何操作
|
3月前
|
消息中间件 监控 Java
【Kafka节点存活大揭秘】如何让Kafka集群时刻保持“心跳”?探索Broker、Producer和Consumer的生死关头!
【8月更文挑战第24天】在分布式系统如Apache Kafka中,确保节点的健康运行至关重要。Kafka通过Broker、Producer及Consumer间的交互实现这一目标。文章介绍Kafka如何监测节点活性,包括心跳机制、会话超时与故障转移策略。示例Java代码展示了Producer如何通过定期发送心跳维持与Broker的连接。合理配置这些机制能有效保障Kafka集群的稳定与高效运行。
73 2
|
4月前
|
消息中间件 Kafka
kafka 集群环境搭建
kafka 集群环境搭建
69 8
|
3月前
|
消息中间件 Java Kafka
Linux——Kafka集群搭建
Linux——Kafka集群搭建
48 0