kafka-pythonをインストールします。
C:\ anaconda3 \ Scripts> pip install kafka-python
import datetime
import json
from kafka
import KafkaProducer
from kafka import KafkaConsumer from kafka.errors import KafkaError
'' '
使用kafka-python的生产模块
' ''
class Kafka_producer():
def __init __(self、bootstrapServers、kafkaTopic):
self.bootstrapServers = bootstrapServers
self.kafkaTopic = kafkaTopic
self.producer = KafkaProducer(bootstrap_servers = self.bootstrapServers)
def sendjsondata(self、params):
try:
parmas_message = json.dumps(params)
producer = self.producer
future = producer.send(self.kafkaTopic 、parmas_message.encode( 'utf-8'))
producer.flush()
recordMetadata = future.get(timeout = 10)
print(recordMetadata、datetime.datetime.now()。strftime( '%Y%m%d%H%M%S'))
KafkaErrorをeとして除く:
印刷(E)
'' '
使用カフカ-pythonの的消费模块
'''
クラスKafka_consumer():
デフ__init __(自己、bootstrapServers、kafkaTopic、groupIdを):
self.kafkaTopic = kafkaTopic
self.bootstrapServers = bootstrapServers
self.groupId =のgroupId
自己.consumer = KafkaConsumer(self.kafkaTopic、group_id = self.groupId、bootstrap_servers = self.bootstrapServers)
def consumer_data(self):
try:
self.consumerのメッセージ:
BaseException以外の メッセージをeとして生成する:__ name__ == '__main__'の場合、
print(e)
:
bootstrapServers = ['ip1:port1'、 'ip2:port2'、 'ip3:port3']
topicStr = '主题'
print( '-' * 20)
print( '生产者')
print( '-' * 20)
producer = Kafka_producer(bootstrapServers、topicStr)
in id for range(5):
params = '{tst}:{null} ---' + str (id)
producer.sendjsondata(params)
print( '-' * 20)
print( '消费者')
print( '-' * 20)
groupId = 'group名称'
consumer = Kafka_consumer(bootstrapServers、topicStr、groupId)
メッセージ= consumer.consume_data()
メッセージのfor i:
print(i.value)