多客户端RPC路由守护程序

时间:2012-12-26 21:06:51

标签: client-server rpc

我花了几周时间寻找能够满足以下要求的守护进程:

  • 从其他网络主机处理任意数量的客户端。
  • 允许客户以身份注册服务。
  • 允许其他客户端对这些已注册的服务进行RPC调用,并提供可靠的错误处理(如果为该服务注册的客户端已分离,则守护程序应向调用者报告错误,而不是将其挂起)。
  • 允许客户注册接收其他客户可以广播的事件。
  • 越简单越好。

我在F / LOSS世界中发现的最接近的东西是D-Bus,它满足所有这些标准,除了第一个:它无法可靠地与远程连接一起使用。我花了很多时间研究其他选项(ESB和MQ守护进程 - 花费大部分时间用0MQ和RabbitMQ)并且它们都以某种方式不足:ESB往往非常复杂,具有很高的学习曲线和MQ守护进程倾向于提供一半的解决方案(路由),而另一半(错误恢复)非常复杂,如果不是不可能的话。

除了一个客户说“我提供服务'foo'”以及另一个客户说“我想在服务'foo'上调用方法'bar'时,我不会寻找任何出色的路由功能。”

似乎这样的事情已经存在,我不愿意自己动手​​。

用例是我将在许多主机上拥有许多进程。每个主机都有一个调控器进程/服务,可以从控制面板控制这些进程的生命周期。流程本身也将是服务,允许直接查询状态以及此面板的重新配置请求。诀窍是进程会来来去去,所以端点的静态配置不是我真正想要的;我宁愿让每个进程负责告诉守护进程“我是某某服务”,然后让守护进程进行客户端间路由。

我开发此系统时唯一缺少的是可以在所有这些进程之间路由RPC请求的东西。那里有没有这样的守护进程,还是有其他模型可以更好地满足我的需求?

0 个答案:

没有答案