云主机连接kafka集群

最近更新时间:2018-08-15 17:26:22

云主机连接kafka集群

创建单独的kafka集群后,往往需要通过其他云主机连接kafka集群,需要遵循以下步骤:

  1. 确保云主机可以访问KMR集群,参见VPC网络设置;
  2. 确保kafka集群的安全组中打开了kafka端口的入站规则,默认为6667;
  3. kafka broker hosts默认使用主机名而不是ip,因此跨集群默认情况下会出现消费者(consumer)无法联接broker的情况,为了保证消费者(consumer)正确联接broker,需要在消费者(consumer)所在机器的host文件中,加入kafka集群相关主机名与ip的映射;
    • 登入kafka集群的master-1主节点,cat /etc/hosts,打印出集群相关ip与host;
    • 登入消费者(consumer)所在机器,打开hosts文件vim /etc/hosts,将kafka集群主节点中的ip及host填入hosts中。

测试云主机与kafka集群中各broker的联通性,可以使用如下的python脚本(需依赖python kafka包):

import json
from kafka import KafkaProducer
port = '6667' # kafka监听的端口,默认为6667
for hn in ['x.x.x.x',
           'x.x.x.x',
           'x.x.x.x',
           'x.x.x.x']: # 填入broker的ip地址

    bootstrap_servers = '%s:%s' % (hn, port)
    try:
        producer = KafkaProducer(bootstrap_servers=bootstrap_servers)
        producer.send('test', b'some_message_bytes')
        print('\n=============done=============')
        print(bootstrap_servers)

    except Exception as e:
        print('\n*************************')
        print(bootstrap_servers)
        print("Error:%s" % e)

金山云,开启您的云计算之旅

立即注册