Darts Framework
概述
Darts Framework 是基于 Swoole 开发的一款高新能的微服务框架
Label
初次安装
请先将 Library类库 dartswoole 置于darts
项目的同级目录
然后执行 composer install --no-dev
安装 dartswoole
扩展
性能测试
压测方法:
ab -c 100 -n 1000000 -k http://127.0.0.1:9500/
压测结果:
软件 | QPS | 软件版本 |
---|---|---|
darts 1.0 | 267.39 | centos7.5(1核2G) / php7.2 / swoole4.6 |
ThinkPHP 6.0 | xxx | centos7.5(1核2G) / php7.2 / nginx1.18 |
Laravel 8.0 | xxx | centos7.5(1核2G) / php7.2 / nginx1.18 |
目录简介
app
-----Controller-------------控制器
-----Providers--------------服务提供者加载
-------------------RouteServerProvider--------路由服务提供者自定义扩展
-------------------RpcServerProvider----------RPC微服务提供者自定义扩展
-----Listeners--------------事件监听绑定
-------------------StartListener--------------swoole启动服务绑定的事件
-------------------StopListener---------------swoole停止服务绑定的事件
-----Rpc--------------------RPC微服务处理
bin
-----darts------------------cli命令操作
config
-----app.php----------------框架主配置文件
-----dartswoole.php---------dartswoole类型初始化加载配置文件
-----event.php--------------事件绑定配置文件
-----http_server.php--------swoole的http服务配置
-----consul.php-------------基于consul开发的rpc微服务
-----rpc_client.php---------项目作为客户端rpc服务配置
-----rpc_server.php---------项目作为服务端rpc服务配置
public
-----index.php--------------项目入口文件
route
-----http.php---------------路由文件
storage
-----app--------------------应用缓存
-----framework--------------框架缓存
-----logs-------------------日志缓存
HTTP服务
基于 swoole 的 HTTP服务器 实现http协议的解析与处理。
RPC微服务
darts中微服务实现的两种方式:
1、Swoole->TCP
使用 swoole 的 TCP 协议使用 config/rpc_client.php
配置的rpc服务, 对 RpcServer 和 RpcClient 进行通信。
该服务的启动后,读取的配置如下:
RpcServer ---read---> config/rpc_server.php RpcClient ---read---> config/rpc_clien.php2、Swoole->Consul->TCP
RpcClient 首先从 consul 服务中读取健康服务的 ip 和端口,然后使用 swoole 的 TCP 协议和 RpcServer 进行通信。
该服务的启动后,读取的配置如下:
RpcServer ---read---> config/rpc_server.php RpcClient ---read---> config/consul.php如何测试RPC
#1测试
由于 RPC 服务的实现,需要一个客户端(client)和一个服务端(server)。所以对于 darts 项目需要准备两份,一个充当客户端一个充当服务端。
客户端(client)项目:
在config/rpc_server.php
中 flag
设为 false
,关闭RPC服务
服务端(server)项目:
在config/rpc_server.php
中 flag
设为 true
,关闭RPC服务
#2测试
在config/rpc_server.php
中 flag
设为 true
,开启RPC服务
在 config/dartswoole.php
中取消 DartswooleConsulConsulServerPriovder::class
的注释,开放 consul 服务的加载
相关问题
为什么真实连接大于配置的数据库连接数量
在对数据库压测过程中,我们用 SHOW PROCESSLIST;
查看数据库的连接数量,会发现真实的连接远大于在配置文件中对于连接池的配置。
因为在服务器中,darts 项目启动后,会根据服务器的核心数,启动对应数量的 Worker 进程,而每个 Worker
进程是相互独立的,如果服务器的核心数是 s,数据库进程池中配置的数量是 n,那么查询连接数是 s*n。服务器中查看 Worker 进程的命令是:pstree -ap | grep darts
License
遵循 MIT 许可证,有关详细请参阅 LICENSE。
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。