当通过python3执行kafka时出现return '<SimpleProducer batch=%s>' % self.async的解决办法

1、出错信息如下:

Traceback (most recent call last):
  File "consumer_kafka.py", line 1, in <module>
    from kafka import KafkaConsumer
  File "/usr/local/python3/lib/python3.7/site-packages/kafka/__init__.py", line 23, in <module>
    from kafka.producer import KafkaProducer
  File "/usr/local/python3/lib/python3.7/site-packages/kafka/producer/__init__.py", line 4, in <module>
    from .simple import SimpleProducer
  File "/usr/local/python3/lib/python3.7/site-packages/kafka/producer/simple.py", line 54
    return '<SimpleProducer batch=%s>' % self.async

如下图所示:

2、因为py3.7里面async已经变成了关键字。所以导致了不兼容,因此通过python -m pip install kafka-python进行版本升级,这里的python模式是3版本,如下图所示:

3、此时再次执行即可,如下图所示:

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
这段代码是使用 Apache Camel 的 XML DSL 编写的,它的作用是监听名为 `value-changed-to-kafka-1670489389897` 的消息队列,将一段间内相同 `body.id` 的消息进行聚合,并在符合一定条件将聚合后的消息发送到名为 `test_topic` 的 Kafka 主题中。 具体解释如下: - `<from>`:表示从指定的 URI(这里是 `direct:value-changed-to-kafka-1670489389897`)中获取消息。 - `<aggregate>`:表示一个聚合器,将一段间内的多个消息进行聚合。 - `completionTimeoutCheckerInterval="1000"`:表示聚合器每隔一定间(这里是 1000 毫秒)检查一次是否有已完成的聚合消息,如果有则发送到目标。 - `strategyRef="ValueChangedAggregator"`:表示使用名为 `ValueChangedAggregator` 的聚合策略。 - `<correlationExpression>`:表示一个关联表达式,用于决定哪些消息可以聚合在一起,这里使用 `body.id` 作为关联表达式。 - `<filter>`:表示一个过滤器,用于过滤符合条件的消息。 - `<groovy>`:表示使用 Groovy 语言编写的条件判断语句,这里判断 `headers.ValueChangedExpression.from` 是否等于字符串 "condition_1",且 `headers.ValueChangedExpression.to` 是否等于字符串 "condition_2"。 - `<marshal>`:表示对消息进行编组,这里使用 `Jackson` 库将消息编组为 JSON 格式。 - `<removeHeaders>`:表示移除所有的消息头。 - `<to>`:表示将编组后的消息发送到指定的目标,这里发送到名为 `test_topic` 的 Kafka 主题中。 因此,这段代码的含义是:监听名为 `value-changed-to-kafka-1670489389897` 的消息队列,将一段间内相同 `body.id` 的消息进行聚合,并在符合 `headers.ValueChangedExpression.from == 'condition_1'` 且 `headers.ValueChangedExpression.to == 'condition_2'` 的条件将聚合后的消息编组为 JSON 格式,并发送到名为 `test_topic` 的 Kafka 主题中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值