在微服务中,一般一个服务承担一种职责。如果各个微服务之间是流水线处理,即一个微服务的 output 是另外一个微服务的 input ,对于一个任务来说,需要依次被这些微服务处理。
应该如何设计比较好?
如果是 RESTful API ,则需要一个中心的类似 dispatcher 一类的微服务,这样问题是一些微服务处理事件比较长,则 HTTP 等待的事件也比较长,容易形成瓶颈。
如果是 EDA(Event Driven Architecture),则每个微服务都使用 message queue 连接,似乎也不太合理,因为任务可以认为是串行的。微服务多,那 queue 的层级也比较多。
或者将这两种方式综合起来?
大家在微服务中有什么 best practice 吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.