微服务应用程序之间的关联



我正在通过spring-boot和spring-cloud编写一个微服务应用程序。我有五个模块是

  • API-Gateway(基于spring云网关spect(
  • Discovery Server(基于春季云Netflix Eureka服务发现(
  • Microservice-A(这是一个包含我们业务的春季启动应用程序(
  • Microservice-B(这是一个包含我们业务的春季启动应用程序(
  • Microservice-C(这是一个包含我们业务的春季启动应用程序(

来自用户的所有请求路由到API网关,并通过API网关发送到应用程序A、B或C(这些请求不会公开(。现在我有一个问题,基于一个业务角色,应用程序a需要调用应用程序B的一个休息端点。哪种方法最好?我直接从应用程序A调用应用程序B端点,还是通过API-Gateway调用?

API网关应作为入口层,它只接受来自应用程序外部(客户端/外部集成(的流量。更多详细信息请点击此处。

微服务之间的任何内部通信都应该是点对点的交互,可以通过多种方式进行。这个答案更详细地描述了这一点。

所以API网关不应该关注微服务的编排。

对于服务间通信,如果您想应用中央安全策略,即API身份验证、用于净化请求的网络防火墙规则、基于IP地址或角色的资源访问策略等,API网关可以是您的入口点。

此外,我假设您打算通过发现服务路由请求,如果您不通过API网关遵循请求路由,则发现服务再次需要直接集成到每个依赖的微服务中。

如果我是你,我将使用消息代理进行微服务通信。让api网关用于外部客户端。我认为我们过度使用了http协议。对于微服务架构,我们应该尝试以不同的方式思考。

相关内容

  • 没有找到相关文章

最新更新