这里通过 VMware ,我们安装了三台虚拟机,用来搭建 kafka集群,虚拟机网络地址如下:

   hostname                      ipaddress                 subnet mask                          geteway    

  1、 master     192.168.146.200    255.255.255.0      192.168.146.2

  2、 slave1      192.168.146.201    255.255.255.0      192.168.146.2

  3、 slave2      192.168.146.202    255.255.255.0      192.168.146.2

1、下载 kafka 压缩包

  官网下载地址:http://kafka.apache.org/downloads

2、搭建zookeeper集群

  由于 kafka 集群的运行需要 zookeeper,所以我们要首先进行 zookeeper 集群的搭建。

  关于搭建的教程,我在上一篇博客已经介绍了:https://www.cnblogs.com/ysocean/p/9860529.html

3、解压 kafka

  将下载的 kafka 压缩文件上传到集群中的每台机器相应目录,执行如下命令进行解压。

tar -zxf kafka_2.12-2.0.0.tgz

4、修改配置文件 server.properties

 broker.id=0
listeners=PLAINTEXT://192.168.146.200:9092
zookeeper.connect=192.168.146.200:2181,192.168.146.201:2181,192.168.146.202:2181

  第一个 broker.id 后面的值和搭建 zookeeper 集群中 myid 一样,是一个集群中唯一的数,要求是正数。需要保证kafka集群中设置的都不一样。

  第二个设置监听器,后面的 IP 地址对应当前的 ip 地址。

  第三个是配置 zookeeper 集群的 IP 地址。

  该配置文件的其余设置可以默认,具体会在后面博客进行介绍。

5、启动 kafka

/usr/local/software/kafka_2.12-2.0.0/bin/kafka-server-start.sh /usr/local/software/kafka_2.12-2.0.0/config/server.properties &

  该命令虽然是后台启动服务,但是日志仍然会打印到控制台。

  想要完全后台启动,执行如下命令:

/usr/local/software/kafka_2.12-2.0.0/bin/kafka-server-start.sh /usr/local/software/kafka_2.12-2.0.0/config/server.properties 1>/dev/null 2>&1 &

  其中1>/dev/null  2>&1 是将命令产生的输入和错误都输入到空设备,也就是不输出的意思。/dev/null代表空设备。

  执行完毕后,输入 jps ,出现 kafka 的进程,则证明启动成功。

  

6、创建 topic

  集群启动成功后,我们通过创建一个名字为 test,partitions为3,replication为3的topic。

  进入到bin 目录下,执行如下命令:

./kafka-topics.sh --create --zookeeper 192.168.146.200:2181,192.168.146.201:2181,192.168.146.202:2181 --partitions 3 --replication-factor 3 --topic test

7、向 topic 发送消息

  进入到 bin 目录下,执行如下命令:

./kafka-console-producer.sh --broker-list 192.168.146.200:9092,192.168.146.201:9092,192.168.146.202:9092 --topic test

  

  输入 hello kafka ,然后 enter 键,即向名为 test 的topic 发送了一条消息:hello kafka

8、kafka 可视化工具

  为了更好的看到上一步创建的 topic,以及发送的消息。这里介绍一个 kafka 可视化工具——Kafka Tools,官网下载地址:http://www.kafkatool.com/download.html

  安装过程很简单,都是点击下一步即可。然后打开该工具,进行如下配置:

  点击 File ---> Add cluster

  

  然后点击有下家的 Add 按钮即可。

  点开刚刚创建的连接,出现如下界面:

  

  test 便是我们上一步创建的 topic 名称,里面有一条消息 hello kafka。

Kafka 详解(二)------集群搭建的更多相关文章

  1. elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))

    一.分词器 1. 认识分词器  1.1 Analyzer   分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如 ...

  2. Kafka详解二:如何配置Kafka集群

    问题导读1.Kafka有哪几种配制方法?2.如何启动一个Consumer实例来消费消息? Kafka集群配置比较简单,为了更好的让大家理解,在这里要分别介绍下面三种配置 单节点:一个broker的集群 ...

  3. Nginx详解-服务器集群

    Nginx是什么 代理服务器:一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器.  一个完整的代理请求过程为:客户端首先 ...

  4. kafka Centos7.2 单机集群搭建

    前提是已经安装好了zk集群 1.下载  kafka_2.11-1.0.0.tgz  下载网址 http://kafka.apache.org/documentation.html 2.解压  tar ...

  5. 九、kafka伪分布式和集群搭建

    伪分布式: 1.先将zk启动,如果是在伪分布式下,kafka已经集成了zk nohup /kafka_2.11-0.10.0.1/bin/zookeeper-server-start.sh /kafk ...

  6. Session详解及集群共享

    Session的介绍 维基百科:会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议(例如telnet或FTP ...

  7. CynosDB技术详解——存储集群管理

    本文由腾讯云数据库发表 前言 CynosDB是架构在CynosFS之上的分布式关系数据库系统,为最大化利用存储资源,平衡资源之间的竞争,检查资源使用情况,需要一套高效稳定的分布式集群管理系统(SCM: ...

  8. kafka详解(二)--kafka为什么快

    前言 Kafka 有多快呢?我们可以使用 OpenMessaging Benchmark Framework 测试框架方便地对 RocketMQ.Pulsar.Kafka.RabbitMQ 等消息系统 ...

  9. Kafka 0.9+Zookeeper3.4.6集群搭建、配置,新Client API的使用要点,高可用性测试,以及各种坑 (转载)

    Kafka 0.9版本对java client的api做出了较大调整,本文主要总结了Kafka 0.9在集群搭建.高可用性.新API方面的相关过程和细节,以及本人在安装调试过程中踩出的各种坑. 关于K ...

  10. Hadoop集群搭建安装过程(二)(图文详解---尽情点击!!!)

    Hadoop集群搭建安装过程(二)(配置SSH免密登录)(图文详解---尽情点击!!!) 一.配置ssh无密码访问 ®生成公钥密钥对 1.在每个节点上分别执行: ssh-keygen -t rsa(一 ...

随机推荐

  1. angr进阶(4)从任意位置开始

    从程序的任意位置开始可以大大的减少测试的时间,使用的方法是控制程序运行到某时刻的寄存器的值来进行的.asisctffinals2015_fake p = angr.Project("fake ...

  2. iOS 循环引用讲解(中)

    谈到循环引用,可能是delegate为啥非得用weak修饰,可能是block为啥要被特殊对待,你也可能仅仅想到了一个weakSelf,因为它能解决99%的关于循环引用的事情.下面我以个人的理解谈谈循环 ...

  3. Web工作方式:浏览网页的时候发生了什么?

    原文地址:https://wizardforcel.gitbooks.io/build-web-application-with-golang/content/03.1.html 我们平时浏览网页的时 ...

  4. 第31章 日志 - Identity Server 4 中文文档(v1.0.0)

    IdentityServer使用ASP.NET Core提供的标准日志记录工具.Microsoft文档有一个很好的介绍和内置日志记录提供程序的描述. 我们大致遵循Microsoft使用日志级别的指导原 ...

  5. JS输入框去除负号(限定输入正数)

    onkeyup="(this.v=function(){this.value=this.value.replace(/\-/g,\'\');}).call(this)" 示例: & ...

  6. xddpay.com 个人支付接口接入流程

    作为一个独立开发者产品需要支付接口是挺麻烦的,支付宝微信都不对个人开放,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好. 看到 「小叮当支付」 这个收款工具,挺有意思 ...

  7. aps.net core mvc中使用session

    原因>>用session是想验证 前端输入的验证码和后端存入seesion的是否一致,也可以使用的是TempData[]. 铺垫>> 前端用GetValidateCode()方 ...

  8. 【查漏补缺】File的path、absolutePath和canonicalPath的区别

    背景 在学习Idea的插件开发时,用到了相关的VirtualFileSystem这个东西,里面的VirtualFile有一个getCanonicalPath()方法引起了我的注意,我发现我不知道-- ...

  9. React常见的15个问题

    在 jsComplete,我们管理一个专门用于帮助编程学习者 slack 帐户.我们常常会收到一些有趣的问题,但大多数问题都是常见问题. 我创建这个资源为了帮助 React.js学习者遇到这些常见的问 ...

  10. 跨域iframe如何实现高度自适应?

    经常有项目会要求实现iframe高度自适应,如果是同域的还好说,如果是跨域的,父页面没有办法操作子页面,想要正确获取子页面高度的话,可以采用以下办法: 方法一:使用HTML5 postMessage ...