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

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

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



kafka设置队列大小 kafka设置groupid_配置文件



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

     然后你就能够输入一些消息了。例如以下图: 




kafka设置队列大小 kafka设置groupid_kafka设置队列大小_02



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


 [root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning


      当你运行这个命令之后。你便能够看到控制台上打印出的生产者生产的消息:


kafka设置队列大小 kafka设置groupid_kafka_03



     和消费者相关的属性配置存放在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实例


kafka设置队列大小 kafka设置groupid_kafka设置队列大小_04


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    
  1. 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设置groupid_zookeeper_05






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








转载于:

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

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

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


kafka设置队列大小 kafka设置groupid_配置文件


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

     然后你就能够输入一些消息了。例如以下图: 


kafka设置队列大小 kafka设置groupid_kafka设置队列大小_02



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


 [root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning


      当你运行这个命令之后。你便能够看到控制台上打印出的生产者生产的消息:


kafka设置队列大小 kafka设置groupid_kafka_03



     和消费者相关的属性配置存放在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实例


kafka设置队列大小 kafka设置groupid_kafka设置队列大小_04


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    
  1. 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设置groupid_zookeeper_05






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