python3.7操作kafka_CentOS7 搭建Kafka消息队列环境,以及Python3操作Kafka Demo

Kafka适合什么样的场景?

它可以用于两大类别的应用:

构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。 (相当于message queue)

构建实时流式应用程序,对这些流数据进行转换或者影响。 (就是流处理,通过kafka stream topic和topic之间内部进行变化)

Kafka中文文档:http://kafka.apachecn.org/

1,系统环境

a,操作系统   CentOS Linux release 7.6.1810 (Core)  64位,必须确保你的内存是4G以上,双核CPU!否则将无法新建默认命名空间。

b,确保jdk环境已经安装,具体教程请看  CentOS7 shell脚本安装jdk

c,确保Python3和对应的pip已经安装,具体教程请看 CentOS7 源码编译安装Python3.5

2,执行以下命令,安装Kafka并启动

wget https://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz # 下载kafka 1.0.0安装包

tar -zxvf kafka_2.11-1.0.0.tgz # 解压安装包

cd kafka_2.11-1.0.0/ # 打开kafka目录

sh bin/zookeeper-server-start.sh -daemon config/zookeeper.properties # 后台运行zookeeper

sh bin/kafka-server-start.sh config/server.properties # 运行kafka服务

出现 “started” 则是启动成功

7ea5a4ea642137ab65a65c39ec2cd27b.png

3,执行以下命令,创建test5的topic

sh bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test5

2d6655d62a6c90db9f941d05be0b5a78.png

4,执行以下命令,创建监听test5的消息队列程序

sh bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test5 --from-beginning

5,执行以下命令,建发送test5消息队列的生产者程序

sh bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test5

生产者发送一些消息,回车

739556786d82d899ef02dae313f96e83.png

看到消费者界面出现生产者的消息

f8af4d0cce89a52fd7237c8c8e0c5116.png

6,Python3安装kafka依赖包,执行命令 “pip3 install kafka”

依赖包安装完成后,创建python3消费者监听程序,kafka_consumer.py

from kafka import KafkaConsumer

consumer = KafkaConsumer('test4', bootstrap_servers=['localhost:9092'])

for msg in consumer:

recv = "%s:%d:%d: key=%s value=%s" % (msg.topic, msg.partition, msg.offset, msg.key, msg.value)

print(recv)

运行 python3 kafka_consumer.py

创建python3生产消息队列程序,kafka_producer.py

import json

from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='localhost:9092')

msg_dict = {

"sleep_time": 10,

"db_config": {

"database": "test_1",

"host": "xxxx",

"user": "root",

"password": "root"

},

"table": "msg",

"msg": "Hello World"

}

msg = json.dumps(msg_dict)

producer.send('test4', bytes(msg,'ascii'), partition=0)

producer.close()

运行 “python3 kafka_producer.py”,转到kafka_consumer.py运行界面看到已接收到生产程序发送过来的信息

639c0d68b03f96d5e36fa41dfc4a2222.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值