我有两个微服务进入Docker,我想连接一个,但我不知道这样做。这两个(以及未来的应用程序)是带有Spring-boot的API Rest,我正在搜索信息,教程...但我什么也看不见。我的想法是有一个主应用程序,它能够与其他微服务连接,他们是API Rest,然后这个主应用程序发布,所有这些我想把它放在容器(Docker)。
有可能吗?
任何人都知道任何解释这个的教程吗?
非常感谢!
答案 0 :(得分:3)
您所描述的内容可能是 API网关。 Here是一个很好的教程,解释了这种模式。
实施API网关,该网关是所有客户端的单一入口点。 API网关以两种方式之一处理请求。有些请求只是代理/路由到适当的服务。它通过扇出多个服务来处理其他请求。
此模式的变体是前端模式的后端。它为每种类型的客户端定义了一个单独的API网关。
使用API网关具有以下优势:
将客户端与应用程序分区为微服务的方式隔离开来
将客户端与确定服务实例位置的问题隔离开来
为每个客户提供最佳API
减少请求/往返次数。例如,API网关使客户端能够通过单次往返从多个服务中检索数据。更少的请求也意味着更少的开销并改善用户体验。 API网关对于移动应用程序至关重要。
通过将用于调用多个服务的逻辑从客户端移动到API网关来简化客户端
从“标准”公共网络友好API协议转换为内部使用的任何协议
API网关模式有一些缺点:
复杂性增加 - API网关是另一个必须开发,部署和管理的移动部分
由于通过API网关额外的网络跳跃而增加了响应时间 - 但是,对于大多数应用程序而言,额外往返的成本是微不足道的。
如何实施API网关?
事件驱动/被动方法最好是必须按比例扩展以处理高负载。在JVM上,基于NIO的库(如Netty,Spring Reactor等)是有意义的。 NodeJS是另一种选择。
答案 1 :(得分:2)
请给你最简单的答案: 通常,容器可以使用任何协议(http,ftp,tcp,udp)彼此通信,而不仅限于休息(http / s)
PS。有更复杂的技术,但它从根本上落在了方法之上。