Kafka部署

该文详细介绍了如何部署Zookeeper和Kafka集群。首先,提供了Zookeeper和Kafka的下载及解压步骤,然后配置Kafka服务,包括设置broker.id、advertised.listeners、log.dirs和zookeeper.connect。接着,配置Zookeeper服务,指定dataDir和dataLogDir。创建启动和停止脚本简化管理,并设置环境变量。最后,创建生产者和消费者topic进行测试。

所需配置

  1. zookeeper集群

  1. kafka集群

zookeeper部署

写过文章了,详情点击连接跳转即可

kafka部署

  1. 下载kafka

  1. kafka官网下载所需要的版本(不要下载源文件,源文件是还没有编译的,后面运行会报错,下载编译后的)

  1. 百度网盘下载本次案例的kafka压缩包

  1. 本次案例kafka版本:kafka_2.13-3.4.0

链接:https://pan.baidu.com/s/1MzKLP60HYcUr5KvyCgAFFQ

提取码:yyds

2.解压kafka

1.上传压缩包到所需要的位置(我的上传位置是:/usr/local/kafaka)

2.解压

tar -zxvf kafka_2.13-3.4.0.tgz

3.部署kafka

  1. 在kafka解压路径下新建一个文件夹:kafka-logs ,用来装log和数据等等

如果想把zookeeper的log和数据内容都放一起好看的话,可以再多创建几个目录分别存放

mkdir -p /usr/local/kafaka/kafka_2.13-3.4.0/kafka-logs
  1. 配置kafka服务

cd /mnt/kafka_2.12-2.4.1/config/

#编辑修改相应的参数,内容改动和添加如下:
vim server.properties

broker.id=0

#地址加端口号

advertised.listeners=PLAINTEXT://127.0.0.1:9092

#日志文件存放路径(刚刚的kafka-logs路径)

log.dirs=/usr/local/kafaka/kafka_2.13-3.4.0/kafka-logs

#zookeeper地址和端口,单机配置部署,localhost:2181

zookeeper.connect=127.0.0.1:2181

#保存退出
:wq
  1. 配置zookeeper服务

如果想把zookeeper的log和数据内容都放一起好看的话,就按下面配置,配置过,懒得调就跳过

cd /zookeeper/apache-zookeeper-3.7.1-bin/config/
#编辑修改相应的参数,内容改动和添加如下:
vim zoo.cfg

#zookeeper数据目录

dataDir=上面kafka下的目录

#zookeeper日志目录

dataLogDir =上面kafka下的目录

#端口号

clientPort=2181

maxClientCnxns=100

tickTimes=2000

initLimit=10

syncLimit=5

:wq

4.创建启动类

cd /usr/local/kafaka/kafka_2.13-3.4.0/

1. 创建启动脚本

vim kafka_start.sh

里边内容为:

#!/bin/sh
#启动zookeeper
/usr/local/kafaka/kafka_2.13-3.4.0/bin/zookeeper-server-start.sh /usr/local/kafaka/kafka_2.13-3.4.0/config/zookeeper.properties &
 
#等3秒后执行
sleep 3
 
#启动kafka
/usr/local/kafaka/kafka_2.13-3.4.0/bin/kafka-server-start.sh /usr/local/kafaka/kafka_2.13-3.4.0/config/server.properties &

2. 创建关闭脚本

vim kafka_stop.sh

里边内容为:

#!/bin/sh
#关闭zookeeper
/usr/local/kafaka/kafka_2.13-3.4.0/bin/zookeeper-server-stop.sh /usr/local/kafaka/kafka_2.13-3.4.0/config/zookeeper.properties &

#等3秒后执行
sleep 3

#关闭kafka
/usr/local/kafaka/kafka_2.13-3.4.0/bin/kafka-server-stop.sh /usr/local/kafaka/kafka_2.13-3.4.0/config/server.properties &

3.为脚本执行权限

chmod +x kafka_start.sh
 
chmod +x kafka_stop.sh

4.配置环境变量

vim /etc/profile

添加配置

export KAFKA_HOME=/usr/local/kafaka/kafka_2.13-3.4.0
export PATH=KAFKA_HOME/bin:$PATH

使配置生效

source /etc/profile

5.创建生产者 topic 和 消费者 topic 简单示例测试

  1. 启动kafka

sh kafka_start.sh

2.进入bin, 生成生产者

