Kafka——部署与应用

本节目标:

1、掌握kafka的安装配置

2、掌握kafka消息队列的基本操作

所需软件:kafka-2.11

节点部署:

 

ZK

Kafka

master(192.168.85.10)

 

 

slave1(192.168.85.11)

 

 

slave2(192.168.85.12)

 

 

slave3(192.168.85.13)

 

 

kafka依赖zk,不一定跟zk在同一台机器上。

1、解压安装kafka

2、配置文件修改

config/ server.properties

      broker.id=0

      log.dirs=/usr/local/src/kafka_2.11-1.1.0/kafka-logs

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

3、同步到slave1,slave2

4.修改slave1,slave2的broker.id

5、每个结点启动kafka

在kafka安装目录下创建脚本,通过脚本启动更方便,脚本如下:

nohup bin/kafka-server-start.sh config/server.propertien >kafka.log 2>&1 &

bash startkafka.sh

6、基本操作

(1)创建topic

./bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --topic tp1--partitions 2 --replication-factor 2

(2)查看topic

./bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181

(3)查看描述

./bin/kafka-topics.sh --describe --zookeeper master:2181,slave1:2181,slave2:2181


(4)生产者

./bin/kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic tp1

(5)消费者

./bin/kafka-console-consumer.sh  --zookeepermaster:2181,slave1:2181,slave2:2181 --topic tp1


### Kafka 分布式部署多节点配置教程最佳实践 #### 1. ZooKeeper 集群设置 为了确保每个节点能够正确识别自己并其他节点通信,在每台服务器上的 `zoo.cfg` 文件中定义唯一的 `myid` 值[^4]。此 ID 应放置于 `/opt/module/zookeeper/zkData/myid` 文件内,对于不同的 Kafka-Broker 设置相应的数值(例如:Broker1 对应 myid=1, Broker2 对应 myid=2 等)。此外,确认所有 ZooKeeper 实例间的网络连通性良好。 #### 2. Kafka Broker 的唯一标识 在每一台运行着 Kafka Broker 的机器上编辑 `$KAFKA_HOME/config/server.properties` 文件来指定独一无二的 `broker.id` 参数值[^1]。这有助于区分集群中的各个成员,并允许它们协同工作而不发生冲突。 #### 3. 合理规划分区副本策略 依据业务场景调整 topic 下面 partition 数目以及 ISR (In-Sync Replicas) 列表内的 replica 数量。这样做不仅提高了系统的容错能力还增强了整体性能表现。通过命令行工具可以方便地管理和查看这些属性: ```bash /usr/local/kafka/bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server kafka1:9092 ``` #### 4. 监控机制建立 采用专门设计用于管理 Apache Kafka 的第三方应用程序如 Confluent Control Center 或者开源项目像 Burrow 来持续跟踪集群健康状况;也可以集成 Prometheus + Grafana 组合实现自定义仪表板展示重要指标变化趋势图谱。 #### 5. 网络环境优化 保证整个数据中心内部署Kafka 的物理主机之间拥有稳定可靠的 TCP/IP 层级交互渠道,同时注意检查是否有防火墙规则阻止必要的服务端口通讯,默认情况下 Kafka 使用的是 9092 号端口而 ZooKeeper 默认监听 2181 端口。 #### 6. 资源分配考量 考虑到消息队列可能面临的高并发读写操作压力,建议预先评估好目标平台硬件条件再做具体安排——比如预留充足 RAM 缓存热数据片段、SSD 提供快速随机访问特性支持日志追加模式下的高效持久化存储等措施均有利于提升用户体验满意度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值