Commit Graph

780 Commits

Author SHA1 Message Date
ZhangYan 9db0c70cbb Fix thread-blocked problem of EtcdDataSource (#2991)
* fix thread blocked problem of etcd watcher

in the previous version of EtcdDataSource, when the flowRules defined in the etcd change and trigger etcd watcher, there will be a following error:
2022-12-07 14:36:03.592 [vertx-blocked-thread-checker] WARN io.vertx.core.impl.BlockedThreadChecker [?:?] -  Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 2336 ms, time limit is 2000 ms
2022-12-07 14:36:04.592 [vertx-blocked-thread-checker] WARN io.vertx.core.impl.BlockedThreadChecker [?:?] -  Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 3337 ms, time limit is 2000 ms
2022-12-07 14:36:05.592 [vertx-blocked-thread-checker] WARN io.vertx.core.impl.BlockedThreadChecker [?:?] -  Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 4337 ms, time limit is 2000 ms
2022-12-07 14:36:06.595 [vertx-blocked-thread-checker] WARN io.vertx.core.impl.BlockedThreadChecker [?:?] -  Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 5337 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
 at sun.misc.Unsafe.park(Native Method)
 at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
 at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1707)
 at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3334)
 at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1742)
 at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
 at com.htsc.fst.saas.infrastructure.component.EtcdDataSource.readSource(EtcdDataSource.java:92)
 at com.htsc.fst.saas.infrastructure.component.EtcdDataSource.readSource(EtcdDataSource.java:23)
 at com.alibaba.csp.sentinel.datasource.AbstractDataSource.loadConfig(AbstractDataSource.java:44)
 at com.htsc.fst.saas.infrastructure.component.EtcdDataSource.lambda$initWatcher$0(EtcdDataSource.java:74)
 at com.htsc.fst.saas.infrastructure.component.EtcdDataSource$$Lambda$480/1375681611.accept(Unknown Source)
 at io.etcd.jetcd.Watch$1.onNext(Watch.java:183)
 at io.etcd.jetcd.impl.WatchImpl$WatcherImpl.onNext(WatchImpl.java:310)
 at io.etcd.jetcd.impl.WatchImpl$WatcherImpl$$Lambda$488/2088661957.handle(Unknown Source

I guess the reason is : when the watcher hold etcd Client, you can't use etcd Client in the Watch's consumer function. 
Besides the problem above, use getKeyValue() in the watchEvent can reduce once invoke with etcd server to getting the latest flowRules :)

* Update EtcdDataSource.java