#进入kafka目录
cd /usr/local/kafaka/kafka_2.13-3.4.0/bin/
# wd_test是生成的topic名称,可改
./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic wd_test

3.新建一个终端,进入bin,生成消费者

#进入kafka目录
cd /usr/local/kafaka/kafka_2.13-3.4.0/bin/ 
./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic wd_test

最终结果如下

生成者

消费者

<think>好的,用户想知道如何部署Kafka,包括教程和最佳实践。首先,我需要整理现有的引用资料,看看里面有哪些相关的信息。 引用[2]提到Kafka是企业级部署的最佳实践,强调其高性能、高可靠性和水平扩展能力。引用[3]详细介绍了在Kubernetes上部署Kafka的步骤,包括使用开源项目和必要的条件。引用[1]和[4]则讨论了性能优化、可靠性和安全性方面的最佳实践,比如生产者和消费者的配置,监控和故障恢复等。 用户可能需要分步骤的部署教程,尤其是不同环境下的部署方法,比如使用Kubernetes或者传统服务器集群。同时,最佳实践部分需要涵盖配置优化、监控、安全性等方面,确保部署后的Kafka系统高效可靠。 需要注意的是,用户可能对Kubernetes部署比较感兴趣,因为引用[3]提供了具体的步骤,这部分应该详细说明。另外,最佳实践需要结合引用[1]和[4]的内容,比如分区设计、复制因子、持久化存储等,确保覆盖全面。 可能还需要考虑用户的实际应用场景,比如是否需要高可用性、如何处理数据管道的高吞吐量,以及如何监控和维护集群。此外,安全性也是重要的一环,比如SSL加密和访问控制,这些在引用[1]中提到过。 最后,生成的相关问题需要引导用户进一步了解性能分析、优化方法和应用场景,帮助他们在部署后更好地使用Kafka。需要确保回答结构清晰,分步骤说明,并且引用正确来源,比如每个最佳实践后面加上对应的引用标记。</think>### Kafka 部署教程与最佳实践 以下内容整合了部署流程和关键优化建议,结合 Kubernetes 和传统集群场景,覆盖性能、可靠性、安全性等维度: --- #### **一、Kafka 部署教程** 1. **Kubernetes 部署(推荐云原生场景)** - **前提条件** - 运行中的 Kubernetes 集群 - 已安装 `kubectl` 和 `git` - **部署步骤**: ```bash # 克隆部署仓库 git clone https://github.com/your-repo/kubernetes-kafka.git cd kubernetes-kafka # 部署 Zookeeper 和 Kafka 集群 kubectl apply -f zookeeper/ kubectl apply -f kafka/ ``` 项目通过 StatefulSet 确保 Pod 有序性和持久化存储,适合高可用场景[^3]。 2. **传统服务器集群部署** - **步骤概要**: 1. 安装 Java 环境(Kafka 依赖 JVM) 2. 下载并解压 Kafka 二进制包 3. 配置 `server.properties`: ```properties broker.id=1 listeners=PLAINTEXT://host:9092 log.dirs=/data/kafka-logs zookeeper.connect=zk-host1:2181,zk-host2:2181 ``` 4. 启动 Zookeeper 和 Kafka 服务: ```bash bin/zookeeper-server-start.sh config/zookeeper.properties bin/kafka-server-start.sh config/server.properties ``` --- #### **二、部署最佳实践** 1. **性能优化** - **分区与副本设计**: - 分区数根据吞吐量需求设定,通常为消费者数量的整数倍 - 设置 `replication.factor=3` 保证数据高可用[^1] - **持久化存储**: - 使用 SSD 存储日志目录(`log.dirs`)降低 I/O 延迟[^4] - **JVM 调优**: - 调整堆内存(如 `-Xmx8G -Xms8G`),避免频繁 GC 2. **可靠性保障** - **集群容错**: - 至少部署 3 个 Broker 和 Zookeeper 节点[^2] - 启用 `unclean.leader.election.enable=false` 防止数据丢失 - **监控告警**: - 使用 Prometheus + Grafana 监控吞吐量、延迟、副本同步状态[^1] 3. **安全性配置** - **传输加密**: - 启用 SSL/TLS 加密客户端与 Broker 通信 - **访问控制**: - 配置 SASL/SCRAM 或 ACL 限制主题访问权限[^1] --- #### **三、关键配置示例** ```properties # server.properties 核心参数 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 log.retention.hours=168 auto.create.topics.enable=false # 禁止自动创建主题 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值