2 天前

Sentinel 发布版本: v1.5.0

## Breaking Changes Since 1.5.0, the minimum JDK version has been updated to **1.7**. JDK 1.6 is no longer supported. There are some changes in `Node` interface: the return type of `xxxQps` methods (e.g. `passQps`, `blockQps`) has been changed from `long` to `double` to be more accurate. In 1.5.0 we added common occupy mechanism in `LeapArray` so that Sentinel can occupy future buckets of the sliding window to support "final pass for prioritized requests when QPS exceeds the threshold". The `Sph.entryWithPriority(xxx)` method will take effect now in local flow control mode. ## Features / Enhancements - **Update minimum JDK version to 1.7 (for all modules)** - Refactor Node interface: change return type of QPS get method to double ([#564](https://github.com/alibaba/Sentinel/pull/564)) - **Add occupy mechanism for future buckets of sliding window to support "prioritized requests"** ([#568](https://github.com/alibaba/Sentinel/pull/568)) - Add occupiable LeapArray support and code refactor/rearrangement - **Add Sentinel Reactor module to support reactive integration** ([#545](https://github.com/alibaba/Sentinel/pull/545)) - **Add adapter module and implementation for Spring WebFlux** ([#556](https://github.com/alibaba/Sentinel/pull/556)) - Add try-with-resources support for Entry class ([#550](https://github.com/alibaba/Sentinel/pull/550)) - Add an ApiCommandHandler to list all available commands and description ([#491](https://github.com/alibaba/Sentinel/pull/491)) - Add CPU usage checking support in system protection rule ([#484](https://github.com/alibaba/Sentinel/pull/484)) - Add a CommandCenterProvider to resolve and cache the CommandCenter instance ([#409](https://github.com/alibaba/Sentinel/pull/409)) - Automatically de-duplicate rules when loading rules ([#571](https://github.com/alibaba/Sentinel/pull/571)) - Support recording total inbound traffic data in metric file ([#555](https://github.com/alibaba/Sentinel/pull/555)) - Support passing args in `Sph.entryWithPriority(xxx)` - Allow negative paramIndex as reversed-order index in ParamFlowRule ([#549](https://github.com/alibaba/Sentinel/pull/549)) - Add AuthInfo parameter in the constructor of ZooKeeperDataSource to support ACL ([#508](https://github.com/alibaba/Sentinel/pull/508)) - Carry appName in FetchClusterServerInfo command - Optimize circuit breaking state transformation using CAS in DegradeRule ([#538](https://github.com/alibaba/Sentinel/pull/538)) - Improve sleeping-based tests to be more stable and optimize slow tests ([#546](https://github.com/alibaba/Sentinel/pull/546)) - Change default value of avgUsedTokens to zero to be more meaningful in DefaultController ([#460](https://github.com/alibaba/Sentinel/pull/460)) - Update fastjson dependency version to 1.2.56 (for `sentinel-datasource-extension`) - Update apollo-client version to 1.3.0 and add support for removing listener in sentinel-datasource-apollo ([#562](https://github.com/alibaba/Sentinel/pull/562)) ## Bug fixes - Fix SimpleDateFormat concurrent issue in CspFormatter of sentinel-core ([#548](https://github.com/alibaba/Sentinel/pull/548)) - Fix Dubbo-related dependencies in sentinel-dubbo-demo ([#534](https://github.com/alibaba/Sentinel/pull/534)) ## Dashboard - Support automatic/manual removal of unhealthy machines and disconnected applications in dashboard ([#168](https://github.com/alibaba/Sentinel/pull/168)) - Add basic interface for authentication and authorization in Sentinel dashboard ([#503](https://github.com/alibaba/Sentinel/pull/503)) - Improve management for foreign-app stand-alone token server in cluster page - Remove G2 lib tracking in frontend of Sentinel dashboard ([#527](https://github.com/alibaba/Sentinel/pull/527)) - Fix concurrent error in InMemoryMetricsRepository of the dashboard ([#488](https://github.com/alibaba/Sentinel/pull/488)) - Add Apollo flow rule publisher sample in Sentinel dashboard ([#535](https://github.com/alibaba/Sentinel/pull/535)) Thanks for the contributors: [@all4you](https://github.com/all4you), [@ATAXGT](https://github.com/ATAXGT), [@cdfive](https://github.com/cdfive), [@HaojunRen](https://github.com/HaojunRen), [@hantianwei](https://github.com/hantianwei), [@jasonjoo2010](https://github.com/jasonjoo2010), [@MickMo](https://github.com/MickMo), [@mjaow](https://github.com/mjaow), [@nick-tan](https://github.com/nick-tan), [@xburning](https://github.com/xburning), [@yikangfeng](https://github.com/yikangfeng), [@yklove](https://github.com/yklove)