kafka实践(二):分布式部署

来源:互联网 发布:2x2的矩阵怎么乘法 编辑:程序博客网 时间:2024/06/05 20:31

    实践(一)主要是跟着教程大体上了解了一下kafka的基本内容,并在自己的虚拟机上简单测试了一下,本章内容重要是实践进行分布式部署。

一、部署模式分类

        kafka的部署,主要是有三种:(部署原理图,取自网络)

        1、单节点部署单broker

        

        此方式是最简单的一种,可以用kafka自带的zookeeper启动后,在单物理节点上,启动kafka的server( broker )。

        

        2、单节点部署多个broker

        

       此方式,也是在单物理节点上启动一个zookeeper,多个kafka的broker, 采用多个broker的目的是为了在单个broker无法负载大量的消息收发要求后,必然采用的扩展方式。

        3、多节点部署多个broker

        

        此方式,broker 分别部署到不同的物理节点上,可以进行横向扩展,满足高负载的分担。这种方式的配置和第二种比较类似。

二、本次实践规划

        1) 采用单节点多broker方式

        2) 在linux虚拟机centos6.5 环境,

        3) jdk 1.7

三、部署步骤

       1、zookeeper部署

       kafka自带了zookeeper,如果使用自带的,需要拷贝三个zookeeper.properties 为 zookeeper1.properties, zookeeper2.properties,        zookeeper3.properties。 具体以zookeeper1.properties为例,配置为

    

     dataDir 属性,需要每个properties文件都设定自己的数据目录, 并且 使用echo命令,在myid文件填入每个zookeeper id。以zookeeper1.properties为例: echo 1 >/tmp/zookeeper1/myid。上图中标红色的内容,都是需要配置好,否则会报错。 

这种方式启动的时候,要带入具体的配置文件路径作为启动参数。

     本次实践,建议以自己独立的zookeeper版本进行伪分布式部署,具体见系列博客中的zookeeper分布式部署。这样的好处是可以充分应用独立zookeeper版本中的带的各种工具脚本,使用起来更顺手。

     下图为独立版本中的配置文件内容:

     

     需要保证每个zookeeper的数据目录和日志目录,端口都是不同的。

     2、kafka部署

     由于要生成三个broker,所以需要有不同的配置,将kafka_2.11-0.10.0.1/config目录下的 server.properties 分别拷贝为server1.properties , server2.properties server3.properties , 以server1.properties为例,修改如下内容

     

     broker id 在每个配置文件里面分别配置为1, 2,3, id需要保证不同。在2.11版的kafka中,port参数已经变化为listeners, 默认是被注释的,确保放开注释,并保障每个broker的端口不同(如果部署在不同物理节点,端口可以一样)。

     还需要修改同一文件的下面内容:

      

      这里是配置kafka连接的zookeeper,确保每个broker这里的配置都一样,正确。

     3、启动kafka

      确保zookeeper已经启动正确情况下,分别启动kafka server,启动脚本为:

      

     bin/kafka-server-start.sh  config/server1.properties  >/dev/null 2>&1 &      bin/kafka-server-start.sh  config/server2.properties  >/dev/null 2>&1 &      bin/kafka-server-start.sh  config/server3.properties  >/dev/null 2>&1 & 
            这样就完成3个kafka broker的分布式部署和启动。

      



0 0
原创粉丝点击