【发布时间】:2019-11-23 00:40:26
【问题描述】:
我想澄清组织架构的最佳方式。
我有 rest api 和微服务架构。我已经应用了每个服务模式的数据库。
让我们假设用户想要创建一个订单(一个电子商务系统)。但是用户可以有信用额度。所以流程如下:
OrderService 创建挂单。然后推送一个关于它的事件。
UserService 处理该事件并发布超出信用额度事件或信用保留事件。
OrderService 接收事件并将订单状态更改为已批准或已取消。
一切看起来都很好。但问题是用户在这个简单的流程中会做什么? 我的意思是:用户发出 POST 请求 /orders 和 ...
- Web 服务一直在等待,直到订单获得批准或取消(肯定包括超时)?
- Web-service 返回 200 ok 然后用户需要间隔一段时间检查订单状态?
- 使用网络套接字?
- 还有别的吗?
不幸的是,上面的任何选项都有其优点和缺点。
挑战在于我描述了最简单的情况。实际上,可能涉及数十种服务(甚至第三方)。当然,我期待高负载。所以队列可能会被填满。
请提出解决方案进行讨论。我非常感谢您提供答案以及指向生产就绪系统文档的链接。
【问题讨论】:
-
嗨~大卫这个问题已经有一段时间了,你对这个问题有什么想法吗?
标签: rest events microservices event-driven saga