具有实时通信功能的 Spring 启动应用程序



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

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

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

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

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

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

我还有什么其他选择?

编辑

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

听起来你需要的是像尤里卡这样的发现服务。 它基本上是根据您的情况发现/提供服务。您可以查看春季尤里卡的详细信息

最新更新