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/
- JDK容器学习之Queue:DelayQueue
- React-Native组件之 Navigator和NavigatorIOS
- JDK容器学习之Queue:ConcurrentLinkedQueue
- JDK容器学习之Queue: PriorityQueue
- React Native导航器之react-navigation使用
- Nginx 路由转发配置笔记
- React Native控件之ListView
- Java学习之深拷贝浅拷贝及对象拷贝的两种方式
- [周末课程]什么是“页面业务流程”分析思维导图?如何编写页面假JSON数据? &下一个前端组件“日历”
- Java并发学习之玩转线程池
- Java & PhantomJs 实现html输出图片
- 干货 | React Native实践之携程Moles框架
- Java并发学习之ThreadLocal使用及原理介绍
- ibeacon蓝牙技术简介
- 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 数组属性和方法
- Docker 部署SpringBoot项目不香吗?
- 面试官写了个双冒号::问我这是什么语法?Java中有这玩意?
- 精解四大集合框架:List核心知识总结
- 【深度学习】Keras vs PyTorch vs Caffe:CNN实现对比
- 【深度学习】迁移学习理论与实践
- 使用OpenCV+Tensorflow跟踪排球的轨迹
- 基于OpenCV的手掌检测和手指计数
- 错误诊断:索引数据错误导致ORA-00600 [kdsgrp1]处理
- Python让你成为AI 绘画大师,简直太惊艳了!(附代码))
- PostgreSQL全局临时表插件pgtt的使用
- 首次在手机端不牺牲准确率实现BERT实时推理,比TensorFlow-Lite快近8倍,每帧只需45ms
- 【小白学PyTorch】7.最新版本torchvision.transforms常用API翻译与讲解
- 【SOT】siameseFC论文和代码解析
- 基于OpenCV创建视频会议虚拟背景
- 【算法】图文并茂,一文了解 8 种常见的数据结构