设置 Apache Kafka 集群

问题描述 投票:0回答:3

我一直在尝试分布式流媒体平台 Apache Kafka,但我在它的“分布式”方面遇到了困难。

我正在使用here的示例,当所有内容都在同一台计算机上时,该示例可以正常工作。但我想将它作为具有 2 个或更多虚拟机的集群来运行

到目前为止我所做的:

  • 使用 Host-Only 适配器正确设置虚拟机。
  • 通过将以下内容添加到/etc/zookeeper/conf/zoo.fcg来设置Zookeeper集群(如

    Rajkumar Natarajan
    所指出的仲裁模式):

    server.1=192.168.56.101:2888:3888
    server.2=192.168.56.102:2888:3888
    

    并确保

    myid
    中的
    /var/lib/zookeeper
    对于每个服务器都是唯一的。运行
    bin/zkServer.sh status
    会得到 1 个
    Mode: leader
    ,其余的则为
    Mode: follower

  • 通过更改

    config/server.properties
    中的以下内容来设置 Kafka 集群:

    broker.id=0 # 1 for the second server
    zookeeper.connect=192.168.56.101:2181,192.168.56.102:2181
    
  • 在Python中设置sonsumer:

    from kafka import KafkaConsumer
    consumer = KafkaConsumer(
        topic, 
        bootstrap_servers=['192.168.56.101:9092','192.168.56.102:9092'])
    
  • 在Python中设置生产者:

    from kafka import KafkaProducer
    producer = KafkaProducer(bootstrap_servers='192.168.56.101:9092,192.168.56.102:9092')
    

我想做的事:

以允许我在不同虚拟机上运行 2 个或更多代理作为集群的方式配置我的 Kafka。

我的设置:

  • 主机:带有 VirtualBox 5.2.20 的 Windows 10 (1803)
  • 来宾:Ubuntu 18.04、Kafka 2.0.0
apache-kafka apache-zookeeper
3个回答
0
投票

我花了一些时间才找到解决方案,因为大多数教程都没有涉及集群部分或在一台机器而不是多台机器上展示它:

需要做的就是将此行添加到

config/server.properties
:

listeners=PLAINTEXT://192.168.56.101:9092 # for broker.id=0
listeners=PLAINTEXT://192.168.56.102:9092 # for broker.id=1

0
投票

我使用 vagrant box 进行集群设置。 其中有 3 台使用 Zookeeper 以 quorom 模式安装的机器。 其中有 3 个 kafka 代理,一台机器带有 kafka 管理器,另一台机器带有 kafka 注册表。

您所要做的就是下载并执行

vagrant up

https://github.com/rajcspsg/VBoxes/blob/master/kafka-platform-centos/Vagrantfile


-4
投票

在此链接中参考设置 kafka 集群:https://github.com/arliputraa/kafka-cluster-configuration

© www.soinside.com 2019 - 2024. All rights reserved.