【发布时间】:2018-04-17 14:25:43
【问题描述】:
对于一个新项目,我们正在考虑将微服务与 RabbitMQ 或 Kafka 结合使用。对于这两种技术,我有同样的问题,但答案可能会有所不同。
考虑三个事件:
- 创建产品 1
- 创建配置文件 1
- 删除产品 1
我们希望使用这些事件在服务之间“复制”数据。当使用一个消费者时,所有的消息都会按照正确的顺序执行,并且数据库是一致的。
但是,当这个消费者处理消息的速度变慢时,可能需要并行添加另一个消费者。此时不确定事件1是否在事件3之前执行,这可能会导致数据库不一致(先删除,后创建)。
找到了一些关于该主题的信息here,但两种解决方案似乎都难以实施。如何扩大这些消费者的规模?使用 RabbitMQ 或 Kafka 处理这个问题的方式有什么不同吗?
【问题讨论】:
标签: architecture rabbitmq apache-kafka microservices scaling