【发布时间】:2020-04-17 01:47:19
【问题描述】:
这可能是某种最佳实践问题。请从事此工作的人举例说明。让我们所有人都能受益!
对于使用 Kafka / Redis 的事件驱动架构,当我们为事件创建主题/流时,应遵循哪些最佳实践。
让我们考虑在线订单处理工作流程。
我读过一些博客说创建主题/流,如 order-created-events、order-deleted-events 等。但我的问题是,当我们将其拆分为多个主题时,如何保证消息的顺序。
例如:
order-created-events 可能有数千个事件,并由消费者缓慢处理。假设只有 5-10% 的人会取消订单,order-deleted-events 在队列中可能只有很少的记录。
现在,假设用户首先下订单。然后他立即取消。这将使 order-deleted-event 首先处理,因为在某些消费者处理同一订单的 order-created-event 之前,主题/流没有太多消息。会造成一些数据不一致。
希望我的问题很清楚。那么,如何提出主题/流设计?
【问题讨论】:
标签: apache-kafka redis apache-kafka-streams redis-streams