# SD3.X简介 >[danger]SD 已经停止维护,推荐使用ESD项目[ESD](https://www.kancloud.cn/tmtbe/goswoole/1067764) SD3.X版本是SD2.X的升级版,拥有SD2.X完整功能, 并在2.X的基础上进行了大量的优化,其主要特性在与3.X版本使用了swoole2.x版本的扩展,利用swoole2.x内置的协程机制取代了php yield,使得书写代码上更加简洁,如同同步书写一样,可以轻松的使用。3.X兼容2.X的绝大部分代码,2.X升级到3.X相对来说比较轻松,会有专门章节介绍迁移事项。 ## 优势 * SD环境一键安装 * SD项目成立时间长,经历了多个线上项目的迭代,稳定性优异。 * 拥有众多的功能模块,帮助你实现业务代码的编写 * 天然支持分布式部署 * 拥有微服务架构,RPC支持 * 支持多端口多协议,可同时支持UDP,TCP,HTTP,HTTPS,WS,WSS等协议 * 异步连接库丰富,支持redis,mysql,httpclient,tcpclient,mqttclient * 进程管理完善,自定义进程管理和进程间通讯支持完善 * 支持定时任务可配置 * 支持AMQP分布式任务调度 * MVC设计模式 * 对象池内存管理,减少GC * cli命令支持,可自定义命令 * VIP服务,支持1对1教学 ## 全自动安装部署 SD提供提供了运行环境的一键安装部署,可用于全新系统的环境搭建。 执行下面命令将安装SD3.X版本,包括所有环境,省心省事。 ``` curl -sS sd.youwoxing.net/install_v3 | bash ``` 将安装部署的有:PHP7.1.14,Swoole2.X,以及框架需要的各种扩展。 ## 智能路由 通过编写自定义封装器将获得的消息解包。 通过编写自定义路由可以将消息投递到不同的控制器中。 通过调用Model可以将业务解耦。 ## 多协议支持 可以开启多个端口同时支持多种协议。 支持的协议有UDP,TCP,WS,HTTP,WSS,HTTPS,满足日常开发需要。 不同端口可以拥有不同的封装器,框架会根据封装器自动封装消息下发到客户端,无需手动操作。 ## 进程管理 用户可以根据具体业务创建自定义进程,框架封装好了进程的管理,可以轻松创建自定义进程。 自定义进程和worker进程间可以互相通讯,自定义进程间也可以互相通讯。 ## Mysql/Redis连接池/协程 框架封装了Mysql和Redis连接池,用户调用方法时和同步用法一致,却是异步的性能。 框架对协程的使用也进行了封装,高级用户可以通过继承协程基类制作自己的异步协程方法。 ## 发布/订阅 框架提供发布订阅接口,严格满足MQTT协议定制的标准,却不需要MQTT协议支持,可以在任何协议中使用。 ## MQTT 提供MQTT异步客户端,可以接入开源MQTT服务器。 框架也可以开启简易MQTT服务器,实现MQTT基础功能。 ## AMQP分布式任务调度系统 框架提供AMQP任务调度支持,可以通过RabbitMQ实现AMQP异步任务调度。 通过开启自定义进程,可以为框架增加任务调度系统。 ## Event 框架提供了Event事件模块,可以通过监听事件实现异步调用。并且这些事件可以在集群内广播。 ## GrayLog日志系统 接入了GrayLog日志系统,可以通过搭建GrayLog实现一套大型日志处理系统。 ## 定时任务 通过TimerTask配置实现定时任务。 ## 集群 框架设计本身自带集群基因,所有的消息API均支持集群。 ## 微服务 通过Consul实现服务注册和监控,框架提供RPC方案。 ## Actor Actor模型,用于游戏开发,Actor间可以互相通讯,支持事务,支持分布式部署。 Actor很轻,服务器可以开启几十万个,用于对游戏内单位进行模拟。 ## Reload 开启自动Reload后,代码发生改变无需重启服务器。 ## CatCache 可落地的高速缓存,由PHP实现