Sentinel v1.8.0 Release Notes

Release Date: 2020-08-21 // about 1 year ago
  • ๐Ÿš€ 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.

    ๐Ÿ”‹ Features / Enhancements

    • โ™ป๏ธ 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)

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  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)

    Dashboard

    • โ™ป๏ธ 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)

    Dependencies

    • โฌ†๏ธ Upgrade fastjson to 1.2.71, nacos-client to 1.3.0 (in sentinel-datasource-nacos module)

    Thanks for all contributors: @Billzaifei, @cdfive, @chenzhiguo, @CodingSinger, @DogBaoBao, @jasonjoo2010, @J-Cod3r, @JiangZian, @John-Chan, @joooohnli, @linlinisme, @liqiangz, @pleasecheckhere2016, @PeineLiang, @RGaius, @sczyh30, @seasidesky, @wavesZh, @xiby, @Yanghf123, @yunfeiyanggzq, @zhaoyuguang, @zhenxianyimeng


Previous changes from v1.7.2

  • ๐Ÿ— 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.

    ๐Ÿ”‹ Features / Enhancements

    • โž• 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)

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  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
    • ๐Ÿ›  Fix incorrect name resolving cache issue in sentinel-transport-simple-http (resolved in #926 more details in #1583)

    Dashboard

    • ๐Ÿ‘Œ 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)

    Thanks for the contributors: @cdfive, @echooymxq, @jasonjoo2010, @jy2156121, @linlinisme, @mantuliu, @olof-nord, @sczyh30, @tianhaowhu, @wavesZh, @WongTheo, @xue8, @zhaoyuguang