Kafka集群配置比較简单,为了更好的让大家理解。在这里要分别介绍以下三种配置

  • 单节点:一个broker的集群
  • 单节点:多个broker的集群
  • 多节点:多broker集群

一、单节点单broker实例的配置

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VpZmVuZzMwNTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="font-family:Tahoma; font-weight:bold; orphans:2; widows:2">

1. 首先启动zookeeper服务

     Kafka本身提供了启动zookeeper的脚本(在kafka/bin/文件夹下)和zookeeper配置文件(在kafka/config/文件夹下)。首先进入Kafka的主文件夹(可通过 whereis kafka命令查找到):
     [root@localhost kafka-0.8]# bin/zookeeper-server-start.sh config/zookeeper.properties
     zookeeper配置文件的一些重要属性:
     # Data directory where the zookeeper snapshot is stored.

dataDir=/tmp/zookeeper

     # The port listening for client request

     clientPort=2181

     默认情况下,zookeeperserver会监听 2181port。更具体的信息可去zookeeper官网查阅。

2. 启动Kafka broker

     执行kafka提供的启动kafka服务脚本就可以:
     [root@localhost kafka-0.8]# bin/kafka-server-start.sh config/server.properties
     broker配置文件里的重要属性:
     # broker的id. 每一个broker的id必须是唯一的.

Broker.id=0

     # 存放log的文件夹

     log.dir=/tmp/kafka8-logs

     # Zookeeper 连接串

     zookeeper.connect=localhost:2181

3. 创建一个仅有一个Partition的topic

     [root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic kafkatopic

4. 用Kafka提供的生产者client启动一个生产者进程来发送消息

     [root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kafkatopic
     当中有两个參数须要注意:
  • broker-list:定义了生产者要推送消息的broker地址,以<IP地址:port>形式
  • topic:生产者发送给哪个topic
     然后你就能够输入一些消息了。例如以下图: 

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VpZmVuZzMwNTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

5. 启动一个Consumer实例来消费消息

     [root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning
      当你运行这个命令之后。你便能够看到控制台上打印出的生产者生产的消息:

     和消费者相关的属性配置存放在Consumer.properties文件里,重要的属性有:
     # consumer的group id (A string that uniquely identifies a set of consumers
     # within the same consumer group) 
     groupid=test-consumer-group

     # zookeeper 连接串

     zookeeper.connect=localhost:2181

二、单节点执行多broker实例



1.启动zookeeper

   和上面的一样

2.启动Kafka的broker

   要想在一台机器上启动多个broker实例,仅仅须要准备多个server.properties文件就可以,比方我们要在一台机器上启动两个broker:
   首先我们要准备两个server.properties配置文件
  1. server-1

    1. brokerid=1
    2. port=9092
    3. log.dir=/temp/kafka8-logs/broker1
  2. server-2
    1. brokerid=2
    2. port=9093
    3. log.dir=/temp/kafka8-logs/broker2
     然后我们再用这两个配置文件分别启动一个broker
     [root@localhost kafka-0.8]# env JMX_PORT=9999 bin/kafka-server-start.sh config/server-1.properties

     [root@localhost kafka-0.8]# env JMX_PORT=10000 bin/kafka-server-start.sh config/server-2.properties
     能够看到我们启动是为每一个broker都指定了不同的JMX Port,JMX Port主要用来利用jconsole等工具进行监控和排错

3.创建一个topic

     如今我们要创建一个含有两个Partition分区和2个备份的broker:
     [root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 2 --partition 2 --topic othertopic

4.启动Producer发送消息

     假设我们要用一个Producer发送给多个broker,唯一须要改变的就是在broker-list属性中指定要连接的broker:
     [root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list localhost:9092,localhost:9093 --topic othertopic
     假设我们要让不同的Producer发送给不同的broker。我们也只须要为每一个Producer配置响应的broker-list属性就可以。

5.启动一个消费者来消费消息

     和之前的命令一样
     [root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic othertopic --from-beginning

三、集群模式(多节点多实例)

     介绍了上面两种配置方法,再理解集群配置就简单了。比方我们要配置例如以下图所看到的集群:
      zookeeper配置文件(zookeeper.properties):不变
      broker的配置配置文件(server.properties):依照单节点多实例配置方法在一个节点上启动两个实例。不同的地方是zookeeper的连接串须要把全部节点的zookeeper都连接起来
        # Zookeeper 连接串

        zookeeper.connect=node1:2181,node2:2181




   想更深入的了解Kafka请參阅我的还有一篇文章:《Kafka设计与原理具体解释》





Kafka具体解释二、怎样配置Kafka集群的更多相关文章

  1. linux下配置tomcat集群的负载均衡

    linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...

  2. [转帖]kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建 http://www.aboutyun.com/thread-9341-1-1.html 还没看完 感觉挺好的. 问题导读: 1.zook ...

  3. 在windows下面配置redis集群遇到的一些坑

    最近工作不忙,就决定学习一下redis.因为一直在windows下工作,不会linux,没办法就选择在windows下配置redis. windows下配置redis集群的文章有很多,比如:http: ...

  4. centos6.5环境基于conga的web图形化界面方式配置rhcs集群

    一.简介 RHCS 即 RedHat Cluster Suite ,中文意思即红帽集群套件.红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用 ...

  5. Mariadb配置Galera集群

    一.增加MariaDB源 cd /etc/yum.repos.d vi MariaDB.repo # MariaDB 10.1 CentOS repository list - created 201 ...

  6. Linux中安装配置spark集群

    一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoop MapReduce所 ...

  7. Linux中安装配置hadoop集群

    一. 简介 参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功.下面就把详细的安装步骤叙述一下.我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择 ...

  8. mongo 3.4分片集群系列之二:搭建分片集群--哈希分片

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  9. 配置 Elasticsearch 集群

    Elasticsearch 的安装非常简单,笔者在前文<单机部署 ELK>中已经介绍过了,本文主要介绍集群的配置,并解释常见配置参数的含义. 要配置集群,最简单的情况下,设置下面几个参数就 ...

  10. zookeeper之一 安装和配置(单机+集群)

    这里我以zookeeper3.4.10.tar.gz来演示安装,安装到/usr/local/soft目录下. 一.单机版配置 1.安装和配置 #.下载 wget http://apache.fayea ...

随机推荐

  1. 01.Hello Node.js

    程序下载:https://files.cnblogs.com/files/xiandedanteng/helloNodejs.rar 关键代码: var http=require('http'); v ...

  2. Centos 通过yum的方式升级内核

    在安装某些软件时,可能对我们的系统内核版本有要求. 比如在安装docker要满足一定的条件,对于centos系统,要求必须是64位,并且内核版本是3.10以上. 如果你的centos操作系统内核低于3 ...

  3. MFC对话框贴图基础上控件Stasic变成透明的

    对应WM_CTLCOLOR函数 加入下面代码: HBRUSH CMFCApplication2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ...

  4. Python——五分钟理解元类(metaclasses)

    “元类的魔幻变化比 99% 的用户所担心的更多,当你搞不懂是否真的需要用它的时候,就是不需要.” —Tim Peters 本文源于在 PyCon UK 2008 上的一个快速演讲. 元类被称为 Pyt ...

  5. [Python]BeautifulSoup—HTML解析包

    在用Python写爬虫时,一个常见的操作是对抓下的HTML做分析处理,得到想要的内容.一般的方法为使用Python的re库中.用正則表達式来解析文本.只是这样的方法适用于全部的文本.而针对于特定格式的 ...

  6. 网页抓取工具Teleport Ultra简介及如何使用

    Teleport Ultra是一款专业的离线浏览器,能够快速.准确地从网络抓取数据并保存到本地,实现离线浏览的目的.它可以从Internet的任何地方抓回你想要的任何文件,它可以在你指定的时间自动登录 ...

  7. 使用Vitamio开发iOS平台上的万能播放器

    迅速了解 Vitamio是干什么的?看官方怎么说: "Vitamio SDK for iOS是Yixia Ltd官方推出的 iOS 平台上使用的软件开发工具包(SDK),为iOS开发人员提供 ...

  8. 查看Tomcat状态页,管理app,主机管理

    Server Status 通过点击这个按钮我们可以查看Tomcat的状态,点击,弹出403错误页面 通过查看官方文档 因此,创建manager.xml # cat /usr/local/tomcat ...

  9. 实际项目中,看 ECharts 和 HighCharts 渲染性能对比,表面看衣装,本质看内功!!!

    最近做项目,使用的是echarts显示图表数据,但是数据量比较多的时候,有卡顿的情况.后来同事拿echarts和HighCharts做了对比,仅供大家参考.同时感谢同事做的工作. 一.查询1天的源数据 ...

  10. two sum, three sum和four sum问题

    1. two sum问题 给定一组序列:[-4 -6 5 1 2 3 -1 7],然后找出其中和为target的一对数 简单做法:两层循环遍历,时间复杂度为n^2 升级版:对给定的序列建立一个hash ...