我很好奇如何构建一个简单而健壮的RPC框架。我只看过几个红宝石框架,但它们在某种程度上都缺乏。在RPC框架中,我想要的是某种注册/发现机制和简单的插件架构。几乎所有的框架都提供了一个简单的插件机制,但我还没有找到一个简单的发现机制。唯一在发现方面确实提供了一些东西的是MCollective,但是它有它自己的一组问题,我在工作中尝试使用它时遇到了这些问题。
那么,使用tcp套接字或可能使用0MQ从底层构建一个套接字有多难呢?在我开始这个项目之前,我应该提前意识到任何问题吗?
发布于 2013-03-05 07:36:43
这不是从地面上建造一个是否困难的问题,而是一个是否明智的问题。不会的。
由于它似乎是您缺少的发现机制,因此改进或向现有RPC框架添加更好的发现机制会更容易。这也会给你更高的机会,真正得到用户,如果你想发布它。
现在的问题是,发现是困难的,没有通用的发现方法在任何情况下都是可行的。您可以拥有简单的URL、本地代理(如D-总线)或网络跟踪器(大多数对等网络),您可以在DNS中有特殊条目(最好是DNS-SD),您可以有多播和知名端口,也可以有一些现有的基于多播的协议,如多播DNS+DNS-SD或简单服务发现协议 (upnp的一部分)…。你没有说你想要它是为了什么,所以我很遗憾地不能给你任何特别的解决方案。
另外,不要局限于Ruby;看看用其他语言实现的、可以绑定或移植到ruby的现有技术。RPC机制的一个很大的优点是,每个对等点都可以用不同的语言实现,所以如果用多种语言实现相同的协议,总是会更好。
https://softwareengineering.stackexchange.com/questions/189267
复制相似问题