在不暴露 public API 的情况下在同一台机器上的微服务之间进行通信

Communicate between microservices on the same machine without exposing a public API

我对 Camel 和 Spring 比较陌生,我正在提供一项服务来预测股票价格,使用神经网络来练习使用 Camel、Spring 和 DL4J。

我的服务分为 5 个微服务(网关、H2 SQL 数据库、管理控制台、数据提取器、DL4J 处理程序),每个微服务 运行 在它们自己的 Java 应用程序中。每个都有一个 REST API.

如何防止外部计算机连接到其中 4 项服务,同时保持网关打开并可连接?

To clarify:

所有 5 个服务都有一个 REST 端点,并且它们都相互可见,因为它们都在同一台机器上 运行ning 并且可以与 localhost:port 连接。我想知道如何防止外部计算机连接到其中 4 个服务,同时让 1 个(网关)仍然可以连接。

这里 Spring 或 Camel 没有什么独特之处。

每个都有一个 REST API,这意味着有一个 HTTP 端点,这意味着每个服务都将其服务器端口绑定在本地主机上,因此可以通过 http://localhost:<port> 相互访问,假设没有 运行 在 VM 或 Docker 容器中

您应该还可以在本地主机上使用网关