java - 微服务如何处理长调用链

标签 java microservices

我的项目是采用微服务架构创建的,一个业务可能需要多个服务调用。目前,大多数服务调用都需要串行调用,因为下一个服务调用的请求是根据上一个服务调用的响应生成的。这使得调用链很长,性能很差,有什么解决方案来处理这种情况吗?或者我需要改变我的微服务设计?谢谢!

最佳答案

您可以尝试通过实现队列解决方案来解决部分问题,例如 Apache Kafka ,第一个微服务处理数据并将数据发布到队列中,第二个微服务从此队列中读取......处理并发布到另一个队列。

这种方法可以提高性能,因为您可以增加 Kafka 的分区数量,但是您需要在将任务发送到下一个服务之前分析您真正需要处理的内容,以及是否可以瘫痪,如果可以瘫痪,您可以扩展微服务实例以处理更多数据。

您有很多选择,但对于微服务“对话”,我建议使用队列。

祝您的项目顺利。

关于java - 微服务如何处理长调用链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53908919/

相关文章:

java - dcoder 中的 hello world 教程出现问题

java - Spring 3.X Java 7 线程安全日期/数字格式注入(inject)

java - 在单元格选择 jtable 事件之前

spring-security - 微服务到微服务调用,来自队列消息的授权

spring - 微服务之间的原子操作

java - 使用 Java 将任何文件转换为十六进制并再次转换回来

java - Int 无法容纳结果,因此程序失败

c# - 用于用户表示的 Service Fabric 服务与 Service Fabric Actors

rest - 如何在分布式 REST 服务架构中生成 HATEOAS 链接?

oauth-2.0 - 如果我有服务器端代理,我可以将 Oauth2 授权代码流用于 SPA(React 应用程序)吗?