rest - 它如何将各种微服务与Docker连接起来?

标签 rest docker spring-boot microservices

我在 Docker 中有两个微服务,我想将一个与另一个连接起来,但我不知道该怎么做。这两个(以及 future 的应用程序)是带有 Spring-boot 的 API Rest,我正在搜索信息、教程……但我什么也没看到。我的想法是有一个主应用程序,它能够与其他微服务连接,它们是 API Rest,然后这个主应用程序发布,所有这些我想把它放在容器 (Docker) 中。

这可能吗?

有人知道解释这个的任何教程吗?

非常感谢!

最佳答案

您所描述的可能是一个API 网关Here是一个很好的教程,解释了这种模式。

实现一个 API 网关,它是所有客户端的单一入口点。 API 网关以两种方式之一处理请求。一些请求只是代理/路由到适当的服务。它通过分散到多个服务来处理其他请求。

enter image description here

此模式的一个变体是前端模式的后端。它为每种客户端定义了一个单独的 API 网关。

enter image description here

使用 API 网关有以下好处:

  • 使客户端与应用程序如何划分为微服务无关

  • 将客户端与确定服务实例位置的问题隔离开来

  • 为每个客户端提供最佳 API

  • 减少请求/往返次数。例如,API 网关使客户端能够通过单次往返从多个服务中检索数据。更少的请求也意味着更少的开销并改善用户体验。 API 网关对于移动应用至关重要。

  • 通过将调用多个服务的逻辑从客户端转移到 API 网关来简化客户端

  • 将“标准”公共(public)网络友好 API 协议(protocol)转换为内部使用的任何协议(protocol)

API 网关模式有一些缺点:

  • 复杂性增加 - API 网关是另一个必须开发、部署和管理的事件部分

  • 由于通过 API 网关的额外网络跃点增加了响应时间 - 然而,对于大多数应用程序来说,额外往返的成本微不足道。

API网关如何实现?

如果必须扩展以处理高负载,则事件驱动/响应式(Reactive)方法是最佳选择。在 JVM 上,Netty、Spring Reactor 等基于 NIO 的库才有意义。 NodeJS 是另一种选择。

关于rest - 它如何将各种微服务与Docker连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48004725/

相关文章:

java - 使用 Jersey 枚举资源

spring-boot - 当我点击 “Execute”按钮时更改Swagger UI请求URL

docker - 在单个主机上运行多节点 Elasticsearch 集群是否有意义?

postgresql - Docker容器的可靠性

postgresql - 为什么我无法在容器中运行 pdo_pgsql?

spring - Zuul 无法将流量路由到 Kubernetes 上的服务

java - Spring 应用程序中通过 ReactJS REST 生成的文件列表为空

rest - REST api 中项目的用户特定数据

rest - 使用 jaxrs+apache+eclipse 获取 rest api 时返回 404,静态 index.html 工作正常

c# - 是否有用于 C# 的 Linq to REST 库