如何使用 Python 将 Django 与 Kafka 集成?

Rah*_*and 15 python django apache-kafka

我想将输入从Django 传递到 Kafka。我有字段a,b,c,dh1,h2h3。所有字段均由用户输入。我想在用户在 Django 前端界面上输入提交按钮后立即启动 Kafka 进程。所有字段都保存在Mysql中。

我只能使用 Mysql 连接器在 Java 中找到可能的解决方案。

有没有任何方法或连接器可以让我使用 python 将 Django 界面上的用户输入传递到 kafka

a、b、c、d - 访问令牌

h1,h2,h3 - 搜索查询(关键字)

小智 13

首先安装kafka-python,然后在views.py.

  1. from kafka import KafkaProducer
  2. from kafka import KafkaConsumer
  3. from json import loads
  4. import json
  5. import pickle //pickle converts data into byte array

然后编写Producer视图如下。

这段代码将数据转换为字节数组并发送给kafka。您可以发送数据,如 v=your data,而不是发送 json 消息 v。

def kfk(request):   
    producer = KafkaProducer(bootstrap_servers='127.0.0.1:9092')
    v = {
        'msg': {
            'hello': 'world',
        },
    }
    serialized_data = pickle.dumps(v, pickle.HIGHEST_PROTOCOL)
    producer.send('Ptopic', serialized_data)
    return HttpResponse(200)
Run Code Online (Sandbox Code Playgroud)

消费数据:

def cons(request):
    consumer = KafkaConsumer('Ptopic', 
        bootstrap_servers=['localhost:9092'], 
        api_version=(0, 10) 
        #,consumer_timeout_ms=1000
    )

    for message in consumer:
        deserialized_data = pickle.loads(message.value) 
        print(deserialized_data)
Run Code Online (Sandbox Code Playgroud)

注意:Kafka 消费者视图应始终处于运行模式,然后尝试在此处生成 Ptopic 是我的主题名称。


tup*_*pan 6

是的,只需使用 kafka-python 包中的 KafkaProducer 就可以了。

pip install kafka-python

然后在你的 Django 函数中:

def myfunc(request):
  from kafka import KafkaProducer
  producer = KafkaProducer(bootstrap_servers='kafkaBroker:9092')
  producer.send('foobar', b'test')
  return HttpResponse(200)
Run Code Online (Sandbox Code Playgroud)