在实际工作中发现没有类似Dubbo那种成熟度比较高的PHP服务框架,去年正好工作不是特别忙,就模仿Dubbo写了一个服务框架。
使用Zookeeper提供服务注册和服务发现功能,通过TCP+JSON的方式进行RPC通讯,服务节点(PHP/Java)可以在启动后自动把自身模块包含的服务注册到Zookeeper上,服务调用者就可以从Zookeeper获取服务的节点位置信息,进行调用。
调用者通过一个本地代理程序进行RPC通讯,这样就可以比较好的适应PHP多进程的运行环境,从而避免调用方耦合大量的TCP连接池管理这种重度功能。