Spring 使用实时通信启动应用程序

Spring boot applications with realtime communication

我有一个核心应用程序和一个提供商应用程序。

提供商应用程序是动态添加的。它需要将自己注册到核心。最初我假设提供商将有一个 public IP 并将在那里注册 IP 到核心,核心会在需要某些服务时调用它们。 (或者连接到 VPN,IP 就可以访问了)

这种方法变得难以管理,并且在检查提供程序的状态时会产生开销。

我想到了一些替代方案,但不知道该使用哪个

  1. 网络套接字。提供者会订阅一些主题。我还没有想出如何发布到一个单一的,但我认为提供商会在订阅时注册他们的 uuid,我们只发布到一个只有一个提供商会订阅的 uuid。
  2. 使用 Apache MQ 或 Kafka 或类似的东西。
  3. 实施 TCP 通信(Spring 集成可能会有所帮助,但我不确定)

这些是我的想法,我不确定如何构造它们以获得最佳性能和更清晰的代码。

我还有什么其他选择?

编辑

@cool 建议我使用发现服务器,这更有意义。提供者本身包含一个设备列表。单独发布它们有意义吗?它们都将具有相同的 IP,但设备 ID 将与元数据相关联(也许该 ID 将是 url 的一部分)。

听起来您需要的是像 eureka 这样的发现服务。 它的作用基本上是 discovering/providing 根据您的情况提供服务。您可以从 spring-eureka

查看详情