首页 文章 精选 留言 我的

精选列表

搜索[渐进式工具],共10011篇文章
优秀的个人博客,低调大师

Nest.js 9.4 发布,渐进式 Node.js 框架

Nest.js 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用 TypeScript 和 JavaScript 构建,并结合了 OOP(面向对象编程)、FP(功能编程)和 FRP(功能反应式编程)等元素。 Nest.js 9.4 正式发布,该版本更新内容如下: 功能 microservices 通过 TLS 连接到 TCP 微服务(TCP microservice over TLS) 错误修正 platform-ws 在不同路径上挂载多个 ws 服务器 platform-express 移除 body-parser 类型并使用 Nest.js 自己的类型 增强 microservices 允许扩展微服务的事件和消息插件 依赖 将 sinon 从 15.0.2 升级到 15.0.3 将 @types/node 从 18.15.6 升级到 18.15.11 将 @fastify/static 从 6.9.0 升级到 6.10.0 将 fast-json-stringify 从 5.6.2 升级到 5.7.0 将 @apollo/server 从 4.5.0 升级到 4.6.0 将 amqp-connection-manager 从 4.1.11 升级到 4.1.12 将 core-js 从 3.29.1 升级到 3.30.0 将 ts-morph 从 17.0.1 升级到 18.0.0 升级依赖 @nestjs/apollo 至 v11.0.4 …… 更多详情可查看:https://github.com/nestjs/nest/releases/tag/v9.4.0

优秀的个人博客,低调大师

Nest.js 9.2 发布,渐进式 Node.js 框架

Nest.js 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用 TypeScript 和 JavaScript 构建,并结合了 OOP(面向对象编程)、FP(功能编程)和 FRP(功能反应式编程)等元素。 Nest.js 9.2 正式发布,该版本更新内容如下: 特性 common, core #10484 使用 API 将中间件应用于版本化路由: 错误修复 core #10459 fastify v4 需要返回响应 common, platform-express #10345 由于打开的 http 连接导致关闭 hooks 未触发 增强 core #10479 feat(core): 在请求映射异常中显示类的名称 #10497 fix(core): 将 repl() 函数参数类型改为 Type | DynamicModule common #10460 feat(common): 添加错误选项对象 #10515 feat(common): 允许向 ParseFilePipeBuilder 添加自定义验证器 platform-express #10481 feat(plataform-express): 用 Server 替换 #listen 上的 any 返回类型 common, core #10521 feat(core): 公开每个选项以获取和解析方法 更多详情可查看:https://github.com/nestjs/nest/releases/tag/v9.2.0

优秀的个人博客,低调大师

Nest.js 8.4 发布,渐进式 Node.js 框架

Nest.js 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用 TypeScript 和 JavaScript 构建,并结合了 OOP(面向对象编程)、FP(功能编程)和 FRP(功能反应式编程)等元素。 Nest.js 8.4 正式发布,该版本更新内容如下: 特性 common, core #9227 feat(core): 支持 factory providers 中的可选依赖关系 错误修复 microservices #9277 fix(microservices): 从数据包(rmq 和 mqtt)中移除选项对象 core #9271 fix(core): 使用类引用作为键(容器) 增强功能 microservices #9059 feat(microservices): 添加 tcp 原始数据处理能力 #9270 feat(microservices): 向 clientkafka 添加 commit-offsets 功能 #9200 feat(microservices): 将选项参数添加到序列化程序 common #9209 feat(common): 添加抽象类型以捕获装饰器 #9247 fix(common): 为中间件中的可选错误处理提供类型 common, platform-express, platform-fastify #9240 feat(common): 扩展 streamable-file header 支持 依赖项 #9274 chore(deps-dev): 将 mongoose 从 6.2.3 升级到 6.2.4 #9275 chore(deps-dev): 将 @types/cache-manager 从 3.4.2 升级到 3.4.3 #9250 chore(deps-dev): 将 @nestjs/apollo 从 10.0.4 升级到 10.0.5 #9251 chore(deps-dev): 将 @types/node 从 17.0.18 升级到 17.0.21 #9253 chore(deps-dev): 将 @nestjs/graphql 从 10.0.4 升级到 10.0.5 …… 更多详情可查看:https://github.com/nestjs/nest/releases/tag/v8.4.0

优秀的个人博客,低调大师

Nest.js 8.0 发布,渐进式 Node.js 框架

