赞
踩
一、顺序消费的应用场景
Kafka中顺序消费的应用场景主要涉及那些需要保证消息产生顺序和消费顺序一致的业务场景。这种场景使用并不多。例如,在订单处理系统中,订单的生成、支付、发货等步骤通常需要按照一定的顺序进行,以确保数据的完整性和一致性。
Kafka可以通过设置特定的参数来保证顺序消费,例如设置max.in.flight.requests.per.connection参数为1,可以保证消息按照发送的顺序写入服务器。
然而,需要注意的是,在顺序消费中,单线程的速度可能会比较慢,因此在一些需要高性能的场景下,可能会采用多线程并发消费的方案。在多线程并发消费中,消费者程序可以启动多个线程,每个线程维护专属的KafkaConsumer实例,负责完整的消息获取、消息处理流程。这样可以提高系统的吞吐量,同时保证消息的顺序正确性。
二、解决方案
1、发送方
在发送时将ack不能设置成0,关闭重试,使用同步发送,等到发送成功后再发送下一条,确保消息是顺序发送的。
2、消费方
消息发送到1个分区中,只能有1个消费组中的消费者来接收消费消息
这种方案就是会消耗掉Kafka的性能
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。