kafka-python

安装与使用

安装

1:kafka的运行需要java环境支持,因此需要在系统中安装JDK(先安装最新版的JDK21试试)

2:访问官网Apache Kafka,下载kafka2.4.0版本的安装文件kafka_2.12-2.4.0.tgz,解压缩到d盘根目录下(因为kafka的运行需要依赖于Zookeeper,因此,需要下载并安装Zookeeper。当然,kafka也内置了Zookeeper服务,因此,也可以不用额外安装Zookeeper,而是直接使用内置Zookeeper。)

使用

启动Zookeeper服务

1,在Windows系统中打开第一个cmd窗口,启动Zookeeper服务:

cd /d D:\kafka_2.13-3.6.1

     (输入时用Tab键可以补全)

.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

2,  执行上面命令后,cmd窗口会返回一堆信息,然后就停住不动了,没有回到命令提示符状态,这时不要误以为死机了,而是Zookeeper服务器已经启动,正在处于服务状态。所以,不要关闭这个cmd窗口,如果关闭则Zookeeper服务停止

启动kafka服务

1,打开第二个cmd窗口,启动kafka服务:

cd /d D:\kafka_2.13-3.6.1
.\bin\windows\kafka-server-start.bat .\config\server.properties

2,执行以上命令如果启动成功,则会出现与启动Zookeeper服务一样的情况,不要关闭窗口,一旦关闭,则kafka服务停止

测试

1,打开第三个cmd窗口,进入kafka服务:

    

cd /d D:\kafka_2.13-3.6.1

2,创建一个新主题user_behavior

    

.\bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic user_behavior

     创建成功会有如下显示

     检查一下是否创建成功

.\bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092

    可以看到已经成功创建了一个名叫user_behavior的主题

3,创建一个产生消息的生产者

.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic user_behavior

输入此命令后光标会进行闪动,然后就可以在光标处输入消息并发送出去,例如输入

    I love Kafka

 4,新建第四个cmd窗口

cd /d D:\kafka_2.13-3.6.1
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic user_behavior --from-beginning

 接下来就能看到在第三个cmd窗口发送出去的消息

至此,测试成功

在Python中的使用

生产者

创建

from kafka import KafkaProducer
import json
producer = KafkaProducer(bootstrap_servers=['localhost:9092'],  # kafka集群地址(现在这个为在本地运行的地址)
                         value_serializer=lambda m: json.dumps(m).encode('utf-8'),  # 指定值的反序列化方法
                         api_version=(0, 10, 2)  # 必要参数,没有会报错
                         )

调用

# kafka生产者接收用户行为数据发至主题
def send_to_kafka(data):
    try:
        producer.send('user_behavior', value=data) # 指定发送主题
    except Exception as e:
        print(f"An error occurred while sending message to Kafka: {e}")

消费者

创建

# Kafka消费者处理实时数据
    consumer = KafkaConsumer(
        'user_behavior',
        bootstrap_servers=['localhost:9092'],  # Kafka集群的地址,如果Kafka运行在本地,默认地址是localhost:9092
        auto_offset_reset='latest',  # 从最新的消息开始消费
        enable_auto_commit=True,  # 自动提交偏移量
        value_deserializer=lambda x: json.loads(x.decode('utf-8')),  # 指定值的反序列化方法
        api_version=(0, 10, 2),
    )
    # 循环消费消息
    for message in consumer:
        # 获取消息内容
        behavior_data = message.value
        print(f'Received message: {behavior_data}')
        # 处理实时用户行为数据(将其存储到数据库、进行分析、实时推荐)
        # 存储到MongoDB数据库
        save_to_database(behavior_data)
#         # # 推荐
#         # user_item_matrix = time_decay_collaborative_filtering(behavior_data)
#         # user_id = behavior_data.get('user_id', None)
#         # recommendations = recommend(user_id, user_item_matrix)
#         # # 新建一个“recommendResult”主题,把推荐结果发至该主题,后在API接口中监听该主题给前端调用
#         # producer.send('recommendResult', value=json.dumps(recommendations).encode('utf-8'))

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值