-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Release Notes
(2022/10/26)
This release ships with a few enhancements and bug fixes.
Furthermore, Sentinel OpenSergo data-source has been beta-available (com.alibaba.csp:sentinel-datasource-opensergo:0.1.0-beta
), which enables developers to configure Sentinel rules with OpenSergo fault-tolerance CRD in a unified way (under Kubernetes, with OpenSergo control plane).
- Add id field in Rule entity and record ruleId in block log (#2853)
- Fix Dubbo SPI path bug in Dubbo 3.x adapter (#2822)
- Fix the bug that
SpiLoader#closeResources
may not record the exception when error occurs (#2890)
- Improve IP validation in SentinelApiClient and rule controllers
(2022/08/09)
- Add adapter for Apache Dubbo 3.x (#2789)
- Auto-extract value from ParamFlowArgument when blocked in ParamFlowSlot (#2776)
- Refactor IP verify logic in MachineRegistryController to support JDK 17 (#2694)
- Fix deprecated Spring config key in application.properties (#2713)
- Upgrade fastjson to
1.2.83_noneautotype
(2022/04/12)
- Add interceptor SPI for transport command handler (#2587)
- Add log level configuration support for common logs (#2514)
- Improve AuthorityRuleManager: replace the rule map instead of clear-then-insert when updating rules (#2655)
- Fix param args missing bug in fireExit of StatisticSlot (#2523)
- Fix maxQueueingTimeoutMs checking logic in
GatewayRuleManager#isValidRule
(#2609) - Fix DynamicSentinelProperty synchronized listener set iterator race-condition problem (#2519)
- Use CopyOnWriteArraySet for cluster
ConnectionGroup#connectionSet
to avoid iterator fast-fail (#2559)
- Add support for customizing ConfigurableRequestItemParser for Spring Cloud Gateway and Zuul adapter (#2542)
- Use unified entrance context name by default in Spring WebFlux adapter (#2610)
- Fix incorrect alert message for intervalMs validation in circuit breaker rule dialog (#2483)
- Fix the bug that removing token servers may fail when there are multiple servers with the same IP (#2591)
- Update Spring Boot starter to 2.5.12 for Sentinel dashboard
- Upgrade nacos-client to 1.4.2 for
sentinel-datasource-nacos
(2021/12/31)
- Add support for Envoy RLS v3 API in
sentinel-cluster-server-envoy-rls
token server module (#2336) - Add metric exporter extension for exporting Sentinel metrics via JMX (#2275)
- Fix QPS mode of system rule: use passQps instead of successQps and support batchCount (#2455)
- Fix the bug that legacy API matchers in ScGatewayApiMatcherManager were not removed after the API group has been removed (#2436)
- Add ACL token support for Consul data-source (#2307)
- Fix dashboard logo problem when customizing the context-path of the backend (#2253)
- Add IP validation in API of MachineRegistryController
(2021/07/05)
- Improve performance of
TimeUtil
adaptively in different load conditions (#1746) - Support private-level blockHandler/fallback method for
@SentinelResource
annotation (#2163) - Add
sentinel-transport-spring-mvc
module (Spring Web as command center) (#1957) - Support Redis cluster mode in Redis data-source extension (#1751)
- Support config from system env in SentinelConfig and polish TransportConfig in transport-common module (#2154)
- Make all backend thread pools daemon (#2181)
- Improve support for customizing auth-related implementations (#2059)
- Upgrade Netty to 4.1.48.Final in sentinel-cluster modules
(2021/02/04)
NOTE: Since 1.8.1, Sentinel requires JDK 1.8 or higher version.
- Refactor SpiLoader and enhance SPI mechanism (#1383)
- Add basic cluster concurrency limiting implementation in token server module (#1631)
- Add Motan RPC adapter implementation (#1825)
- Improve default block fallback logic in Dubbo 2.6.x adapter to avoid serialization problem (#1794)
- Support setting flush interval of the metric log via SentinelConfig property (#1919)
- Support both HTTP and HTTPS protocol in transport heartbeat module (#1896)
- Make token client
NettyTransportClient.getCurrentId()
thread safe (#1707)
- Fix NPE bug when updating gateway flow rules and param flow rules before the route/API has been requested once (#1729, #1901)
- Fix the bug that getServletPath() may return empty when matching URL in Zuul 1.x adapter (#1605)
- Fix the problem that requests will never be blocked when slowRatioThreshold = 100% (#1779)
- Add statIntervalMs field in DegradeRule dialog (#1781)
- Add support for matching path pattern like
/xx/**
in authFilterExcludeUrls (#1971) - Fix issue of memory leak in real-time monitoring page (#1905)
- Improve MetricFetcher under concurrent conditions (#1918)
- Upgrade fastjson to 1.2.75
- Upgrade snakeyaml to 1.26 in sentinel-cluster-server-envoy-rls module
(2020/08/20)
This nouveau release ships with countless features and improvements, specifically for circuit breaking. We've made progress on refactoring and improving circuit breaking feature, including arbitrary statistic duration support, half-open recovery, enhanced slow request ratio strategy, state change observer and more. We've also brought various versatile integrations including Java EE (JAX-RS and CDI), Quarkus and HTTP client (Apache HttpClient and OkHttp), which could cover more developers.
- Refactor degrade hierarchy with new circuit breaker mechanism and improve strategy (support arbitrary statistic duration, support half-open recovery, add slow request ratio strategy) (#1490, #1645)
- Support setting
project.name
via the properties file and deprecate legacy config path (#1412, #1437) - Refactor the mechanism of recording exception (on completed) and polish Tracer (#1420)
- Support setting class-level defaultFallback for annotation extension (#1493)
- Add JAX-RS integration module (#1396)
- Add annotation extension for Java EE CDI (#1541)
- Add Sentinel annotation and JAX-RS plugins for Quarkus (#1542)
- Add Apache HttpClient integration module (#1455)
- Add OkHttp integration module (#1456)
- Add Eureka data-source extension (#1502)
- Add exceptionPredicate in Tracer for customized exception filtering logic (#1496)
- Improve purge mechanism for deprecated ParameterMetric (#1372)
- Support customized origin parser in Dubbo 2.6.x/2.7.x adapter and polish config mechanism (#1555, #1572, #1617)
- Add support for extracting parameter value from complex object (#1491)
- Add extended interface for metric extension hook to support distinguishing traffic type (#1665)
- Improve default fallback for Apache Dubbo 2.7.x adapter (#1680)
- Add per-Entry exit handler (
whenTerminate
) support (#1645) - Optimize the order of slots in ProcessorSlot SPI config (#1649)
- Fix sentinel-apache-dubbo-adapter full GC bug (#1431)
- Fix the bug that may cause ErrorEntryFreeException when forwarding requests in sentinel-spring-webmvc-adapter (#1533, #1681)
- Fix the bug of extracting request cookie in Spring Cloud Gateway adapter (#1400)
- Fix the bug of misplaced locks in ContextUtil and ClusterNode (#1429)
- Refactor degrade frontend/controller and adapt to new circuit breaking features
- Fix the bug that cookie may have conflict with web applications under the same domain (#1443)
- Fix historical version compatibility problem for auth checking via localStorage (#1473)
- Upgrade fastjson to 1.2.71, nacos-client to 1.3.0 (in
sentinel-datasource-nacos
module)
(2020/04/08)
In this version, we've brought breaking changes about the slot SPI mechanism. The slot chain builder SPI has been deprecated (legacy classes were reserved for compatibility). Now Sentinel will take ProcessorSlot
itself as SPI. Note that the slot might be stateful, so Sentinel will still build different new slot chains for each resource.
Furthermore, a new Logger SPI mechanism is introduced for flexible logging extension. The default RecordLog implementation is still based on java.util.logging
, and developers could introduce dependencies of logging integration module to adapt to existing logging libraries (e.g. slf4j). See here for more details.
- Add SOFARPC adapter module (#1307)
- Add Zuul 2.x gateway adapter module (#1138)
- Refactor: Make
ProcessorSlot
itself as SPI and deprecate legacy slot chain builder (#411) - Add new Logger SPI to support flexible logging extension mechanism and add general JUL adapter for Logger SPI (#1307, #1338)
- Polish placeholders in logging content to slf4j convention (#1342)
- Add slf4j logging extension (#1344)
- Add "web-context-unify" config in Spring WebMVC adapter to support "chain" relation flow strategy (#1328)
- Improve Dubbo 2.7.5 compatibility problem in sentinel-apache-dubbo-adapter (#1296)
- Force modifyRule command handler to fail if an incompatible old fastjson found (#1377)
- Calculate both process and system CPU usage to support single process running in container environment (#1204)
- Improve the logs when the heartbeat response indicates failure (#1303)
- Fix NPE bug in Tracer when context size exceeds the limit (#1293)
- Fix the parsing issue in large post request for
sentinel-transport-simple-http
(#1255) - Fix the bug that context was not released when blocked in Spring Web adapter (#1353)
- Fix timezone problem of sentinel-block.log
- Improve the compatibility on the Content-Type header of POST request (#1260)
- Enhance reliability and performance of InMemoryMetricsRepository (#1319)
- Support setting value pattern for client IP and host in gateway flow rule dialog (#1325)
- Hide advanced options in flow rule dialog when cluster mode is selected (#1367)
- Fix NoNodeException problem of FlowRuleZookeeperProvider sample (#1352)
(2019/12/25)
- Add Sentinel Spring Web MVC adapter module (#1104)
- Improve async invocation support for Dubbo 2.7.2+ in
sentinel-apache-dubbo-adapter
(#1124) - Support configuration for the heartbeat API path in transport module (#515)
- Refactor: Get the max allowed RT directly from
SentinelConfig.statisticMaxRt()
to avoid implicit dependency chain (#1173) - Support setting config file path via system environment and improve error handling in SentinelConfigLoader
- Fix the incorrect logic of handling the end separator of the log directory in LogBase (#1172)
- Fix Content-Type matching bug in
sentinel-transport-simple-http
module (#1207) - Fix the incorrect logic of getting maxSuccessQps in StatisticNode (#1196)
- Improve the ACL checking mechanism and add
@AuthAction
annotation support (#1042) - Change the charset of UrlEncodedFormEntity to UTF-8 in
SentinelApiClient
to support non-ASCII characters (#1207)
(2019/11/12)
In this version, Sentinel provides an Envoy global rate limiting service implementation using Sentinel token server, so that Envoy service mesh could leverage the distributed flow control capability of Sentinel. See here for details.
Since 1.7.0, Sentinel supports configuration via arbitrary properties files. We could set the path of the properties file with the -Dcsp.sentinel.config.file
property item. See here for more details.
- Add Sentinel Envoy RLS token server implementation (#1139)
- Support arbitrary configuration properties file path for Sentinel (#804)
- Improve the SPI ClassLoader mechanism to handle more complex scenarios (#1088)
- Add support for resource classification and polish adapters (#1142)
- Support customized block page HTTP status in sentinel-web-servlet-adapter (#1112)
- Make rtSlowRequestAmount and minRequestAmount in DegradeRule configurable (#789)
- Make maxParamByteSize configurable in ParamFlowRequestDataWriter of cluster client module and fix bugs (#823)
- Improve Node and Metric interface to support conditional metric retrieval (#1115)
- Support adding prefix to Dubbo service resource name in Sentinel Dubbo Adapter (#859)
- Improve annotation aspect to support throwing original exception in fallback and blockHandler (#986)
- Add Etcd DataSource extension (#1018)
- Add Consul DataSource integration module (#979)
- Add Spring Cloud Config data source extension (#899)
- Improve the checking logic of SystemRule and enhance SystemRuleManager (#1050)
- Add init parameter to support unifying web context name in Sentinel Web CommonFilter (#1111)
- Support registering writable data-source for GatewayFlowRule and customized ApiDefinition (#1057)
- Support URL exclusion using UrlCleaner in Spring WebFlux adapter (#1049)
- Reuse connections of the same address in ZooKeeper data-source (#788)
- Dependency update: fastjson to 1.2.62, nacos-client to 1.1.4, apollo-client to 1.5.0
- Fix the bug that resource name displayed in ClusterNode-related command APIs for
SphU.entry(method)
is incorrect (#1078) - Fix hookOnCancel handing logic in SentinelReactorSubscriber (#1089)
- Fix the bug of getting the wrong current flow QPS in ClusterFlowChecker (#972)
- Fix the numeric overflow bug of ping response data in the cluster module (#844)
- Fix the bug of wrong RT and exception tracing in sentinel-grpc-adapter (#291 and #995)
- Fix the bug that the Zuul adapter does not exit the entry with parameters (#1148)
- Add version info in the left top of dashboard (#1015)
- Support configuration for disabling login (#1004)
(2019/07/29)
This version provides entire support for managing API gateway flow rules and customized API groups in Sentinel dashboard.
- Add support for managing gateway flow rules and customized API group in Sentinel dashboard (#869)
- Add support for excluding some URLs in Web Servlet CommonFilter (#914)
- Add
Ordered
interface support for Spring Cloud Gateway filter (#937) - Support displaying SystemRule of CPU usage strategy in the dashboard (#927)
- Use the unified context name in Web Servlet filter (#944)
- Fix the empty value matching problem in
GatewayParamParser
(#937)
Thanks for the contributors: @cdfive, @Crazy10552, @jasonjoo2010, @linlinisme, @lym-ifae
- Add support for request item pattern matching in API gateway flow control (#842)
- Support parsing cookie as request items in API gateway flow control (#814)
- Add support for logging into console for common logs (#836)
- Fix the parsing bug for command name that contains multiple slash in
sentinel-transport-netty-http
module (#817) - Fix the bug that numeric overflow might occur when refilling tokens in
ParamFlowChecker
(#838)
- Improve the edit dialog for FlowRule and ParamFlowRule (#845)
- Update frontend dependencies in package.json to fix vulnerabilities
- Refactor API gateway common module to separate converted rules from other rule managers (#758)
- Separate parameter metric storage from
ParamFlowSlot
and improveParamFlowRuleUtil
- Refactor FlowRuleChecker to improve code reuse
- Add SPI extension for Sentinel internal statistics (#730)
- Add exceptionsToTrace and exceptionsToIgnore support in Tracer (#766)
- Make
SentinelConfig.loadProps()
thread-safe usingCopyOnWriteArraySet
(#706) - Add CPU usage and system load to metric collecting command API (#749)
- Add
getCpuUsageThreshold()
method in SystemRuleManager (#770)
- Fix the bug that parameters are not carried when exiting entries in
SentinelReactorSubscriber
- Fix the bug that Chinese characters are malformed in the response body of
ZuulBlockFallbackProvider
(#737)
- Add ZooKeeper flow rule dynamic publisher sample (#714)
Thanks for the contributors: @haofangyuan, @jasonjoo2010, @kexianjun, @threedr3am, @yikangfeng, @yinjihuan
In 1.6.0, we refactored the statistic and flow control algorithm of parameter flow control. The old mechanism (LRU map + sliding window for the parameter) has been replaced by an algorithm like token bucket. Now parameter flow rule supports setting statistic interval (intervalSec
), burst count (burst
), traffic shaping mode (controlBehavior
, currently supports default mode and throttling mode).
We've refactored and improved fallback support for @SentinelResource
annotation to make it more understandable and common. See the document for more information.
Since 1.6.0, all API gateway adapter will be based on the sentinel-api-gateway-adapter-common
module. There are some changes for Sentinel Zuul Adapter. In previous versions, the adapter will mark all serviceId
and API path as resources. Since 1.6.0, the adapter will regard all route ID (aka. proxy
) and customized API groups (defined in API gateway common module) as resources.
- Refactor rule, statistic and flow checking implementation for parameter flow control and support throttling traffic shaping mode (#677)
- Add
sentinel-api-gateway-adapter-common
module for universal gateway rule and API definition management - Add Sentinel Spring Cloud Gateway adapter module and implementation (#695)
- Refactor and improve Sentinel Zuul Adapter (#698)
- Refactor and improve fallback support for
@SentinelResource
annotation (#693) - Support passing acquireCount and parameters to entry via SentinelReactorSubscriber in Sentinel Reactor Adapter (#630)
- Support parsing HTTP POST request in
sentinel-transport-netty-http
andsentinel-transport-simple-http
(#620) - Add FileInJarReadableDataSource to support reading config file in jar (#646)
- Add
@SpiOrder
annotation and improve SPI loader to support loading SPI with highest precedence - Make CommandCenterProvider and HeartBeatSenderProvider choose the instance with highest precedence by default (#675)
- Add
exceptionsToIgnore
configuration support in@SentinelResource
annotation (#683) - Add
appType
property field in SentinelConfig (#696)
- Fix the NPE bug when passing null args to
SphU.entry()
and paramIdx is negative (#642)
- Add a simple login page to support basic auth in Sentinel dashboard (#659)
- Refinement and support HTTP POST request for update operations in
SentinelApiClient
(#620) - Fix CountDownLatch wait timeout in MetricFetcher when machine is dead (#645)
Thanks for the contributors: @cdfive, @dqing0, @jasonjoo2010, @luoxn28, @paulkennethkent, @shxz130, @yikangfeng, @zhaixiaoxiang
This minor version provides some bug fixes and enhancements (cherry-picked from 1.6.0).
- Add @SpiOrder annotation and update
SpiLoader
to support loading SPI with the highest precedence (#675) - Make
CommandCenterProvider
andHeartBeatSenderProvider
choose the instance with the highest precedence in transport module - Support passing parameters via
SentinelReactorTransformer
insentinel-reactor-adapter
(#630) - Fix the NPE bug when passing null args to SphU.entry() and paramIdx is negative (#642)
This version provides some bug fixes and enhancements.
- Add exceptionsToTrace configuration support in
@SentinelResource
annotation (#543) - Enhancements for handling
Error
in InitExecutor and LogBase (#613) - Improve ZookeeperDataSource to deal with bad connection when initializing (#597)
- Add compatible adapter module
sentinel-apache-dubbo-adapter
for Apache Dubbo 2.7.x and above (#619) - Apply Alibaba p3c pmd plugin/rules and fix/ignore all violations of priority 1 (#574)
- Improve field naming in
ApolloDataSource
(#593)
- Fix deadlock bug in
Env
static initialization (#610) - Fix bug of exiting entry with parameters in
SentinelResourceAspect
Thanks for the contributors: @blindpirate, @beston123, @cdfive, @lawrencewu, @zhousiliang163
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.
- Update minimum JDK version to 1.7 (for all modules)
- Refactor Node interface: change return type of QPS get method to double (#564)
- Add occupy mechanism for future buckets of sliding window to support "prioritized requests" (#568)
- Add occupiable LeapArray support and code refactor/rearrangement
- Add Sentinel Reactor module to support reactive integration (#545)
- Add adapter module and implementation for Spring WebFlux (#556)
- Add try-with-resources support for Entry class (#550)
- Add an ApiCommandHandler to list all available commands and description (#491)
- Add CPU usage checking support in system protection rule (#484)
- Add a CommandCenterProvider to resolve and cache the CommandCenter instance (#409)
- Automatically de-duplicate rules when loading rules (#571)
- Support recording total inbound traffic data in metric file (#555)
- Support passing args in
Sph.entryWithPriority(xxx)
- Allow negative paramIndex as reversed-order index in ParamFlowRule (#549)
- Add AuthInfo parameter in the constructor of ZooKeeperDataSource to support ACL (#508)
- Carry appName in FetchClusterServerInfo command
- Optimize circuit breaking state transformation using CAS in DegradeRule (#538)
- Improve sleeping-based tests to be more stable and optimize slow tests (#546)
- Change default value of avgUsedTokens to zero to be more meaningful in DefaultController (#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)
- Fix SimpleDateFormat concurrent issue in CspFormatter of sentinel-core (#548)
- Fix Dubbo-related dependencies in sentinel-dubbo-demo (#534)
- Support automatic/manual removal of unhealthy machines and disconnected applications in dashboard (#168)
- Add basic interface for authentication and authorization in Sentinel dashboard (#503)
- Improve management for foreign-app stand-alone token server in cluster page
- Remove G2 lib tracking in frontend of Sentinel dashboard (#527)
- Fix concurrent error in InMemoryMetricsRepository of the dashboard (#488)
- Add Apollo flow rule publisher sample in Sentinel dashboard (#535)
Thanks for the contributors: @all4you, @ATAXGT, @cdfive, @HaojunRen, @hantianwei, @jasonjoo2010, @MickMo, @mjaow, @nick-tan, @xburning, @yikangfeng, @yklove
- Add Zuul 1.x adapter module for Sentinel (#188, @tigerMoon)
- Add catch throwable logic in ClusterStateManager to detect fatal error when loading SPI
- Add back thread count metric type support for parameter flow control
- Carry the triggered rule in subclasses of BlockException (#469)
- Support tracing exception count for specific entry or context in
Tracer
- Add volatile in double-checked locking field in ClusterBuilderSlot (@mjaow)
- Improve ClusterServerConfigManager in
sentinel-cluster-server-default
and add basic test cases - Remove slf4j dependency in
sentinel-annotation-aspectj
module - Improve and fix bugs for ConnectionManager and add test cases
- Update Nacos SDK version to 0.8 in Nacos data-source extension module and update Nacos namespace demo (#474, @yanlinly)
- HashMap init optimize when adding new ClusterNode to cluster node map (#465, @luoxn28)
- Make build faster by reducing fixed waiting time in tests (#449, @aalmiray)
- Add some unit test for StatisticNode, ClusterNode and DefaultNodeBuilder class (#423, @cdfive)
- Update dependency version of fastjson and jacoco-maven-plugin
- Fix negative waitTime bug in RateLimiterController (fixes #420)
- Fix zero-count divide overflow bug in RateLimiterController (#461, @mjaow)
- Fix error value type and rename variable in EntranceNode class (#457, @mjaow)
- Fix NPE bug when creating connection group in ConnectionManager of token server (#467)
- Fix NPE bug when adding event count concurrently for different parameter values in ParamMapBucket (#494)
- Fix bug of calculating param size and amount in ParamFlowRequestDataWriter of Sentinel cluster (#495)
- Rename dashboard package name from
com.taobao.*
tocom.alibaba.*
(#435) - Make fallbackToLocalWhenFail of cluster rule configurable in Sentinel dashboard (#370, @cdfive)
- Fix data model problem in edit dialog of Sentinel dashboard (#370, @cdfive)
- Add healthyMachineCount and totalCount information in sidebar of Sentinel dashboard (#376, @jz0630)
- Change text of p_qps and b_qps to be more intuitive in monitoring page (#398, @Arlmls)
- When clicking the first-level menu of sidebar, don't jump to the home page (#422, @cdfive)
Thanks for the contributors: @aalmiray, @all4you, @Arlmls, @cdfive, @jz0630, @kangyl, @kexianjun, @Leishunyu, @luoxn28, @mjaow, @pig4cloud, @tigerMoon, @wangjunwei87, @yanlinly
This is a milestone version that provides enhancements for cluster flow control.
- Improve Sentinel dashboard for cluster flow control management (#384)
- Support multiple tokens per request entry (#380)
- Improve retry and stop control logic in cluster token client
- Improve cluster state manager to modify cluster mode more flexible
- Enhance config and log for cluster token client
- Improve namespace register logic for embedded cluster token server mode
- Add cluster embedded mode handling logic for parameter flow checker
- Add basic monitoring command API for cluster token server
- Upgrade nacos-client version and construct NacosDataSource by Properties (#348, @fangjian0423)
- Make the default statistic max RT value
TIME_DROP_VALVE
configurable (#292, @cdfive) - Rearrange the constructor of LeapArray to match with interval and sampleCount property
- Refinement for heartbeat logic in
sentinel-transport
related module - Polish cluster flow control demo to be more instructive
- Add some unit test for
sentinel-transport-netty-http
module (#321, @cdfive) - Fix bug in search logic of metric files (#331)
- Fix wrong empty check in
FlowRuleApiPublisher
of Sentinel dashboard (#353, @foreveryang321)
Thanks for the contributors: @allencloud, @canglang1973, @cdfive, @fangjian0423, @foreveryang321, @jz0630, @YoungHu
This is a bug-fix version based on 1.3.0-GA.
This is a significant milestone version that provides cluster flow control feature.
Note: The cluster flow control module requires JDK 1.7 or later versions.
-
Add cluster flow control interface and default implementation (#257, #294)
- Add basic token client and server interface in Sentinel Core
- Add cluster common module for common interface, entity and registry
- Add cluster client module for default token client implementation (using Netty as transport library)
- Add cluster server module for default token server implementation
- Add basic cluster config and rule management mechanism
- Support flexible transformation of cluster mode (between client and embedded server)
- Add basic support for cluster mode in Sentinel dashboard (#302)
- Add prioritized entry support in ProcessorSlot and SphU (#255)
- Add "warmup with rate limiting" implementation for traffic shaping (#220)
- Add HTTP-method level flow control support in Sentinel Web Servlet Filter (#282, @ro9er)
- Add client ip property in transport common module to resolve ip problem in Docker env (#261, @nick-tan)
- Optimize the click sensitivity of dashboard's sidebar menu (#268, @cdfive)
- Extract annotation support base class for customized AOP extensions (#223, #214, @bitonly)
- Extract flow rule checker from FlowRule (#234)
- Improve log info and condition about fetching metrics in Sentinel dashboard (#219, @xcaspar)
- Fix padding issue of charts in monitoring page of Sentinel dashboard (fixes #251, @cdfive)
- Support parameters in entry of Sentinel annotation support to enable parameter flow control
- Support automatic exception tracing in Sentinel annotation support
Thanks for the contributors: @bitonly, @canglang1973, @cdfive, @nick-tan, @ro9er, @xcaspar
This is a production-ready GA version including enhancements for Sentinel dashboard and some other enhancements / bug fixes.
- Add support for configuring authority rules and parameter rules in Sentinel Dashboard (#176, #189)
- Add support for degrading by exception count per minute (#174)
-
@SentinelResource
annotation supports method name as default resource name (#187) - Enhance rule checking in rule managers and Sentinel Dashboard (#202)
- Support config the log base directory via system property
- Support config whether the log name contains pid
- Support to retry when port specified has been used in
sentinel-transport-netty-http
(#161, @jasonjoo2010) - LogBase support variable arguments (#161, @jasonjoo2010)
- Fix bug for wrong coordinate scaling of QPS chart (passed/blocked) in monitoring page of Sentinel Dashboard (fixes #22, @jasonjoo2010)
- Fix bug for wrong log file name checking and performance problem (fixes #181)
- Fix bug for body reading in HttpServerHandler of
sentinel-transport-netty-http
(fixes #184, @jasonjoo2010) - Fix bug for ConcurrentModificationException when getting machine map in AppInfo of Sentinel Dashboard (fixes #201)
Thanks for the contributors: @jasonjoo2010, @shannon312, @waveng
This is a milestone version providing new cool features like asynchronous invocation support and flow control by frequent (hot spot) parameters.
Note: this is the last milestone version that supports JDK 1.6. Since next milestone version, the minimum JDK version will be 1.7.
- Add support for asynchronous invocation entry (#146)
- Flow control by frequent (hot spot) parameters (#156)
- Support extensible slot chain builder using SPI mechanism (#145)
- Refactor data source hierarchy: spilt into readable and writable data source (#124)
- Add callback registry for statistic slot for extensions
- Add Redis data source extension (#102, @tigerMoon)
- Add MetricsRepository interface and reuse original in-memory implementation for Sentinel Dashboard (#126)
- Access control for white-list / black-list (AuthorityRule)
- Support JDK-based proxy in Sentinel annotation support (#111)
- Enhance exception tracing in Sentinel Dubbo Adapter
- Enhance FileRefreshableDataSource (check file modified) and support FileWritableDataSource (#125, @yfh0918)
- Add RequestOriginParser for Sentinel Web Servlet Integration to support extracting request origin
- Refactor LeapArray to reuse code for current bucket
- Enhance log and null check for rule managers
- Add benchmark for Sentinel
- Extract MetricsReader from MetricSearcher (#103, @refactormachine)
- Fix bugs for Sentinel internal error when context count exceeds MAX_CONTEXT_NAME_SIZE (#152)
- Fix bugs for degrade rule checking (fixes #109 and #128)
- Fix bug for error file separator regex in Windows environment (fixes #52)
- Fix bug for missing
maxQueueingTimeMs
in equals and hashCode method of FlowRule (fixes #99) - Fix bug for system rule page in Sentinel Dashboard (fixes #51)
- Fix bug for automatic exit of default context when exiting the entry
- Fix bug for probability of metric lose when collecting metrics
- Fix bug for update logic of minRt in metric bucket
Thanks for the contributors: @kimmking, @refactormachine, @talshalti, @tigerMoon, @yfh0918
This is a bug-fix version, including bug fixes and enhancement:
- Fix bugs for Sentinel internal error when context count exceeds MAX_CONTEXT_NAME_SIZE (fixes #151)
- Fix bugs for degrade rule checking (fixes #109 and #128)
- Fix bug for error file separator regex in Windows environment (fixes #52)
- Fix bug for missing
maxQueueingTimeMs
in equals and hashCode method of FlowRule (fixes #99) - Fix bug for system rule page in Sentinel Dashboard (fixes #51)
- Fix bug for automatic exit of default context when exiting the entry
- Fix bug for probability of metric lose when collecting metrics
- Fix bug for update logic of minRt in metric bucket
- Support JDK-based proxy in Sentinel annotation support (#111)
- Enhance log and null check for rule managers
- Add Nacos data source extension (#8)
- Use named thread factory for clear identification (#10)
- Add ZooKeeper data source extension (#33, @guonanjun)
- Add Sentinel annotation and AspectJ support (#43)
- Add default fallback support for Dubbo adapter
- Add Apollo data source extension (#46, @nobodyiam)
- Optimize for statistic data structures (leap array)
- Enhance error handling when parsing bad dashboard addresses (fixes #38)
- Fix bugs about runtime port and heartbeat sending logic (fixes #20)
- Refine degrade rule checking and default value of flow rule attributes
- Remove
sentinel-spring-boot-starter
module (replaced byspring-cloud-starter-sentinel
module in Spring Cloud Alibaba)
Thanks for the contributors: @guonanjun, @manzhizhen, @nobodyiam, @xg1907
-
文档
-
Documents
- Read Me
- Introduction
- How to Use
- How it Works
- Flow Control
- Parameter Flow Control
- Cluster Flow Control
- API Gateway Flow Control
- Circuit Breaking
- Adaptive System Protection
- Metrics
- General Configuration
- Dynamic Rule Configuration
- Dashboard
- Integrations with open-source frameworks
- Contribution Guideline