一、依赖:

Kafka依赖于Zookeeper,并且内置Zookeeper,我们可以选择独立部署Zookeeper或者使用自带的Zookeeper。这边我使用了Kafka内置的Zookeeper;关于Zookeeper部署和配置这边不会详细说明,如果有不明白的可以看这边博文:利用VMware在虚拟机上安装Zookeeper集群


二、下载:

  1.  kafka_2.11-0.10.0.0.tgz可以到我的CSDN下载:kafka_2.11-0.10.0.0.tgz或者到官网下载:http://kafka.apache.org/downloads.html
  2. 将下载的kafka_2.11-0.10.0.0.tgz包用rz命令上传(我用的是XShell,你也可以使用winSCP等工具)我这边上传到/usr/local下,并已经使用命令解压(tar -zxvf kafka_2.11-0.10.0.0.tgz)。三台都如此!


三、配置:

zookeeper.properties:基于利用VMware在虚拟机上安装Zookeeper集群,先配置/usr/local/kafka_2.11-0.10.0.0/config下的zookeeper.properties:



  1. 还漏了点配置:
    tickTime=2000
    initLimit=10
    syncLimit=5


server.properties:从上到下配置
  1. Broker的ID:broker.id=1;(每个Broker保持唯一,可从0开始递增编号,我这边为了和上面的server.1保持一致所以从1开始)。

  2. 日志地址:定义成你想保存的地址:我这边统一到:/usr/local/kafka/logs下(你没有可以自己创建):



  3. 分区数目:默认num.partitions=1,一般情况下等于broker数量,所以我改成3

  4. Zookeeper连接地址:将集群中的Zookeeper地址配入,以逗号隔开:


四、启动:

  1. 先启动zookeeper:
    nohup /usr/local/kafka_2.11-0.10.0.0/bin/zookeeper-server-start.sh /usr/local/kafka_2.11-0.10.0.0/config/zookeeper.properties &
    可以到单独安装的Zookeeper的bin目录下使用命令查看Zookeeper启动状态(是否成功):./zkServer.sh status


  2. 启动Kafka:
    nohup /usr/local/kafka_2.11-0.10.0.0/bin/kafka-server-start.sh /usr/local/kafka_2.11-0.10.0.0/config/server.properties &

五、验证:

  1. 创建topic:在zookeeper1上创建了一个叫testtopic的主题。
    /usr/local/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --create --topic testtopic --zookeeper zookeeper1:2181 --replication-factor 3 --partition 3


  2. 查看所创建的topic:1中创建的topic,因为是集群,所以应该在zookeeper2上可以查看到:
    /usr/local/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --zookeeper zookeeper2:2181 --list



  3. 创建发布者producer:在zookeeper1上创建一个发布者:
    /usr/local/kafka_2.11-0.10.0.0/bin/kafka-console-producer.sh -broker-list zookeeper1:9092 -topic testtopic



  4. 创建消费者consumer:在zookeeper2、zookeeper3上分别创建消费者:发布者发到对应topic下的内容会被对应的消费者接收到
    /usr/local/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh -zookeeper zookeeper2:2181 -from-beginning -topic testtopic
    /usr/local/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh -zookeeper zookeeper3:2181 -from-beginning -topic testtopic




  5. producer进行发布:在3中创建的发布者在控制台等待输入,输入需要发布的内容后点击回车,消息就被发布出去了。

  6. consumer进行订阅:在4中创建的消费者在控制台会输出对应集群中特定topic下由发布者发出的消息




Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