在 Ubuntu 上安装和配置 Kafka

消息代理是一种软件,充当在不同应用程序之间发送消息的中介。它的功能类似于服务器,从一个应用程序(称为生产者)接收消息,并将其路由到一个或多个其他应用程序(称为消费者)。消息代理的主要目的是确保不同系统之间进行稳健可靠的通信,而无需这些系统始终可用或直接连接。这使得应用程序可以异步工作,提供容错能力和实时操作能力。消息代理可以接受来自多个来源的消息,并高效地将其路由到合适的接收者。根据所需的业务逻辑,消息可以分组到主题或队列中。

市面上有很多不同的消息代理,每种都有各自的特性和优势。本文我们将重点介绍 Kafka。

Apache Kafka 是一个快速且可扩展的消息代理,每秒能够处理数百万条消息。它尤其因其高容错能力和长时间存储数据的能力而备受推崇。Kafka 最初由 LinkedIn 开发,现已成为消息代理领域最受欢迎的开源解决方案,并获得了 Apache 软件基金会的许可。它被广泛用于构建实时数据管道和流式传输应用程序。在系统或应用程序之间移动和处理数据流是一项关键任务,而 Kafka 擅长帮助用户以最小的延迟实时处理数据流。作为一个分布式系统,Kafka 分布在多个服务器上,这些服务器可以并行存储和处理数据流。这种分布使 Kafka 能够为许多不同的数据源提供实时数据处理,从而确保可靠性和对系统故障的弹性。

在本文中,我们将探讨如何在 Ubuntu 上安装和配置 Kafka,以便您可以在项目中充分利用它。  

 系列文章:

1、在 Docker 上安装和配置 Kafka、选择用于部署 Kafka 的操作系统
https://blog.youkuaiyun.com/hefeng_aspnet/article/details/148921848

2、在 MacOS 上安装和配置 Kafka
https://blog.youkuaiyun.com/hefeng_aspnet/article/details/148921644

3、在 Ubuntu 上安装和配置 Kafka
https://blog.youkuaiyun.com/hefeng_aspnet/article/details/148921303

4、在 Windows 上安装和配置 Kafka
在 Windows 上安装和配置 Kafka-优快云博客

在 Ubuntu 上安装 Kafka 的步骤与其他 Linux 发行版的步骤非常相似。主要区别在于每个操作系统的软件包管理器和一些细微的细节。这些步骤也类似于 Windows 的安装过程,因此即使您使用的是 Linux,也可以参考 Windows 的安装过程。

下载并安装 Java 开发工具包 (JDK)

如前所述,Apache Kafka 在 Java 上运行,因此第一步是安装 JDK。但是,在执行此操作之前,建议使用以下命令更新软件包列表并升级软件包版本:

sudo apt update
sudo apt upgrade

在Linux系统中,可以通过终端输入以下命令轻松完成安装:

sudo apt install default-jre
sudo apt install default-jdk

下载并解压 Kafka

您可以从官方网站下载 Apache Kafka 。选择产品的最新稳定版本。使用控制台中的 wget 实用程序下载它:

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

要提取下载的文件,请使用以下命令:

tar xzf kafka_2.13-3.7.0.tgz

请注意,当您阅读本文时,Kafka 的版本可能有所不同,因此命令(尤其是链接中的数字)可能看起来有所不同。完成上述步骤后,您应该在存档旁边看到一个包含产品的文件夹。使用以下命令导航到此文件夹:

cd kafka_2.13-3.7.0

验证功能

其余步骤与 Windows 系统类似,建议从该部分第三点开始阅读说明。要启动 Zookeeper,请输入以下命令:

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

然后,在新的终端窗口中启动 Kafka:

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

这涵盖了基本的安装和配置。您可以为生产环境配置各种参数,例如多个备份、网络配置、数据分区等,但此过程更加耗费人力且复杂。

在 Ubuntu 和其他 Linux 发行版上安装 Kafka 的常见问题

    • 权限问题:Linux 中访问某些文件或目录时,有时会出现权限问题。为了避免这种情况,您可以使用sudo导致问题的命令。但是,请谨慎操作,因为该命令sudo会授予完全管理员访问权限,这可能会导致安全问题。

    • Java 内存错误:如果您在使用 Kafka 时遇到 Java 内存问题,请尝试使用-Xmx标志增加分配给 JVM 的最大内存。您需要将此标志添加到配置文件中/bin/kafka-server-start.sh。但是,请确保为系统上的其他进程留出足够的内存。如果 JVM 开始使用所有可用资源,增加最大 JVM 内存可能会降低系统速度。

    • 版本管理:使用 Linux 时可能会出现版本问题。请务必检查 Kafka 及所有相关工具(例如 Zookeeper)的版本,以确保兼容性。

    • 正确关闭 Kafka 和 Zookeeper:要在 Linux 上关闭 Kafka 和 Zookeeper,可以使用以下命令:

kafka-server-stop.sh
zookeeper-server-stop.sh

建议始终正确停止这些服务以避免数据丢失。

    • 日志记录问题:Kafka 会生成大量日志。请确保您有足够的磁盘空间,并且已启用日志轮转功能。

    • 端口和文件限制:确保您拥有打开必要数量的文件或套接字的权限。Linux 系统本身就存在限制,您可以根据需要进行调整。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 

Ubuntu安装Kafka服务器需要先安装Java环境(Kafka依赖Java运行),然后下载并配置Kafka二进制包。以下是详细步骤: --- ### **1. 安装Java(必需)** Kafka需要Java 8或更高版本(推荐使用OpenJDK 8/11): ```bash sudo apt update sudo apt install openjdk-11-jdk # 或 openjdk-8-jdk ``` 验证安装: ```bash java -version ``` 输出类似 `openjdk version "11.0.xx"` 即表示成功。 --- ### **2. 下载并解压Kafka** #### 2.1 下载最新稳定版Kafka 从[Apache Kafka官网](https://kafka.apache.org/downloads)获取二进制包链接(如 `kafka_2.13-3.6.0.tgz`): ```bash wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz # 替换为最新版本 tar -xzf kafka_2.13-3.6.0.tgz cd kafka_2.13-3.6.0 ``` #### 2.2 目录结构说明 - `bin/`:Kafka启动脚本(如`zookeeper-server-start.sh`、`kafka-server-start.sh`)。 - `config/`:配置文件(如`server.properties`、`zookeeper.properties`)。 - `logs/`:日志文件(默认路径)。 --- ### **3. 启动Zookeeper(Kafka依赖)** Kafka默认使用嵌入式Zookeeper,但生产环境建议单独部署Zookeeper集群。 **单节点测试环境启动Zookeeper**: ```bash bin/zookeeper-server-start.sh config/zookeeper.properties ``` 按 `Ctrl+C` 停止(后台运行可加 `&`)。 **永久后台运行(使用`nohup`)**: ```bash nohup bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 & ``` --- ### **4. 启动Kafka服务器** 修改`config/server.properties`(可选配置): ```bash nano config/server.properties ``` 常见配置项: ```ini broker.id=0 # 唯一Broker ID listeners=PLAINTEXT://:9092 # 监听地址端口 log.dirs=/tmp/kafka-logs # 日志存储路径 zookeeper.connect=localhost:2181 # Zookeeper地址 ``` 启动Kafka: ```bash bin/kafka-server-start.sh config/server.properties ``` 后台运行: ```bash nohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 & ``` --- ### **5. 验证Kafka是否运行** #### 5.1 创建测试Topic ```bash bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 ``` #### 5.2 发送测试消息(生产者) ```bash bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092 ``` 输入任意消息(如`Hello Kafka`),按回车发送。 #### 5.3 接收测试消息(消费者) ```bash bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092 ``` 应看到之前发送的消息。 --- ### **6. 常用操作** #### 6.1 停止KafkaZookeeper ```bash # 停止Kafka bin/kafka-server-stop.sh # 停止Zookeeper bin/zookeeper-server-stop.sh ``` #### 6.2 删除Topic(需配置`delete.topic.enable=true`) ```bash bin/kafka-topics.sh --delete --topic test-topic --bootstrap-server localhost:9092 ``` #### 6.3 查看所有Topic ```bash bin/kafka-topics.sh --list --bootstrap-server localhost:9092 ``` --- ### **7. 生产环境优化建议** 1. **多Broker集群**: 修改`server.properties`中的`broker.id`、`listeners``zookeeper.connect`,在多台服务器上部署Kafka。 2. **数据持久化**: 修改`log.dirs`到高可用磁盘(如RAID阵列)。 3. **安全配置**: - 启用SSL/SASL认证(修改`server.properties`中的`security.inter.broker.protocol`)。 - 限制客户端访问IP(通过防火墙或Kafka配置)。 4. **监控**: 使用JMX监控工具(如`jconsole`)或Prometheus+Grafana。 --- ### **8. 卸载Kafka** 1. 停止所有KafkaZookeeper进程。 2. 删除Kafka目录数据: ```bash rm -rf /tmp/kafka-logs # 或自定义的log.dirs路径 rm -rf /path/to/kafka_2.13-3.6.0 ``` --- ### **总结** - **快速测试**:单节点Kafka + 嵌入式Zookeeper。 - **生产环境**:独立Zookeeper集群 + 多Broker配置 + 安全加固。 - **关键命令**: - 启动Zookeeper:`bin/zookeeper-server-start.sh` - 启动Kafka:`bin/kafka-server-start.sh` - 创建Topic:`bin/kafka-topics.sh --create`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hefeng_aspnet

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

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

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

打赏作者

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

抵扣说明:

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

余额充值