我看了下源码, Gateway与business_worker间的通讯是通过实现GatewayProtocol协议的_innerXXXWorker来通讯的。business_worker进程间是并没有提供通讯的接口, 但是我也有需求,希望通过新建一个worker来提供某些单点的服务, 那是否需要我自己实现类似于gateway与business的通讯方式来实现?有没有其他方法?
为何不直接用gateway/worker这种模式呢?
新建一个worker来提供某些单点的服务,是否需要实现gateway与business的通讯方式
这个不一定,看实际需要。gateway与business的通讯方式比较容易实现分布式部署,可以在不关闭客户端连接的情况下代码热更新等,没有其他明显的好处。
其实一般的业务基于Worker就ok的,不一定实现gateway与business。举一个极端的例子,比如webserver,就没必要实现gateway与business这种模型,直接就收数据处理然后返回关闭连接在一个进程里面一气呵成,简单高效
我搭建的是游戏服务器,也是按照文档推荐的使用gateway/business_worker模式。
为何不直接用gateway/worker这种模式呢?
这个不一定,看实际需要。gateway与business的通讯方式比较容易实现分布式部署,可以在不关闭客户端连接的情况下代码热更新等,没有其他明显的好处。
其实一般的业务基于Worker就ok的,不一定实现gateway与business。举一个极端的例子,比如webserver,就没必要实现gateway与business这种模型,直接就收数据处理然后返回关闭连接在一个进程里面一气呵成,简单高效
我搭建的是游戏服务器,也是按照文档推荐的使用gateway/business_worker模式。