首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件驱动架构-主题/流设计

事件驱动架构-主题/流设计
EN

Stack Overflow用户
提问于 2020-04-16 22:54:46
回答 1查看 47关注 0票数 0

这可能是某种最佳实践问题。有人谁已经在这方面的工作,请举例说明。让我们所有人都能从中受益!

对于使用Kafka / Redis的事件驱动架构,当我们为事件创建主题/流时,应该遵循哪些最佳实践。

让我们考虑一下在线订单处理工作流。

我看到一些博客说创建主题/流,如order-created-eventsorder-deleted-events等。但我的问题是,当我们将其拆分成多个主题时,如何保证消息的顺序。

对于ex:

订单创建-事件可能有数千个事件,并由消费者缓慢处理。订单已删除-假设只有5-10%的事件会取消订单,则队列中的事件可能只有很少的记录。

现在,让我们假设,用户首先下了订单。然后他会立即取消。这将使订单删除事件首先处理,因为在一些消费者为相同订单处理订单创建事件之前,主题/流没有太多消息。这会导致一些数据不一致。

希望我的问题是清楚的。那么,如何设计主题/流呢?

EN

回答 1

Stack Overflow用户

发布于 2020-04-17 01:47:19

Kafka仅确保特定分区的排序。

因此,要使用kafka分区和使用分区的负载均衡,应该为单个主题(如order)创建多个分区。

现在,使用分区类为每条消息生成一个键,该键应该只对应于相同的分区。

因此,无论订单A如何创建、更新或删除,它们都应该始终属于同一分区。

为了正确地实现排序,这应该是决定主题的基础,而不是为不同的活动选择两个不同的主题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61253338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档