当前位置: 首页 > 软件库 > 程序开发 > 微服务框架 >

Swoft

高性能 PHP 微服务框架
授权协议 GPL
开发语言 PHP
所属分类 程序开发、 微服务框架
软件类型 开源软件
地区 国产
投 递 者 拓拔君博
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。

Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服务治理的最佳选择。

功能特色

  • 内置高性能网络服务器(Http/Websocket/RPC/TCP)
  • 灵活的组件功能
  • 强大的注解功能
  • 多样化的命令终端(控制台)
  • 强大的面向切面编程(AOP)
  • 容器管理,依赖注入(DI)
  • 灵活的事件机制
  • 基于PSR-7的HTTP消息的实现
  • 基于PSR-14的事件管理
  • 基于PSR-15的中间件
  • 国际化(i18n)支持
  • 简单有效的参数验证器
  • 高性能连接池(Mysql/Redis/RPC),自动重新连接
  • 数据库高度兼容Laravel的使用方式
  • Redis高度兼容Laravel的使用方式
  • 秒级定时任务
  • 进程池
  • 高效的任务处理
  • 灵活的异常处理
  • 强大的日志系统
  • 服务注册与发现
  • 配置中心
  • 服务限流
  • 服务降级
  • 服务熔断
  • Apollo
  • Consul
  • Swoft 提供了一整套认证服务组件,基本做到了配置后开箱即用。用户只需根据自身业务实现相应的登录认证逻辑,框架认证组件会调用你的登录业务进行token的签发,而后的请求中token解析、合法性验证也都由框架提供,同时框架开放了token权限认证接口给用户,我们需根据自身业务实现token对当前访问资源权限的认证。下面我们详细讲一下 jwt 的签发及验证、访问控制的流程。 token 签发 tok

  • PHP 里面的 yii/laravel 框架算是非常「重」的了. 这里的 重 先不具体到 性能 层面, 主要是框架的设计思想和框架集成的服务, 让框架可以既可以快速解决很多问题, 又可以轻松扩展. PHP 中的框架, 有 yii/laravel 在, 应该无出其右了. 这次解读 swoft 的源码 -- 基于 swoole2.0 原生协程的框架. 同时, swoft 使用了大量 swoole 提供

  • 前言 参考文章:swoft使用rabbitmq消息队列 官方提供了swoft/amqp的组件,但是在package中查找不到,需要手动加入composer.json 没有文档,没有示例 2年未更新,仍然留存有使用问题 手动下载 swoft/amqp composer.json配置 添加以下内容 "require": { "swoft/amqp": "^2.0" }, { "repo

  • 说明 php7由于新框架须要安装swoole,只能linux环境运行,这里本机开发是win10(:debian云服务器主机上git clone 项目,再同步到本机phpstorm、修改提交;或使用win10的docker安装)。 这里docker有个bug:无法感知主机文件的热更新,所以运行加了 --rm 选项,手动热启动。 1.安装 官方提供docker方式简便快捷: (git clone ht

  • 1. 模块开发; 1.1 准备工作、测试基本接口; 启动镜像 # docker 启动进入 Swoft 镜像 docker run -it --name swoft_rpc -p 8308:18307 \ -v /data/php/test/swoft/Swoft_rpc/:/swoft \ -w /swoft rpc/swoft:2.0.6 sh # 查看 PHP 版本 php bin/swof

  • 响应对象 response 响应对象 Response 为 Swoft\Http\Message\Response 查看 response 对象源码,文件路径为 vendor/swoft/http-message/src/Response.php class Response implements ResponseInterface { use CookiesTrait, MessageT

  • a.Swoft-cli 1.下载 wget https://github.com/swoft-cloud/swoft-cli/releases/download/{VERSION}/swoftcli.phar 注意:你需要替换 {VERSION} 部分为最新版本。 wget https://github.com/swoft-cloud/swoft-cli/releases/download/v0.

  • 基本功能介绍 引用官方的介绍 某些场景对主流程没有依赖,可以直接使用任务来实现类似这些功能。框架为开发者提供了 协程 和 异步 两种任务。切记无论是 协程任务 还是 异步任务,任务里面操作都 只支持协程,且只能使用框架封装的所有 IO 操作(数据库、缓存…) 协程任务投递任务的时候不会阻塞主进程相当于一次协程调用,一般用于需要等待任务结果返回的场景。 有些场景主流程并不关心的任务执行的结果,此时就

  • 连接Redis 在bean.php中配置 普通连接池配置 'redis-2' => [ 'class' => Swoft\Redis\RedisDb::class, 'host' => '10.0.0.2', 'port' => 6379, 'database' => 1, 'retryInter

  • 1.docker安装 2.通过docker下载镜像 3.创建实例并运行一个命令 docker run -p 18306:18306 --name swoft swoft/swoft 4.docker命令 linux命令 查看状态 ps -ef | grep docker docker 查看镜像 docker images 启动镜像 docker run -p  docker exec -it  e

  • 数据库配置 在app\bean.php 的db模块中配置所有的数据库信息 'db' => [ 'class' => Database::class, 'dsn' => 'mysql:dbname=shop;host=39.105.158.193', 'username' => 'shop',

  • 创建控制器 主要通过 @Controller 注解实现,代码可以放在任意位置,但为了统一标准,建议放在 app/Http/Controller 目录下 使用注解@Controller(prefix="路由前缀"),需要引入 Controller 类 路由绑定 swoft 并没有采用配置文件的方式来配置路由,而是采用了注解,可以使用 @RequestMapping 注解添加路由 使用注解 @Requ

  • 参考资料 swoft-view https://github.com/swoft-cloud/swoft-view Swoft提供PHP原生语法的视图渲染支持,并提供基础的布局以及内部引入文件等功能。 视图安装 Swoft视图渲染可作为额外单独组件使用,首先检查当前Swoft项目是否已经安装了swoft-view组件。 $ vim composer.json "require":{ "swof

  • 注意事项 要使用MySQL前提条件必须安装了MySQL,由于目前采用的是Docker的使用,所以提前需要使用Docker安装MySQL,具体操作参见《Docker MySQL》。 基础概念 数据库实例:数据库实例相当于分配,默认节点分为master和slave,属于默认实例default。 master和slave是两个特殊的名称,他们会归纳到default实例中,表现为default.maste

  • 1, https://doc.swoft.org/README.html 2,   https://www.easywechat.com/docs/master/zh-CN/installation 3,   composer, psysh : 调试验证小段代码, xhprof : 专注于性能分析,找出代码慢在哪里,持续优化,提高性能。       deployer:项目部署工具,简单,快捷.  

 相关资料
  • imi v1.0.13 版本新增了一个 Swoole\Coroutine\Http\Server 实现的协程服务器。需要 Swoole 4.4+ 才可使用该特性。 该特性是可选的,不影响以前使用的服务器模式。 使用协程服务器特性,依靠 Linux 系统的端口重用机制,系统级的负载均衡,可以让你的多进程 Http 服务处理请求的能力得到提升。 使用 ab,本机->虚拟机(双核+2进程)压测Hello

  • “在微服务之间添加的同步依赖关系越多,例如查询请求,客户端应用程序的总体响应时间就越差。 “这是真的吗?我认为在同步通信中,我们比异步通信更直接地得到反馈。例如,假设一个用户向微服务a发送http请求,微服务a又异步地向另一个微服务B发送请求,并异步地等待它的答复。如果微服务B关闭,那么用户将等待到超时才能得到响应,而在同步通信中,他将立即得到响应。

  • 本文向大家介绍微服务哪些框架相关面试题,主要包含被问及微服务哪些框架时的应答技巧和注意事项,需要的朋友参考一下 Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。阿里巴巴近几年对开源社区的贡献不论在国内还是国外都是引人注目的,比如:JStorm 捐赠给 Apache 并加入 Apache 基金会等,为中国互联网人争足了面子,使得阿里巴巴在国人眼里已经从电商升级为一

  • ketchup 是一个基于 dotnet core 的微服务框架。网关:兼容 kong,rpc:grpc支持远程调用。

  • Adnc 是一个轻量级的 .Net Core 微服务开发框架,同时也适用于单体架构系统的开发。支持经典三层与DDD架构开发模式、集成了一系列主流稳定的微服务配套技术栈。

  • Seata 的事务上下文由 RootContext 来管理。 应用开启一个全局事务后,RootContext 会自动绑定该事务的 XID,事务结束(提交或回滚完成),RootContext 会自动解绑 XID。 // 绑定 XID RootContext.bind(xid); // 解绑 XID String xid = RootContext.unbind(); 应用可以通过 RootCon

  • 理论基础 概念 多微合适 非代码函数 非重写时间 适合团队最重要 独立业务属性 全功能团队 进程隔离 服务运行在独立的进程中 轻量级通信 协议跨平台 格式语言无关 独立性 独立开发 独立测试 独立部署 本质 服务作为组件 围绕业务组织团队 产品驱动而非项目驱动 技术多样性 业务数据独立 基础设施自动化 演进式架构 优点 按需伸缩 独立部署 业务独立 技术多样性 缺点 1. 运维成本高 环境配置(P

  • ___ ___ ___ ___ / /\ /__/\ / /\ / /\ ___ / /:/_ _\_ \:\ / /::\ / /:/_ /