python consumer代码(服务器B)
from pykafka import KakaClient
client = KafkaClient(
zookeeper_hosts='127.0.0.1:2181')
topic = client.topics['syslog-topic']
consumer = topic.get_simple_consumer()
for msg in consumer:
if msg is not None:
print msg.offset, msg.value
fluentd配置(服务器A)
broker_host zk_host为服务器B IP
<match *.*>
type kafka
id kafka_output
brokers broker_host:9092,broker_host:9093,broker_host:9094 ##new version kafaka donnt need this?
zookeeper zk_host:2181
default_topic syslog-topic
#compression_codec gzip
output_data_type json
</match>
在服务器A执行kafka-console-producer 给topic syslog发送msg,那段python代码是可以收到msg的,是我的fluentd配置有问题?
不会python,简单看对应的配置是话必要的参数都是对的,python发消息,没有发送成功,从几个点分析一下。
1、如果python和kafka集群不在同一台机器,kafka要设置listener对外暴露ip,不然连接都是不通的
2、python发送后等待一下,消息还在缓存中,还没来得急发送到kafka进程就结束了
你的答案