分布式

最后更新于:2022-04-02 06:18:28

# 分布式 [TOC] ## SMProxy [SMProxy](https://github.com/louislivi/smproxy)一个基于mysql协议,swoole 开发的mysql数据库连接池。将数据库连接作为对象存储在内存中,当用户需要访问数据库时,首次会建立连接,后面并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。超出最大连接数会采用协程挂起 等到有连接关闭再恢复协程继续操作。能够大幅度降低数据库压力,提升数据库操作效率。 * 支持读写分离 * 支持数据库连接池,能够有效解决PHP带来的数据库连接瓶颈 * 支持SQL92标准 * 遵守Mysql原生协议,跨语言,跨平台的通用中间件代理。 * 支持多个数据库连接,多个数据库,多个用户,灵活搭配。 * 支持mysql事物 * 采用协程调度 * 支持 HandshakeV10 协议版本 * 完美兼容mysql5.6-5.7 * 兼容各大框架,无缝提升性能 ## SwooleDistributed [SwooleDistributed](http://sd.youwoxing.net/)swoole 分布式全栈框架框架,它的特点: * 优秀的框架(MVC)设计,丰富的支持极大加快开发速度 * 通过开启不同端口同时支持TCP和HTTP,WebSocket,同一逻辑处理不同协议 * 全异步支持,无需手动处理连接池,异步redis,异步mysql,mysql语法构建器,支持异步mysql事务,异步httpclient,效率出众 * 协程模式全支持,异步redis,异步mysql,异步httpclient,异步task,全部都提供了协程模式,业务代码摆脱处处回调的困扰(不是swoole2.0同样支持) * 支持协程嵌套,支持协程内异常处理(和正常逻辑用法一样) * 额外提供了protobuf完整RPC实例,轻松使用protobuf * 天然分布式的支持,一台机器不够零配置,零代码修改完成高效分布式系统的搭建 * [完善详细的文档](http://docs.youwoxing.net/),还有实例代码,轻松掌握 * 线上项目打造维护,不断优化与改进 * [SwooleDistributed](http://sd.youwoxing.net/)2.0版本为微服务框架,拥有1.x版本全部功能,核心代码重构,协程效率更加优秀,具有服务注册中心,可以发布服务,监测服务状态,进程内的负载均衡,同时具有熔断,降级等保护服务的高级功能。服务健康状态,上下线服务自动感知,可以通过RPC或者HTTP与其他服务器进行交互。如果服务中断框架会自动将请求迁移到可用的服务上,尽量保证高可用性。通过版本管理还可以支持灰度发布。 ## swoole-task [swoole-task](https://github.com/luxixing/swoole-task)是基于PHP swoole扩展开发的一个异步多进程任务处理框架,服务端和客户端通过http协议进行交互。 它适用于任务需要花费较长时间处理,而客户端不必关注任务执行结果的场景.比如数据清洗统计类的工作,报表生成类任务。 ## swoole-jobs [swoole-jobs](https://github.com/kcloze/swoole-jobs)基于swoole的job调度组件,特性: * redis/rabbitmq/zeromq等任何一种做队列消息存储(目前只实现redis/rabbitmq) * 利用swoole的process实现多进程管理,进程个数可配置,worker进程退出后会自动拉起 * 子进程循环次数可配置,防止业务代码内存泄漏 * 支持topic特性,不同的job绑定不同的topic * 支持composer,可以跟任意框架集成 * 日志文件自动切割,默认最大100M,最多5个日志文件,防止日志刷满磁盘 ## DFS [DFS](https://github.com/qieangel2013/dfs)分布式文件服务器,核心特性: 1. 基于swoole和inotify实现分布式文件服务 2. 采用协议包来实时同步文件、性能很高,采用sendfile传送文件,内存、cpu占有率很少 3. 文件实时监控及监控子目录服务 4. 自动断线重连服务 5. 自动扫描本地已存在的文件目录实时同步服务 ## multiprocess [multiprocess](https://github.com/kcloze/multiprocess)基于swoole的进程管理组件,可轻松让普通PHP脚本变守护进程和多进程执行: 1. 基于swoole的脚本管理,用于多进程和守护进程管理 2. 进程个数可配置,可以根据配置一次性执行多条命令 3. 子进程异常退出时,自动重启 4. 主进程异常退出时,子进程在干完手头活后退出(平滑退出)
';