Spring 使用实时通信启动应用程序
Spring boot applications with realtime communication
我有一个核心应用程序和一个提供商应用程序。
提供商应用程序是动态添加的。它需要将自己注册到核心。最初我假设提供商将有一个 public IP 并将在那里注册 IP 到核心,核心会在需要某些服务时调用它们。 (或者连接到 VPN,IP 就可以访问了)
这种方法变得难以管理,并且在检查提供程序的状态时会产生开销。
我想到了一些替代方案,但不知道该使用哪个
- 网络套接字。提供者会订阅一些主题。我还没有想出如何发布到一个单一的,但我认为提供商会在订阅时注册他们的 uuid,我们只发布到一个只有一个提供商会订阅的 uuid。
- 使用 Apache MQ 或 Kafka 或类似的东西。
- 实施 TCP 通信(Spring 集成可能会有所帮助,但我不确定)
这些是我的想法,我不确定如何构造它们以获得最佳性能和更清晰的代码。
我还有什么其他选择?
编辑
@cool 建议我使用发现服务器,这更有意义。提供者本身包含一个设备列表。单独发布它们有意义吗?它们都将具有相同的 IP,但设备 ID 将与元数据相关联(也许该 ID 将是 url 的一部分)。
听起来您需要的是像 eureka 这样的发现服务。
它的作用基本上是 discovering/providing 根据您的情况提供服务。您可以从 spring-eureka
查看详情
我有一个核心应用程序和一个提供商应用程序。
提供商应用程序是动态添加的。它需要将自己注册到核心。最初我假设提供商将有一个 public IP 并将在那里注册 IP 到核心,核心会在需要某些服务时调用它们。 (或者连接到 VPN,IP 就可以访问了)
这种方法变得难以管理,并且在检查提供程序的状态时会产生开销。
我想到了一些替代方案,但不知道该使用哪个
- 网络套接字。提供者会订阅一些主题。我还没有想出如何发布到一个单一的,但我认为提供商会在订阅时注册他们的 uuid,我们只发布到一个只有一个提供商会订阅的 uuid。
- 使用 Apache MQ 或 Kafka 或类似的东西。
- 实施 TCP 通信(Spring 集成可能会有所帮助,但我不确定)
这些是我的想法,我不确定如何构造它们以获得最佳性能和更清晰的代码。
我还有什么其他选择?
编辑
@cool 建议我使用发现服务器,这更有意义。提供者本身包含一个设备列表。单独发布它们有意义吗?它们都将具有相同的 IP,但设备 ID 将与元数据相关联(也许该 ID 将是 url 的一部分)。
听起来您需要的是像 eureka 这样的发现服务。 它的作用基本上是 discovering/providing 根据您的情况提供服务。您可以从 spring-eureka
查看详情