Add charset adaptation -- accept the suggestion from @LProDreamAll
2023-12-27 20:40:26 +08:00
quguai 59a32994cd Fix the bug that error occurs in JMX metrics exporter when resource name contains '*' (#2992) 2023-12-27 20:40:26 +08:00
Joseph Zhang 9f3712eed7 Fix NPE bug in LogSlot#entry when recording rule ID (#2980) 2023-12-27 20:40:26 +08:00
Eric Zhao e34d55273f Refactor RateLimiterController: improve accuracy and support maxQps > 1000
* Rename to ThrottlingController
* Improve accuracy: use nanoseconds when necessary and support maxQps threshold > 1000 (i.e. wait < 1ms)

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2023-12-27 20:40:26 +08:00
Eric Zhao 4e41c14514 Polish AssertUtil: add assertNotNull and assertTrue
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2023-12-27 20:40:26 +08:00
garroshh 1483669aaf Update metrics name for better monitor selection in JMX MetricBeanWriter extension (#2976) 2023-12-27 20:40:26 +08:00
Kirk Lin e03444768b ci: Update actions/checkout and actions/setup-java to v3 (#2973) 2023-12-27 20:40:26 +08:00
Wilson Wu 30ec6b103f dashboard: Add Dockerfile for dashboard and update doc (#2970)
* Add dockerfile for dashboard with doc update
2023-12-27 20:40:26 +08:00
dependabot[bot] ee9ea81746 build(deps): Bump dubbo to 2.7.18 in sentinel-demo/sentinel-demo-apache-dubbo (#2923)
Bumps [dubbo](https://github.com/apache/dubbo) from 2.7.3 to 2.7.18.
- [Release notes](https://github.com/apache/dubbo/releases)
- [Changelog](https://github.com/apache/dubbo/blob/3.1/CHANGES.md)
- [Commits](https://github.com/apache/dubbo/compare/dubbo-2.7.3...dubbo-2.7.18)

---
updated-dependencies:
- dependency-name: org.apache.dubbo:dubbo
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-27 20:40:26 +08:00
Ezreal 826f40f0fc opt: 移除无用的代码 2023-12-27 20:40:26 +08:00
小贼贼子 3c9dba3eba Fix spelling typo in code (#2948) 2023-12-27 20:40:26 +08:00
Eric Zhao 19418e71ad Refactor and refine implementation of default circuit breaker rule
* Rename: DefaultDegradeSlot -> DefaultCircuitBreakerSlot
* Refine DefaultCircuitBreakerRuleManager
* Add test cases

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2023-12-27 20:40:26 +08:00
wuwen 8b43caede4 Add default circuit breaker rule support (#2232) 2023-12-27 20:40:26 +08:00
dependabot[bot] 6a8a01a8c1 build(deps): Update snakeyaml to 1.32 in sentinel-cluster/sentinel-cluster-server-envoy-rls module (#2921)
Bumps [snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 1.26 to 1.32.
- [Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-1.32..snakeyaml-1.26)

---
updated-dependencies:
- dependency-name: org.yaml:snakeyaml
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-27 20:40:26 +08:00
Eric Zhao 3cf5506b79 docs: Update README.md and doc/awesome-sentinel.md
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2023-12-27 20:40:26 +08:00
Eric Zhao dd1ba2725e Bump version to 1.8.6
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-10-25 16:57:18 +08:00
hongpy 5864ab577f
Fix the bug that SpiLoader#closeResources may not record the exception when error occurs (#2890) 2022-10-09 11:04:57 +08:00
Eric Zhao e13d20ce55 dashboard: Improve IP validation in SentinelApiClient and rule controllers
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-09-26 19:16:04 +08:00
Eric Zhao 84df19b2c5 Bump version to 1.8.6-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-09-15 09:50:36 +08:00
ZhongJinHacker b9dd399697
Fix incorrect code description in sliding window logic of LeapArray (#2876)
* The "clean" logic has been removed in earlier version
2022-09-15 09:40:37 +08:00
Ze 9ac8e89dc4
Removing unnecessary checks in SystemRuleManager#checkSystem (#2869) 2022-09-15 09:33:56 +08:00
一个不知名的Java靓仔 6c74a4cf70
Add id field in Rule entity and record ruleId in block log (#2853)
* Add id field (Long) in Rule
* optimize BlockException log
2022-08-31 10:32:33 +08:00
Albumen Kevin bef6574734
Fix Dubbo SPI path in Dubbo 3 adapter and improve test cases (#2822) 2022-08-17 09:52:12 +08:00
Eric Zhao 24ac1be442 Bump version to 1.8.5 and update README.md
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-08-08 21:29:40 +08:00
benyamin2014 0bd27fb80a
Auto-extract value from ParamFlowArgument when blocked in ParamFlowSlot (#2776)
* Assign actual value with the result of paramFlowKey method
2022-08-08 11:20:42 +08:00
Eric Zhao e0eb63e80e doc: Update docs for Dubbo 2.7.x and 3.x adapter
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-08-08 10:12:19 +08:00
Eric Zhao 9b7786259e Bump version to 1.8.5-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-08-08 09:52:51 +08:00
Albumen Kevin e5a62cb634
Add adapter for Apache Dubbo 3.x (#2789)
* Add apache dubbo3 support implementation
2022-07-22 17:07:21 +08:00
李海峰 9f08a6a49c
docs: Update dashboard frontend Node.js version restriction (#2760) 2022-07-09 13:17:06 +08:00
Eric Zhao 04e5047014 deps: Update fastjson to 1.2.83_noneautotype
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-06-21 10:45:03 +08:00
Eric Zhao 855e3880a4 deps: Update fastjson to 1.2.69_noneautotype
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-06-01 13:40:27 +08:00
zuohl 374481c9d4
Replace deprecated API for Lettuce in sentinel-datasource-redis (#2704) 2022-05-10 09:59:20 +08:00
一个不知名的Java靓仔 d358b1d7ca
dashboard: Fix deprecated Spring config key in application.properties (#2713) 2022-05-10 09:55:54 +08:00
一个不知名的Java靓仔 2e173753ff
dashboard: Refactor IP verify logic in MachineRegistryController to support JDK 17 (#2694) 2022-04-25 11:27:36 +08:00
Eric Zhao 16e1bb8fe8 Bump version to 1.8.4
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-04-12 10:14:53 +08:00
zhuyou1234 679625e299 Improve AuthorityRuleManager: replace the rule map instead of clear-then-insert when updating rules (#2655) 2022-04-06 14:45:18 +08:00
Eric Zhao fcc539d660 build(deps): Update Spring dependencies for adapters (provided or test scope)
* Close all the PR: #2654, #2653, #2652, #2647, #2646, #2634, #2632

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-04-06 11:08:44 +08:00
Eric Zhao dcd139438f Update CircleCI config.yml
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-04-06 10:30:29 +08:00
Eric Zhao 1576500178 build(deps): Bump spring.boot.version to 2.5.12 for sentinel-demo modules and polish demo dependencies
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-04-02 15:20:33 +08:00
Eric Zhao e93f72232f dashboard: Update Spring Boot starter to 2.5.12
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-04-02 14:52:57 +08:00
DaneBrown 3832f2bc5a
Fix the bug that stopping CommandCenter may throw NPE when it was not initialized (#2630) 2022-04-02 09:48:26 +08:00
Eric Zhao d706ce5767 dashboard: Update Spring Boot starter to 2.2.13.RELEASE
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2022-03-29 14:10:56 +08:00
一个不知名的Java靓仔 3cd8970e07 Add interceptor SPI for transport command handler (#2587)
* support intercept specified command handler
* add unit test and demo
2022-03-29 11:42:43 +08:00
David Huang 2cb9747e56
doc: Improve javadoc for DegradeRule and dashboard ApiPredicateItemVo (#2614) 2022-03-23 21:15:36 +08:00
解玉乾 ab6c9adcec
Fix maxQueueingTimeoutMs checking logic in GatewayRuleManager#isValidRule (#2609) 2022-03-22 09:49:49 +08:00
一个不知名的Java靓仔 0bb7532425
Use unified entrance context name by default in Spring WebFlux adapter (#2610) 2022-03-21 10:42:09 +08:00
一个不知名的Java靓仔 42878a29e0
dashboard: Fix the bug that removing token servers may fail when there are servers with the same IP (#2591) 2022-03-15 10:57:46 +08:00
dependabot[bot] 0cd06291f3
build(deps): Bump log4j-core to 2.17.1 in sentinel-demo-apollo-datasource (#2525)
Bumps log4j-core from 2.17.0 to 2.17.1.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 10:39:24 +08:00
Roger3581321 ca13ea6a2a
Use CopyOnWriteArraySet for ConnectionGroup#connectionSet to avoid iterator fast-fail (#2559) 2022-02-07 10:38:23 +08:00
程露 33d14fc12e
doc: Add README.md for sentinel-metric-exporter module (#2550)
* add the reademe file to module `sentinel-metric-exporter`
* format the md file
* [ISSUE #2545] update the screenshot.
2022-01-25 17:22:30 +08:00