# php_soa_framework **Repository Path**: Davis/php_soa_framework ## Basic Information - **Project Name**: php_soa_framework - **Description**: 仿照Dubbo的设计思路,设计了PHP版本的SOA框架,也支持Java语言实现的服务 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2017-02-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##描述 在实际工作中发现没有类似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调用代理用它来打印日志 ##联系开发者 堂吉诃德 421093703@qq.com http://my.oschina.net/xuhh