启动 kafka
在此之前应先配置好 kafka 和 Zookeeper,hadoop不配置也没关系
进入 kafka 的 bin 目录
# kafka-server-start.sh ../config/server.properties
切换到另一个 screen,因为原来的 screen 在执行 kafka,无法输入命令,切换到另一个 screen 最简单的方法就是另起一个 ssh 窗口
jps查看进程
# jps
创建一个名为 test 的 topic
# kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看当前存活的 topic
# kafka-topics.sh --list --zookeeper localhost:2181
以 kafka 为消息队列,用 python 编写生产者、消费者
安装操作 kafka 的包
pip install kafka-python
producer.py
from kafka import KafkaProducer
import json
import time
#建立 Producer 与 Kafka 进程的连接
producer = KafkaProducer(bootstrap_servers='Master:9092')
#进行日志格式化输出
def log(_str):
t = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
print("[%s]%s"%(t,_str))
def counter():
for i in range(10):
producer.send('test',str(i).encode())
producer.flush()
log('send: %s' % (i))
counter()
#关闭生产者的连接
producer.close()
log('done')
consumer.py
from kafka import KafkaConsumer
import time
#格式化输出日志
def log(_str):
t = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
print("[%s]%s"%(t,_str))
log('start consumer')
#消费 Master:9092 的 test topic
consumer=KafkaConsumer('test',bootstrap_servers=['Master:9092'])
for msg in consumer:
recv = "%s:%d:%d: key=%s value=%s" %(msg.topic,msg.partition,msg.offset,msg.key,msg.value)
log(recv)
启动消费者
python consumer.py
切个屏幕,启动生产者
python producer.py