Nest.js 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用 TypeScript 和 JavaScript 构建,并结合了 OOP(面向对象编程)、FP(功能编程)和 FRP(功能反应式编程)等元素。 Nest.js 8.0 正式发布,该版本更新内容如下: 特性: 重构内置的控制台记录器类,分离出Loggerwrapper 类和ConsoleLogger类,添加缓冲日志功能,添加日志级别输出,支持日志级别功能; 添加StreamableFile类,用于从控制器路由流式传输文件(跨平台); 增加ParseFloatPipe和ParseEnumPipe类; 添加 lazy 模块加载器类; 添加RouterModule,用于定义每个模块的控制器前缀; 增加从全局前缀中排除某些路由的能力; API 版本管理功能; 支持多个事件订阅者; 支持向@Payload()装饰器传递一个属性键; 支持向@MessageBody()装饰器传递一个属性键; WsAdapter支持在不同路径上注册网关,并让它们共享同一个 HTTP 服务器; 改进 调用生命周期 hooks 时按拓扑结构对模块进行排序; 使用类的引用作为提供者/控制者/注入物的键,而不是它们的名字; BaseExceptionFilter支持http-errors(以及任何其他指定了statusCode属性的错误对象); 将Error.name属性设置为类的名称; 错误修复: 为 mixin() 函数添加一个缺失的类型参数; 对于用@All()装饰器注释的路由使用router.all()方法,而不是router.use(); 在服务器绑定失败时拒绝listen(); 指定@nestjs/platform-socket.io作为可选的对等依赖,以支持 PnP 模式; 依赖: 更新以使用@grpc/grpc-js包,而不是grpc; 将 NATS 升级到 v2 版; 将Socket.io升级到 v4 版; 更多详情可查看:https://github.com/nestjs/nest/releases/tag/v8.0.0

优秀的个人博客,低调大师

| 企业级的渐进式 PHP 协程框架

