更新内容本周更新主要是添加hyperf/retry组件。网络通信天生就不稳定,所以在分布式系统中,需要良好的容错设计,不分青红皂白的重试是非常危险的。当通信出现问题时,每一次请求都会重试,相当于系统IO负载增加了100%,很可能诱发雪崩事故。重试还要考虑错误的原因。如果是重试解决不了的问题,那么重试只是浪费资源。另外,如果重试的接口不幂等,也可能会造成数据不一致等问题。该组件提供了丰富的重试机制和多种策略(如最大尝试次数策略、错误分类策略、回退策略、休眠策略、超时策略、熔断策略、预算策略和自定义策略),你不仅可以通过逻辑重试可以通过链式调用的形式实现,也可以直接通过@Retry注解实现重试,可以满足各种场景的重试需求。同时,我们还修复了部分组件的?Bug,使得Hyperf1.1.*系列版本更加健壮。发布于1.1.7版本,推荐使用1.1用户更新。直接访问官网hyperf.io或文档hyperf.wiki查看。add#860添加hyperf/retry组件;#952添加ThinkTemplate视图引擎支持;#973添加TCP协议下JSONRPC连接池支持,通过Hyperf\JsonRpc\JsonRpcPoolTransporter使用连接池版本;#976为hyperf/amqp组件增加一个close_on_destruct选项参数,控制代码在执行析构函数时是否主动关闭连接;更改#944将所有使用@Listener和@Process注解注册的组件更改为通过ConfigProvider注册;#977调整init-proxy.sh命令的行为以仅删除运行时/容器目录;fix#955修复hyperf/db组件的port和charset参数无效的问题;#956修复在模型缓存中使用RedisHandler::incr在集群模式下会失效的问题;#966修复在非Worker进程环境下使用pager会报错的问题;#968修复了当一个类中同时存在类和注解两种Aspect切入方式时,其中一种可能会失败Invalid的问题;#980修复Session组件中的migrate、save和has方法无法使用的问题;#982修复Hyperf\GrpcClient\GrpcClient::yield没有通过正确的方式获取ChannelPool的问题;#987修复gen:command命令生成的命令类缺少parent::configure()方法的问题;优化#991优化Hyperf\DbConnection\ConnectionResolver::connection的异常处理;关于HyperfHyperf是基于Swoole4.4+的高性能实现,高度灵活的PHP协程框架,内置协程服务器和大量常用组件,性能相比基于PHP-FPM的传统框架有了质的提升,在提供超高性能的同时,还保持了极其灵活的可扩展性,标准组件基于PSR标准实现,基于强大的依赖注入设计,保证大部分组件或类可替换、可重用框架组件库除了常用的协程版MySQL客户端和Redis客户端,还准备了协程版EloquentORM、WebSocket服务端和客户端、JSONRPC服务端和客户端、GRPC服务端和客户端、OpenTracing(Zipkin、Jaeger)客户端、GuzzleHTTP客户端、Elasticsearch客户端、Consul客户端、ETCD客户端、AMQP组件、Nats组件、Apollo、ETCD、Zookeeper和阿里云ACM配置中心、基于命令的限流器、通用连接池、熔断器、Swagger文档等组件generation,SwooleTracker,Blade,Smarty,Twig,PlatesandThinkTemplateviewengine,SnowflakeglobalIDgenerator,Prometheusmonitoring等对应协程版本的麻烦。Hyperf还提供了基于PSR-11的依赖注入容器、注解、AOP面向方面编程、基于PSR-15的中间件、自定义流程、基于PSR-14的事件管理器、Redis/RabbitMQ消息队列和自动模型缓存、PSR基于-16的缓存、Crontab二级定时任务、Session、i18n国际化、Validation表单验证等非常便捷的功能,满足丰富的技术和业务场景,开箱即用。框架的初衷虽然基于PHP语言开发的框架现在已经是百花齐放的时代,但是仍然没有看到一个优雅设计与超高性能并存的完美框架,也没有看到一个框架真正为PHP微服务铺路,这是Hyperf和团队成员的初衷,我们会为此继续投入和努力,欢迎大家加入我们一起参与开源建设。设计理念Hyperspeed+Flexibility=Hyperf,从名字上我们就把超高速和灵活性视为Hyperf的基因。针对超高速,我们基于Swoole协程,在框架设计上做了很多优化,保证了超高性能的输出。为了灵活性,我们基于Hyperf强大的依赖注入组件。组件全部基于PSR标准契约和Hyperf定义的契约,使得框架中的大部分组件或类都是可替换的。基于以上特点,Hyperf将有丰富的可能性,比如实现单体web服务、API服务、网关服务、分布式中间件、微服务架构、游戏服务器、物联网(IOT)等。完整的文档我们投入了很多在文档建设中投入大量时间,解决文档缺失带来的各种问题。文档还提供了大量示例,对新手同样友好。Hyperf官方开发文档可用于生产。我们对组件进行了大量的单元测试,以保证逻辑的正确性。目前,有1227个单元测试,共有3638个断言条件。同时,保持高质量的文档。Hyperf正式对外开放(2019年6月5月20日之前),我们在正式对外开放项目之前,已经通过了严酷生产环境的考验。现在很多大型互联网公司已经将Hyperf部署到他们的生产环境中并稳定运行。官网和通讯Github??????点个星来支持我们的Gitee码云?????点星支持我们Hyperf官网Hyperf文档QQ群:862099724
