Hyperf 发布 Retry 重试组件及 v1.1.7 版本

栏目: 软件资讯 · 发布时间: 5年前

内容简介:更新内容 本周更新主要为新增 hyperf/retry 组件,网络通讯天然是不稳定的,因此在分布式系统中,需要有良好的容错设计,无差别重试是非常危险的。当通讯出现问题时,每个请求都重试一次,相当于系统 IO 负载增加...

更新内容

本周更新主要为新增 hyperf/retry 组件,网络通讯天然是不稳定的,因此在分布式系统中,需要有良好的容错设计,无差别重试是非常危险的。当通讯出现问题时,每个请求都重试一次,相当于系统 IO 负载增加了 100%,容易诱发雪崩事故。重试还要考虑错误的原因,如果是无法通过重试解决的问题,那么重试只是浪费资源而已。除此之外,如果重试的接口不具备幂等性,还可能造成数据不一致等问题。本组件提供了丰富的重试机制和各种策略(如 最大尝试次数策略错误分类策略回退策略睡眠策略超时策略熔断策略预算策略及自定义策略),同时您不仅可以通过链式调用的形式来实现逻辑重试,还可直接通过 @Retry 注解来实现重试,可以满足多种场景的重试需求。

同时我们还修复了一些组件的 ????Bug,使 Hyperf 1.1.* 系列版本更加的健壮了,发布于 1.1.7 版,建议使用 1.1 的用户更新。
直接访问 官网 hyperf.io 或 文档 hyperf.wiki 查看。

新增

  • #860 新增 hyperf/retry 组件;
  • #952 新增 ThinkTemplate 视图引擎支持;
  • #973 新增 JSON RPC 在 TCP 协议下的连接池支持,通过 Hyperf\JsonRpc\JsonRpcPoolTransporter 来使用连接池版本;
  • #976hyperf/amqp 组件新增 close_on_destruct 选项参数,用来控制代码在执行析构函数时是否主动去关闭连接;

变更

  • #944 将组件内所有使用 @Listener@Process 注解来注册的改成通过 ConfigProvider来注册;
  • #977 调整 init-proxy.sh 命令的行为,改成只删除 runtime/container 目录;

修复

  • #955 修复 hyperf/db 组件的 portcharset 参数无效的问题;
  • #956 修复模型缓存中使用到RedisHandler::incr 在集群模式下会失败的问题;
  • #966 修复当在非 Worker 进程环境下使用分页器会报错的问题;
  • #968 修复当 classesannotations 两种 Aspect 切入模式同时存在于一个类时,其中一个可能会失效的问题;
  • #980 修复 Session 组件内 migrate, savehas 方法无法使用的问题;
  • #982 修复 Hyperf\GrpcClient\GrpcClient::yield 在获取 Channel Pool 时没有通过正确的获取方式去获取的问题;
  • #987 修复通过 gen:command 命令生成的命令类缺少调用 parent::configure() 方法的问题;

优化

  • #991 优化 Hyperf\DbConnection\ConnectionResolver::connection的异常情况处理;

关于 Hyperf

Hyperf 是基于 Swoole 4.4+ 实现的高性能、高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于 PSR 标准 实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是 可替换可复用 的。

框架组件库除了常见的协程版的 MySQL 客户端Redis 客户端,还为您准备了协程版的 Eloquent ORMWebSocket 服务端及客户端JSON RPC 服务端及客户端GRPC 服务端及客户端OpenTracing(Zipkin, Jaeger) 客户端Guzzle HTTP 客户端Elasticsearch 客户端Consul 客户端ETCD 客户端AMQP 组件Nats 组件Apollo、ETCD、Zookeeper 和阿里云 ACM 的配置中心基于令牌桶算法的限流器通用连接池熔断器Swagger 文档生成Swoole TrackerBlade、Smarty、Twig、Plates 和 ThinkTemplate 视图引擎Snowflake 全局ID生成器Prometheus 监控 等组件,省去了自己实现对应协程版本的麻烦。

Hyperf 还提供了 基于 PSR-11 的依赖注入容器注解AOP 面向切面编程基于 PSR-15 的中间件自定义进程基于 PSR-14 的事件管理器Redis/RabbitMQ 消息队列自动模型缓存基于 PSR-16 的缓存Crontab 秒级定时任务Sessioni18n 国际化Validation 表单验证 等非常便捷的功能,满足丰富的技术场景和业务场景,开箱即用。

框架初衷

尽管现在基于 PHP 语言开发的框架处于一个百花争鸣的时代,但仍旧未能看到一个优雅的设计与超高性能的共存的完美框架,亦没有看到一个真正为 PHP 微服务铺路的框架,此为 Hyperf 及其团队成员的初衷,我们将持续投入并为此付出努力,也欢迎你加入我们参与开源建设。

设计理念

Hyperspeed + Flexibility = Hyperf,从名字上我们就将 超高速灵活性 作为 Hyperf 的基因。

  • 对于超高速,我们基于 Swoole 协程并在框架设计上进行大量的优化以确保超高性能的输出。
  • 对于灵活性,我们基于 Hyperf 强大的依赖注入组件,组件均基于 PSR 标准 的契约和由 Hyperf 定义的契约实现,达到框架内的绝大部分的组件或类都是可替换的。

基于以上的特点,Hyperf 将存在丰富的可能性,如实现 单体 Web 服务,API 服务,网关服务,分布式中间件,微服务架构,游戏服务器,物联网(IOT)等。

文档齐全

我们投入了大量的时间用于文档的建设,以解决各种因为文档缺失所带来的问题,文档上也提供了大量的示例,对新手同样友好。
Hyperf 官方开发文档

生产可用

我们为组件进行了大量的单元测试以保证逻辑的正确,目前存在 1227 个单测共 3638 个断言条件,同时维护了高质量的文档,在 Hyperf 正式对外开放(2019年6月20日)之前,便已经过了严酷的生产环境的考验,我们才正式的对外开放该项目,现在已有很多的大型互联网企业都已将 Hyperf 部署到了自己的生产环境上并稳定运行。

官网及交流

Github ???????????????????? 点 Star 支持我们   

Gitee 码云 ???????????????????? 点 Star 支持我们   

Hyperf 官网
Hyperf 文档   


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

浪潮之巅

浪潮之巅

吴军 / 电子工业出版社 / 2011-8 / 55.00元

近一百多年来,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。 从一百年前算起,AT&T 公司、IBM 公司、苹果公司、英特尔公司、微软公司、思科公司、雅虎公司和Google公司都先后被幸运地推到了浪尖。虽然,它们来自不同的领域,中间有些已经衰落或正在衰落,但是它们都极度辉煌过。本书系统地介绍了这些公司成功的本质原因及科......一起来看看 《浪潮之巅》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具