python 生产者
#import datetime
import time
import random
import schedule
from json import dumps
from faker import Faker
from kafka import KafkaProducer
kafka_nodes = "kafka:9092"
myTopic = "weather"
def gen_data():
faker = Faker()
prod = KafkaProducer(bootstrap_servers=kafka_nodes, value_serializer=lambda x:dumps(x).encode('utf-8'))
my_data = {
'city': faker.city(), 'temperature': random.uniform(10.0, 110.0)}
prod.send(topic=myTopic, value=my_data)
prod.flush()
schedule.every(2).seconds.do(gen_data)
while True:
schedule.run_pending()
time.sleep(0.5)
console 消费者
root@cb5907ae28c1:/# kafka-console-consumer.sh --topic weather --bootstrap-server localhost:9092 --from-beginning
{"city": "North Christopher", "temperature": 67.95115029391047}
{"city": "South Abigail", "temperature": 70.31666431169052}
{"city": "New Maryside", "temperature": 83.09965808226785}
{"city": "Reedside", "temperature": 65.03686535720038}
{"city": "Angelatown", "temperature": 104.81254312810289}
{"city": "Nelsonton", "temperature": 47.46181347087175}
{"city": "Port Mary", "temperature": 72.64499201774528}
{"city": "Bruceton", "temperature": 26.50020679433758}
{"city": "South Eric", "temperature": 102.74213254833768}
{"city": "Lake Patricia", "temperature": 99.37267854651625}