##描述
在实际工作中发现没有类似Dubbo那种成熟度比较高的PHP服务框架,去年正好工作不是特别忙,就模仿Dubbo写了一个服务框架。
使用Zookeeper提供服务注册和服务发现功能,通过TCP+JSON的方式进行RPC通讯,服务节点(PHP/Java)可以在启动后自动把自身模块包含的服务注册到Zookeeper上,服务调用者就可以从Zookeeper获取服务的节点位置信息,进行调用。
调用者通过一个本地代理程序进行RPC通讯,这样就可以比较好的适应PHP多进程的运行环境,从而避免调用方耦合大量的TCP连接池管理这种重度功能。
##程序分为下面几个部分
front 调用端的调用封装的PHP脚本
soa_fw/ext/scc 调用端的PHP扩展
soa_fw/soa_proxy RPC调用代理
soa_fw/ext/scp 服务节点端的PHP扩展
soa_fw/soa_tools 用于操作ZK的命令行工具
soa_fw/scripts 清除日志的shell脚本
backend/base PHP版本的服务节点运行环境
backend/modules/demo PHP版本的服务模块示例
backend_java/base Java版本的服务节点运行环境
backend_java/modules/demo Java版本的服务模块示例
###PHP服务节点
把PHP版本的服务节点运行环境跑起来,服务模块的示例放入app/services目录下,执行: soa.sh start
###Java服务节点
把Java版本的服务节点运行环境跑起来,服务模块的示例的jar包放入lib\services目录下,执行: soa.sh start
###调用端
把RPC调用代理跑起来,可以借鉴front里面的代码进行调用端的编写,集成在Nginx+PHP-FPM环境中
###配置
(略)
##编译安装
(略)
###依赖的库:
Zookeeper C API -- 用于访问Zookeeper的客户端库
Swoole -- 作为PHP服务节点的运行容器
zlog -- RPC调用代理用它来打印日志
##联系开发者
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。