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/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • silverlight:ListBox中如何取得DateTemplate/ItemsPanelTemplate中的命名控件?

    Xaml如下: <UserControl x:Class="ToolsTest.Test"     xmlns="http://schemas.microsof...

    菩提树下的杨过
  • silverlight如何在运行时用代码动态控制(或创建)动画

    silverlight做一些复杂动画时,不可能所有的动画都事先用Blend之类的设计工具"画"好(或者在设计期就在vs里编好),很多时候我们希望在运行时能动态控...

    菩提树下的杨过
  • log4net快速上手

    社区里有一篇 Log4Net使用指南 写得很详细,推荐给准备使用log4net的同学看看。 如果你不想花太多时间研究,也可以按下面的步骤在5分钟内搞定: 1、添...

    菩提树下的杨过
  • 聊聊 5.7 error log 那些事儿

    MySQL的错误日志(error log)用来记录mysqld启动和关闭过程的信息,启停slave以及死锁日志,bug,core dump 等信息。 在调研 M...

    用户1278550
  • file_put_contents— 将一个字符串写入文件

    将字符串写入到文件中,我们可以用fwrite写文件函数进行操作,今天写程序的时候,突然觉得其实file_put_contents()函数,用来写入字符串,后来仔...

    joshua317
  • 这5个 console.log() 技巧帮你提高工作效率

    我们知道 console.log(message)用法很简单,表示将参数message 打印到控制台上。

    前端小智@大迁世界
  • 使用Logstash filter grok过滤日志文件

    “Eason,企业一线运维实战者,马哥教育原创作者联盟成员,热爱分享Linux应用技术的感想和原创知识。” Logstash Filter Plugin Gro...

    小小科
  • 极简教程!教你快速将K3s与Cloud Controller集成

    在之前的一篇文章中我们介绍了如何在60秒内创建一个4个节点的K3s集群,文中还包含了虚拟机的配置。这一集群的唯一问题是没有cloud provider的支持,也...

    k3s中文社区
  • Android SELinux avc dennied权限问题解决方法

    SELinux是Google从android 5.0开始,强制引入的一套非常严格的权限管理机制,主要用于增强系统的安全性。

    用户7557625
  • VC调用3dmax自动化对象

    在3dmax启动后,通过registerOLEInterface注册函数,registerOLEInterface每次注册都会清空之前的设置的函数数组,通常可以...

    sofu456

扫码关注云+社区

领取腾讯云代金券