Hyperf 2.2 版本发布! 前言 首先感谢所有 Hyperf 的支持者,从发布至今两年的时间里,我们坚持每周发布一个小版本,截止至今已经发布了超过 106 个版本,这是 Hyperf 团队传达对用户坚持和负责任精神最直接的一种方式,我们用行动来说明一切,往后我们仍将一如既往地继续保持 Hyperf 的迭代与维护。 同时我们也很荣幸看到越来越多的公司选择了 Hyperf 作为公司项目的框架来使用,并反哺了很多的 Pull Request 和 Bugfixs 给 Hyperf,当前 Hyperf 的 Contributors 已超 200 人,感谢大家一起共造了生态的繁荣,我们必定不负众望! Thanks ALL 在持续迭代的过程中,我们又产生了一些新的思路。我们对这些思路进行迭代、验证,并最终沉淀到了 2.2 版本中,今天很荣幸向大家公布,Hyperf 2.2 版本发布! 主要功能迭代 DI 底层实现重构 在 2.0-2.1 版本时,为了实现 AOP 作用于非 DI 管理的对象(如 new 关键词实例化的对象时),底层实现采用了BetterReflection 组件来实现相关功能,带来新的编程体验的同时,也还是存在一些此前未攻克的问题,如下: 无扫描缓存时项目启动很慢 特殊场景下 Inject 和 Value 不生效 BetterReflection尚未支持 PHP 8 (截止发版时) 在新的版本里,我们弃用了 BetterReflection 的应用,采用了 子进程扫描的方式 来解决此前的问题,以上这些痛点,我们全部解决了~ 用正向的角度来描述这个功能的变更: 无缓存下,启动时间缩减一个数量级,以笔者所在公司的某个巨型项目为例,原启动时间长达 5分钟,新版本只需 10秒! 丰富了 Inject 注解注入的适用场景,但可惜仍有一种情况下无效(父类 private 属性注入时失效,与此前版本表现一致),我们会继续努力攻克该场景的实现 支持 PHP 8 及 Attributes 原生注解特性 简而言之,DI 组件作为 Hyperf 的核心组件之一,现在已经达到了一个全新的阶段,创新与实用值满格~ 支持 PHP 8 Hyperf 2.2 各组件已经适配 PHP 8,注解亦兼容 PHP 8 的 Attributes 原生注解特性。 <?php namespace App\Controller; #[Controller] class IndexController { #[GetMapping("/test")] public function index() { ... } } 需要注意的是,同一区域同时使用 注解(Annotations) 和 原生注解(Attributes),底层将 忽略注解(Annotations) (即使注解不同) <?php namespace App\Controller; /** * @Controller * 同一区域同时使用,注解(Annotations) 无效 */ #[Middleware(TestMiddleware::class)] class IndexController { // 单独使用,可以支持 #[Inject] protected StdoutLoggerInterface $logger; /** * 单独使用,可以支持 * @GetMapping("/test") */ public function index() { ... } } 需要注意的是,框架虽然已经支持 PHP8,但是升级时仍需要自行确认业务代码和依赖的第三方组件是否满足 PHP 8 不兼容变更 。 可重复注解 在之前版本中,同一区域相同Annotation 无法重复使用: /** * @AutoController() * @Middleware(FooMiddleware::class) * @Middleware(BarMiddleware::class) * 重复 @Middleware 只有一个生效! */ class IndexController { } 此前,重复使用相同注解只能通过注解嵌套方式实现: /** * @AutoController() * @Middlewares({ * @Middleware(FooMiddleware::class) * @Middleware(BarMiddleware::class) * }) * 非常繁琐,增加额外心智负担 */ class IndexController { } 在 2.2 中,我们实现了可重复注解: <?php namespace App\Controller; #[AutoController] #[Middleware(FooMiddleware::class)] #[Middleware(BarMiddleware::class)] class IndexController { } 当用户自定义的注解需要可重复时,将注解的父类更改为 Hyperf\Di\Annotation\AbstractMultipleAnnotation 即可,具体可参考框架 Middleware 注解的实现。 配置中心完全重构 在此前的版本,配置中心的实现是由各个零散的组件自行实现的,各组件的实现参差不一,都有一些细节实现的区别,各组件间的代码重合度也是非常高的,在 2.2 版本,我们 完全重构 了相关组件,增加了 hyperf/config-center 组件,该组件将作为配置中心的统一接入层和抽象层,通过结合其他配置中心的 Driver 组件来实现相关储存引擎的能力驱动,如 hyperf/config-center + hyperf/config-apollo 组件结合使用的方式来实现对 Apollo 配置中心的使用,其他驱动只需更换对应的驱动即可。这样的改造使我们极大的减少了驱动的代码量,现在简单几行代码几个类就能完成一个新的驱动的接入了。 在升级使用时,注意相关配置文件的变更,新版本将由 config/autoload/config_center.php 配置文件来管控所有相关信息,初次创建该文件可通过运行 php bin/hyperf.php vendor:publish hyperf/config-center 命令生成。 服务治理组件重构 在此前的版本,hyperf/service-governance 组件跟配置中心所面临的问题也是一致的,我们在此版本也做了与配置中心类似的改变,比如通过 hyperf/service-governance + hyperf/service-governance-nacos 组件来实现 nacos 作为服务中心的使用。 在升级使用时,注意相关配置文件的变更,新版本将由 config/autoload/services.php 配置文件来管控所有相关信息,内部结构有一定的改变,初次创建该文件可通过运行 php bin/hyperf.php vendor:publish hyperf/service-governance 命令生成。 Nacos 组件完全重构 重要:一定要重读该组件文档!!! 我们对 Nacos 组件做了 完全的重构,使该组件的代码实现、结构分层和 API 更加的合理,并对原来整合在一个组件内的配置中心逻辑、服务中心逻辑和客户端代码进行了拆分,如上面两个主要迭代功能介绍所示。 具体使用到 Nacos 组件的一定要重新阅读新的文档,并根据新的文档指示来使用。 AMQP 组件连接机制重构 我们发现使用 AMQP 组件的用户非常的多,而作为一个消息队列组件,其性能速度对系统的削峰效果和消息投递/消费速度影响是非常大的,我们通过 协程通道(Channel) 实现了一个多路复用的机制,使该组件的消息投递性能提升了将近一倍!在性能提升的同时,还使得客户端与服务端间的连接稳定性得到了提升。 该组件升级后会直接切换为新的连接机制,无需做任何调整。 以下是抽取压测对比中的关键信息: 非 Confirm 模式投递 2.1 版本 连接池内最大数量设置为 10 $ ab -c 32 -n 10000 http://127.0.0.1:9501/ Requests per second: 5340.80 [#/sec] (mean) Time per request: 5.992 [ms] (mean) Time per request: 0.187 [ms] (mean, across all concurrent requests) Transfer rate: 928.38 [Kbytes/sec] received 2.2 版本 设置 2 个多路复用的连接 $ ab -c 32 -n 10000 -k http://127.0.0.1:9501/ Requests per second: 9101.44 [#/sec] (mean) Time per request: 3.516 [ms] (mean) Time per request: 0.110 [ms] (mean, across all concurrent requests) Transfer rate: 1626.53 [Kbytes/sec] received Confirm 模式投递 2.1 版本 连接池内最大数量设置为 10 $ ab -c 32 -n 5000 -k http://127.0.0.1:9501/ Requests per second: 797.73 [#/sec] (mean) Time per request: 40.114 [ms] (mean) Time per request: 1.254 [ms] (mean, across all concurrent requests) Transfer rate: 142.56 [Kbytes/sec] received 2.2 版本 设置 2 个多路复用的连接 $ ab -c 32 -n 5000 -k http://127.0.0.1:9501/ Requests per second: 1595.94 [#/sec] (mean) Time per request: 20.051 [ms] (mean) Time per request: 0.627 [ms] (mean, across all concurrent requests) Transfer rate: 285.21 [Kbytes/sec] received 3 个 Incubator 组件毕业进入主库 自从采用 Incubator 机制来孵化组件后,产生了大量的新组件,很荣幸在 2.2 版本时,有 3 个 Incubator 组件毕业进入主库,这也意味着这些组件进入了生产可用阶段~ 以下为各个毕业的组件及其简介 hyperf/dag 该组件是一个轻量级有向无环图 (Directed Acyclic Graph) 任务编排库,通过该组件可以很轻松的完成任务的编排和运行。 hyperf/rpc-multiplex 该组件是一个实现多路复用的 RPC 协议连接组件,通过使用该库可以得到性能更高和连接更稳定的 RPC 功能; hyperf/rpn 该组件是一个 逆波兰表示法 的实现组件,RPN 是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。通过该组件可以完成 逆波兰表达式 的解析。 依赖升级 升级friendsofphp/php-cs-fixer为^3.0; 升级psr/container为^1.0|^2.0; 升级egulias/email-validator为^3.0; 升级markrogoyski/math-php为^2.0; 升级league/flysystem为^1.0|^2.0; 依赖项已更改 #3577 domnikl/statsd废弃,不再维护。作者建议改用slickdeals/statsd包; 即将弃用 API #3636 Hyperf\Utils\Resource将在 v2.3 中被弃用,请改用Hyperf\Utils\ResourceGenerator; 变更明细 #3334 将LengthAwarePaginator::toArray()的返回值更改为与Paginator::toArray()的一致; #3550 从kafka删除了broker和 bootstrap_server,请使用brokers和bootstrap_servers代替; #3580 将切面的默认优先级更改为 0; #3582 将 AMQP 的消费者标签更改为空字符串; #3634 使用 Fork Process 策略替换 BetterReflection策略; #3649 在hyperf/database使用gen:model时移除了roave/better-reflection; #3651 在 LazyLoader 中移除了roave/better-reflection; #3654 在其他组件中移除了roave/better-reflection; #3676使用promphp/prometheus_client_php代替endclothing/prometheus_client_php; #3694更改Hyperf\CircuitBreaker\CircuitBreakerInterface为支持 PHP8; 改CircuitBreaker::inc*Counter()到CircuitBreaker::incr*Counter(); 更改了 AbstractHandler::switch()方法的类型提示; #3706 在PHP8 中将@Middlewares({@Middleware(FooMiddleware::class)})的书写风格更改为#[Middlewares(FooMiddleware::class)]; #3715 重构nacos组件,一定要重读文档; #3722 删除了 config_apollo.php配置,请改用config_center.php; #3725 删除了 config_etcd.php配置,请改用config_center.php; #3730 从kafka中删除了brokers和update_brokers配置; #3733 删除了 zookeeper.php配置,请改用config_center.php; #3734 #3772 分割了nacos为config-nacos和service-governance-nacos; #3734 重命名nacos-sdk 组件名为 nacos; #3737 重构配置中心和配置驱动程序 添加AbstractDriver并将重复的代码并合到抽象类中 添加PipeMessageInterface以统一配置获取进程的消息结构 #3817 #3818 从 service-governance 组件中分离出 service-governance-consul 组件; 更多 其他变动 升级指南 我们提供了详尽的升级指南,请查阅官方文档 - 2.2 升级指南 官网及交流 Github 👈👈👈👈👈 点 Star 支持我们 Gitee 码云 👈👈👈👈👈 点 Star 支持我们 Hyperf 官网 Hyperf 文档 Hyperf 交流群: 862099724(已满) Hyperf 交流 2 群: 811414891(已满) Hyperf 交流 3 群: 589051831 钉钉群 一群: 34538367(已满) 钉钉群 二群: 34488757

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册