前言时隔4个月,Apache神鱼迎来了2.5.0大版本。这个版本总共有300+个pullrequests,60+个贡献者参与了提交,88000+pullrequests增加或修改的代码行数,这个版本优化了很多内容,来看看这个版本做了什么。以下只是一些比较重要的功能。新增日志功能,连接阿里云SLS日志插件,具体使用参考:https://shenyu.apache.org/zh/...新增对接ElasticSearch日志插件,具体使用参考:https://shenyu.apache.org/zh/...新增对接ApacheRocketMQ日志插件的具体使用参考:https://shenyu.apache.org/zh/...新增具体使用参考对接ApacheKafka日志插件:https://shenyu.apache。org/zh/...新功能添加模拟插件。为请求指定响应状态码和响应体,方便测试。支持设置请求的响应状态码和响应体。支持配置${int|min-max},${double|min-max|format},${email},${phone},${zh|min-max},${list|[arg1,arg2...]},${array|item|length}和其他占位符自动生成数据。具体使用参考:https://shenyu.apache.org/zh/...用户也可以自定义开发其他占位符:具体开发:https://shenyu.apache.org/zh/...response插件自定义输出结果神语代码:@BeanpublicShenyuPluginresponsePlugin(finalObjectProvider>httpWriter){MapwriterMap=newLinkedHashMap<>();ListwriterList=httpWriter.getIfAvailable(ArrayList::new);for(MessageWriterwriter:writerList){ListsupportTypes=writer.supportTypes();for(Stringtype:supportTypes){writerMap.put(type,writer);}}返回新的ResponsePlugin(writerMap);}用户自定义实现:rg.apache.shenyu.plugin.response.strategy.MessageWriter/***Messagewriter接口。*/publicinterfaceMessageWriter{/***用exchange和shenyu插件链写。**@paramexchangeexchange当前服务器交换*@paramchainpro提供了一种委托给下一个过滤器的方法*@return{@codeMono}以指示请求处理何时完成*/MonowriteWith(ServerWebExchangeexchange,ShenyuPluginChainchain);/***支持类型列表。**@returnthelist*/ListsupportTypes();}注册中心神宇的注册中心的目的是暴露网关的实例,让神宇的集群功能可以使用shenyu-nginx项目,并且可以也可以连接到其他负载平衡服务。ShenYu-Nginx:https://github.com/apache/she...添加对Nacos的支持:在网关bootstarp的yaml中添加如下配置:shenyu:instance:enabled:true//设置为true开启registerType:nacos//类型为nacosserverLists:localhost:8848props:添加Consul支持使用:在网关bootstarp的yaml中添加如下配置:shenyu:instance:enabled:true//设置为true启用registerType:consul//类型为consulserverLists:localhost:2379props:性能优化,升级SpringBoot至2.6.8,升级Reactor-netty至1.0.19网关,自定义Netty全参数配置。请参考:https://shenyu.apache.org/zh/...为满足用户的特定配置添加匹配的缓存策略。流量匹配效率为O(1)。如何使用?在网关的yaml文件中配置:shenyu:matchCache:enabled:true//设置为true启用maxFreeMemory:256#//MemorysizeUnitM添加自定义线程共享线程池。如何使用?在网关的yaml文件中配置:shenyu:sharedPool:enable:trueprefix:"shenyu-shared"corePoolSize:200maximumPoolSize:2000keepAliveTime:60000maxWorkQueueMemory:1073741824#1GBmaxFreeMBuMemory:268435456自定义sheny的原理:25线程池,重写队列,和更多。具体可以查看以下代码:管控平台数据存储支持oracle数据库。新增API文档管理功能。ShenYuAdmin管理控制台新增日志记录。更多...refactoring重构springcloud插件负载均衡。重构IpUtils获取ip逻辑。Zookeeper客户端替换为ApacheCurator。重构神鱼Java客户端注册逻辑。更多....BugFix修复除法插件空指针异常。修复body过大异常。修复Java客户端注册,循环错误。修复Grpc客户端注册错误。修复加载本地插件失败的问题。修复Consul注册只注册1个元数据的问题。修复使用Websocket同步数据时的CSRF攻击。修复Adminpg脚本错误。更多...贡献者特别感谢支持2.5.0的贡献者,排名不分先后。dragon-zhang,renzhuyan,moremind,xiaoyu,likeguo,qinghai777,Kevin,Qicz,,yunlonn,lianjunwei,zhengpeng,Han,weihubeats,Zihao,DamonXue(Fibonacci),Luke.Z,ShawnSiao,sunshujie1990,Codd,dayu,刘天佑,PJ,Sixh-PrFor,ChineseTony,chuang,erdengk,hutaishi,impactCn,Jiageng,lahmxu,qifanyyy,Shawn,松涛,走长富,damonxue,昆帅,mango,nuo-promise,Salted,Seth,松涛庄,wklong,啊哈哈歌,Bigbang,Chencheng,Dongx,Ethan,haibo.duan,Haitao,huanccwang,jerbo99,LidyaqfLiming,midnight2104,Nick-fengzl,ningminlinglong,Rubén,Shuaiqi,vijaywjlong??er,Zhang,zhc,Zhiqiang,ZZQAboutApacheShenYuApacheShenYu是使用JavaReactor开发的ReactiveAPIGateway.以其高性能、动态灵活的流控、热插拔、易部署等特点,为用户提供一整套开箱即用的全生命周期API网关,包括API注册、服务代理、协议转换等功能和API治理。2022年7月毕业成为Apache顶级项目。