首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ZMQ代理的自动发现

ZMQ代理的自动发现
EN

Stack Overflow用户
提问于 2015-01-06 02:08:53
回答 1查看 1.1K关注 0票数 1

我有以下问题:

云中有一组基于ZMQ的代理。这些将在使用特定IP范围的Amazon VPC中运行。

也有客户端应用程序,这些应用程序可以在所有类型的主机上运行,并且可以位于世界的任何地方。

我希望这些客户端自动发现可用的经纪人。

代码语言:javascript
运行
复制
Broker1: 172.44.22.33
Broker2: 172.44.22.34
Broker3: 172.44.22.35
Broker4: 172.44.22.36
....

Client: 82.34.55.12

...when此客户端启动时,应获取上面的代理up列表。

我的问题是,做这件事的最佳方式是什么?

当然,客户端可以使用暴力破解方法,尝试连接到范围内的所有IP,但这不是一个很好或有效的解决方案。

我猜,VPC可以支持组播(通过n2n),在这种情况下,客户端将发送组播消息,可用代理将使用发送方IP对其进行“回复”,发送方IP始终是组播数据的一部分(据我所知)。

但是有没有更好的方法来做到这一点呢?我需要客户端自动发现,因为这必须是一个零配置系统。

我知道在局域网上使用多播/广播或类似bonjure / zeroconf的东西可以很容易地完成发现。但是客户端不是我的网络的一部分,它们可以位于任何地方。

提前感谢!

编辑:

我知道这也可以通过其他方式解决,比如添加“配置服务器”,它将存储有关可用代理的信息,但我更喜欢去中心化的解决方案。

EDIT2:

似乎DNS-SD可以用于此目的,因为支持广域发现。正如我所看到的,我甚至可以手动将一些特殊的DNS条目添加到我的DNS服务器。

客户端只需知道其DNS记录存储所广告服务的数据的域名。

我猜,客户端需要集成bonjur / avahi库或其他一些DNS-SD实现来执行这些查询,对吧?最好的免费库是什么,avahi?

EN

回答 1

Stack Overflow用户

发布于 2015-01-06 20:08:24

你的速度有多快,有多少组件?

所以它有点像是在使用配置服务器,但有一点不同,你需要一个种子列表,一个你知道会一直存在的组件列表。

这些组件中的每一个都应该是配置服务器或运行发现服务,当组件启动它时,它向种子列表中的所有发现服务注册,并且还订阅来自所有的更改,然后在内部管理来自所有发现服务的更新的所有组件的列表。

如果您计划拥有20个以上的组件,我建议您使用八卦协议,但在您识别所有组件之前,速度会更慢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27785313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档