栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

python kafka写入.net平台消费 延迟5秒问题解决

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python kafka写入.net平台消费 延迟5秒问题解决

测试环境,使用python的pykafka写入消息数据,.net Confluent.Kafka进行消费,中间发现,间隔一秒发送会延迟5秒做批处理。

python代码:

from pykafka import KafkaClient
import datetime
import threading
import time


def producer():
    client = KafkaClient(hosts="172.26.1.22:9092", broker_version='2.4')
    topicdocu = client.topics["251z_37"]
    producer = **topicdocu.get_producer()**

    for num in range(1, 20):
        time.sleep(1)
        producer.produce(bytes(str(num), encoding='utf-8'), timestamp=datetime.datetime.now())
        print(num)


if __name__ == '__main__':
    producer()

.net 消费代码:

                        var consumerConfig = new ConsumerConfig
            {
                BootstrapServers = "172.26.1.22:9092",
                AutoOffsetReset = AutoOffsetReset.Earliest,
                GroupId = "node",
                EnableAutoCommit = true,
            };
            var kafkaBuilder = new ConsumerBuilder(consumerConfig);

            using (var consumer = kafkaBuilder.Build())
            {
                CancellationTokenSource cts = new CancellationTokenSource();
                consumer.Subscribe("251z_37");
                while (true)
                {
                    var kafkaResult = consumer.Consume(cts.Token);
                    //var @event = JsonConvert.DeserializeObject(kafkaResult.Value);
                    Console.WriteLine(kafkaResult.Value + "   " + DateTime.Now.ToString("HH:mm:ss"));
                }
            }

问题效果:

可以看到,这种情况会5秒写入一次数据,消费端会五秒接收到一批数据。
问题原因:producer = topicdocu.get_producer(sync=True) 初始化时候,需要设置sync=True,需要传参为同步处理。之后就是一切正常了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号