当前位置: 首页 > 知识库问答 >
问题:

如何维护Kafka active active站点中的消息有序性

卫乐童
2023-03-14

我有一个业务需求,在积极主动的网站维护消息,我正计划使用Kafka为相同的。生产者将消息放入JMS/MQ,这些消息将由Kafka消费。那么当PRODUER在MQ/JMS中放置100万条消息的批处理消息时,是否可以在地理分布的主动-主动kafka集群中保持消息的顺序呢?

(假设每个主题有一个分区和一个使用者)

提前致谢

共有1个答案

须曜文
2023-03-14

是的,保留了主题每个分区的消息顺序。不同的主题之间没有保证。因此,如果您的整个批处理由一个生产者发送到相同的单分区主题,是的,订单将被保留。您应该注意配置的一些细微差别,例如,如果启用了每次连接的最大飞行请求数>1,并且重试,则订购保证将不成立。然而,默认值是安全的。有关更多详细信息,请参阅https://kafka.apache.org/documentation/#configuration中的“max.in.flight.requests.per.connection”

如果您的安装程序具有冗余的带有故障转移的生产者,那么您可能要考虑启用幂等性。

 类似资料:
  • 我在想,如果我们能以某种方式确保特定的生产者(具有特定的键值属性)在主题t1的特定分区p1中发布其消息,如果我们能确保消费者从相同的分区p1中获取消息。这将有助于我们的目的。 在帮助中,我看到如下内容: 我们可以使用这个选项来控制生成器将写入的分区吗? 同样在高层消费者中,我们能控制它从哪个分区消费吗?如何将分区分配给使用者?

  • 问题内容: 我正在使用JSONObject来删除JSON字符串中不需要的certin属性: 它可以正常工作,但是问题是JSONObject是“名称/值对的无序集合”,我想保持String在通过JSONObject操作之前的原始顺序。 任何想法如何做到这一点? 问题答案: 你不能 这就是为什么我们称其 为名称/值对的无序集合 。 我不确定为什么需要这样做。但是,如果要订购,则必须使用json数组。

  • 我正在使用apache flink构建一个相当复杂的数据流网络。其思想是,用Flink实现一个规则引擎。 作为应用程序的基本描述,它应该是这样工作的: 数据由kafka消费者源接收,并用多个数据流处理,直到最终发送到kafka生产者接收器。传入的数据包含具有逻辑键(“object-id”)的对象,传入的消息可能引用相同的object-id。对于每个给定的object-id,必须在整个应用程序中保留

  • Inserting in Sorted Order # bisect_example.py import bisect # A series of random numbers values = [14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 77, 1] print('New Pos Contents') print('--- --- ----

  • 我们有一个运行在JBoss4上的内部系统,我们希望升级到Wildfly21,因为我们不能永远停留在过去。 我们有两个站点,一个位于东海岸的活动站点,另一个位于西海岸的热备份/故障转移站点,每个站点在集群中都有两个独立的jboss服务器。我们正在使用嵌入式消息传递,目前由mysql支持mysql复制,以保持备份站点的同步,以防我们需要故障转移。 所以-当我们故障转移到其他站点时,我们如何尽最大努力保

  • 主要内容:面试题剖析,解决方案面试题剖析 我举个例子,我们以前做过一个 mysql binlog 同步的系统,压力还是非常大的,日同步数据要达到上亿,就是说数据从一个 mysql 库原封不动地同步到另一个 mysql 库里面去(mysql -> mysql)。常见的一点在于说比如大数据 team,就需要同步一个 mysql 库过来,对公司的业务系统的数据做各种复杂的操作。 你在 mysql 里增删改一条数据,对应出来了增删改