kafka集群部署
时间:2022-04-22
本文章向大家介绍kafka集群部署,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前提: kafka集群依赖于zk集群,没有zk集群环境的请先参考 http://www.cnblogs.com/yjmyzz/p/4587663.html .
假设搭建3个节点的kafka集群,下面是步骤:
一、下载
http://kafka.apache.org/downloads ,如果只是安装,直接down kafka_2.12-0.11.0.0.tgz 即可。
二、解压
假设$KAFKA_HOME为解压后的根目录,将tag包解压到该目录下(3台机器上都解压)
三、修改$KAFKA_HOME/config/service.properties
内容参考下面:
1 broker.id=1 #类似zk的myid一样,每个节点上的id都要唯一
2 host.name=192.168.29.60 #每个节点对应的机器IP
3 num.network.threads=3
4 num.io.threads=8
5 socket.send.buffer.bytes=102400
6 socket.receive.buffer.bytes=102400
7 socket.request.max.bytes=104857600
8 log.dirs=/data/application/kafka/data #日志保存目录
9 num.partitions=1
10 num.recovery.threads.per.data.dir=1
11 offsets.topic.replication.factor=1
12 transaction.state.log.replication.factor=1
13 transaction.state.log.min.isr=1
14 log.retention.hours=168
15 message.max.byte=5242880
16 default.replication.factor=2
17 replica.fetch.max.bytes=5242880
18 log.segment.bytes=1073741824
19 log.retention.check.interval.ms=300000
20 zookeeper.connect=192.168.29.11:2181,192.168.29.12:2181,192.168.29.13:2181 #zk集群的地址
21 zookeeper.connection.timeout.ms=6000
22 group.initial.rebalance.delay.ms=0
注:每台机器上都要修改这个文件,而且broker.id,host.name这二个很关键,弄错了将启动失败。
四、启动
$KAFKA_HOME/bin/kafka-server-start.sh -daemon ../config/server.properties
(3台节点都要启动)
注:初次启动,可不加用-daemon参数,方便直接在控制台查看输出,启动成功后,可ctrl+C结束掉,再加-daemon后台启动。
五、验证
5.1 创建topic
$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper 192.168.29.11:2181 --replication-factor 2 --partitions 1 --topic mytopic
5.2 测试消息发布
$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list 192.168.29.60:9092 --topic mytopic
这个命令会进入一个>提示符的终端,直接输入消息内容,回车就发出去了。
5.3 测试消息接收 保持5.2的窗口不要关,再加一个终端窗口
$KAFKA_HOME/bin/kafka-console-consumer.sh --zookeeper 192.168.29.11:2181 --topic mytopic --from-beginning
在刚才5.2的窗口里,输入些内容,顺利的话,消息接收窗口里,就能收到消息。
参考文章:
http://kafka.apache.org/documentation/
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- React 17 RC 版发布:无新特性,却有新期待!
- 《剑指offer》第13天:两个数组的交集
- Spring的Controller是单例还是多例?怎么保证并发的安全
- JQUERY获取loaded 宽高这么变态
- 动态规划的楼层算法
- 58.Vue 使用render方法渲染组件
- xinetd被动服务唤醒
- Bash特殊变量:$0, $#, $*, $@, $?, $$实战
- 0799-1.8-CDSW1.8的新功能
- socket.io实践干货
- 0800-5.16.2-如何禁用Hue中Oozie的部分Action
- linux ulimit 调优
- 初识ABP vNext(3):vue对接ABP基本思路
- 0801-什么是Apache Ranger - 4 - Resource vs Tag Based Policies
- IDA-3D技术细节分析