【发布时间】:2011-03-13 03:10:56
【问题描述】:
在开发 Twisted 时,我想知道是否有:
- 一种明确定义服务依赖关系的方法(例如,为了启动服务 B,在我需要启动服务 A 之前)
- 一种让两个服务通信的“pythonic”方式(例如,B 与 A 共享信息,A 可以控制 B 的执行)
谢谢
【问题讨论】:
在开发 Twisted 时,我想知道是否有:
谢谢
【问题讨论】:
看看Twisted Application Documentation。听起来您想创建一个MultiService,每个都有自己的子服务实现。你要做的是定义一些服务,实现startService 和stopService 并将你的服务安排在一个树层次结构中(通过setServiceParent)以确定任意启动和关闭顺序。
如果您对分布式服务协调更感兴趣,那么这会稍微困难一些。这是Erlang 擅长的事情,但如果您不反对使用像Zookeeper 这样的系统,这可能是一个解决方案。
至于您的最后一点,服务有多种通信方式。您可以使用 Perspective Broker 之类的东西进行对象通信,或者使用更重和更通用的东西,例如 RabbitMQ
【讨论】: