Gre*_*eco 5 django apache-kafka django-rest-framework kafka-producer-api
我正在使用 django 进行项目,并希望根据某些请求触发 Kafka 事件。我知道如何在视图中生成卡夫卡事件。
class TestList(generics.ListCreateAPIView):
permission_classes = [permissions.IsAuthenticated]
queryset = Test.objects.all()
serializer_class = TestSerializer
def post(self, request, *args, **kwargs):
serializer = TestSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
producer = KafkaProducer(bootstrap_servers=[f'{settings.SECRETS.kafka.host}:{settings.SECRETS.kafka.port}'],
value_serializer=lambda m: json.dumps(m).encode('ascii'))
kafka_msg = {
'msg': {
'hello': 'world',
},
}
producer.send('test', key=serializer.instance.id.bytes, value=kafka_msg) \
.add_callback(on_send_success).add_errback(on_send_error)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定每次在请求中创建 KafkaProducer 是否是最佳选择。有没有一种方法可以在启动时通过持久连接创建生产者,以及它如何或不会有什么区别吗?
| 归档时间: |
|
| 查看次数: |
2574 次 |
| 最近记录: |