关于kafka的只是信息自行百度,很多博客写的很好 不再赘述。
安装:
pip install pykafka
pip install kafka-python
Tip:
pykafka是Samsa的升级版本,使用samsa连接zookeeper,生产者直接连接kafka服务器列表,消费者才用zookeeper。
kafka-python并没有zk的支持。
直接上代码:
1、发送消息(produce)
def send_topic_msg(json_data):
producer = KafkaProducer(
value_serializer=lambda v: json.dumps(v).encode('utf-8'),
bootstrap_servers=['127.0.0.1:9092']
)
# json_data = {"openId": "", "dappAppId": "", "caCrt": str(base64_file, 'utf-8'),
# "nodeKey": "", "nodeCrt": ""}
producer.send('addNodeGet1', json_data)
producer.close()
2、接受消息(cstomer)
def rece_topic_msg():
client = KafkaClient(hosts="127.0.0.1:9092")
print('当前主题是:--->', client.topics)
topic = client.topics['test_topic3']
# topic = client.topics['addNode']
consumer = topic.get_simple_consumer(consumer_group="consumer",reset_offset_on_start=True)
for message in consumer:
if message is not None:
# 打印消费信息
print(message.offset, message.value)
bytes_data = message.value
json_data = json.loads(str(bytes_data, 'utf-8'))
# # print(json_data['nodeNum'])
# return message.value 有返回值的话会停掉接受消息的进程