Commit Graph

114 Commits

Author SHA1 Message Date
Eric Zhao 40368bdcd6 Config and log enhancement for cluster token client
- Refactor token client common config and assign config
- Log enhancement when transport to token server failed
- Add `getState` method to `ClusterTokenClient` interface

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-01-04 14:13:21 +08:00
Eric Zhao 25e96a8cd3 Improve cluster state manager
- Support stop cluster mode (`NOT-STARTED` mode)
- Fix bug when updating cluster state via command API (should modify via state property)

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-01-04 14:09:29 +08:00
Eric Zhao 99bdb9cf3c
Add total QPS limit control for specific namespace in cluster flow control (#382)
- Add `UnaryLeapArray` and `RequestLimiter` to enable simple QPS limit
- Improve cluster rule manager and server config manager to support request limiter
- Support `TOO_MANY_REQUEST` status in client side
- Also improve the automatic namespace register of embedded server mode

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-01-04 14:09:15 +08:00
Eric Zhao 8d84349607 Add returning modified status of `updateProperty` method in SentinelProperty
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-01-04 13:04:47 +08:00
Eric Zhao 9165fe0d61
Support multiple tokens per request entry (#380)
- Refactor MetricBucket to support add multiple count
- Refactor Node and Metric related classes
- Refactor for StatisticSlot

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2019-01-04 13:02:11 +08:00
cdfive 44409182ae Make the default statistic max RT value `TIME_DROP_VALVE` configurable (#292)
@see https://github.com/alibaba/Sentinel/issues/276
2018-12-29 09:52:18 +08:00
Zhe Jiang 197c982c02 doc: fix SphO document typo (#357) 2018-12-28 18:41:26 +08:00
Eric Zhao f046194d6b Add sampleCount and windowInterval item to cluster config of flow rule and param rule
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-25 11:44:40 +08:00
Carpenter Lee c047457c2f
Fix/list metric files (#331)
* Fix #330 : fix listMetricFiles() returns wrong file name list.

Signed-off-by: Carpenter Lee <hooleeucas@163.com>

* Add timestamp check when read metrics.

Signed-off-by: Carpenter Lee <hooleeucas@163.com>

* Refine test case

Signed-off-by: Carpenter Lee <hooleeucas@163.com>
2018-12-25 09:31:18 +08:00
Eric Zhao d3bbe290c2
Refinement for heartbeat logic in sentinel-transport related module (#312)
- Code refinement for heartbeat component in transport related module
- Add remove support of `SentinelConfig`

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-24 18:03:31 +08:00
Eric Zhao a2b91a9030 Refactor the constructor and units of LeapArray and related statistic class
- The constructor now accept `sampleCount` and `windowIntervalMs` so that it can match the two basic properties

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-24 18:02:50 +08:00
leitao e5cc277f0a Remove duplicate class in sentinel-core (#309)
ClusterTokenClient.java,TokenClientProvider.java in package `com.alibaba.csp.sentinel.cluster`
2018-12-17 14:14:16 +08:00
Eric Zhao 9916dad403 Bump version to 1.4.1-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-17 10:23:19 +08:00
Eric Zhao c7b5653249 Bump version to 1.4.0
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 14:59:27 +08:00
Eric Zhao 465b44b7e7
Merge branch 'master' into feature/cluster-flow-control 2018-12-14 10:58:20 +08:00
Eric Zhao 2735954afd Update cluster related command APIs and some enhancement and fix for cluster module
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:54:30 +08:00
Eric Zhao a5819e092d Add HTTP command for modifying global state and client config
- Add several command handlers
- Update cluster state manager

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:54:30 +08:00
Eric Zhao 9314fca8a6 Add cluster state manager to manage cluster mode
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:28 +08:00
Eric Zhao e31e7e0208 Update cluster related logic in core
- Remove "borrow-from-ref" mode
- Improve flow checker to support both embedded server mode and client mode

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:28 +08:00
Eric Zhao ba72d4c67a Rearrangement and refinement of statistic code in core
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:28 +08:00
Eric Zhao 9d42edcffa Add cluster token server interface to core and support embedded mode
- Add a EmbeddedClusterTokenServer interface

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:28 +08:00
Eric Zhao 9f2678eb6c Update token client interface in sentinel-core
- Add `start` and `stop` method for automatic control
- Update TokenClientProvider using SpiLoader

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:28 +08:00
Eric Zhao f83ea428ff Update token client interface and default implementation
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:28 +08:00
Eric Zhao b3ae7f58bf Add common module for Sentinel default cluster implementation
- Add a `ClusterTransportClient` for transport abstraction of Sentinel cluster
- Add universal request/response interface and common ClusterRequest/ClusterResponse abstraction
- Add common request/response data entity
- Add basic abstraction of codec (EntityWriter and EntityDecoder)

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:21 +08:00
Eric Zhao 1043648fbc Update parameter flow rule to adapt to cluster mode and extract rule util class
- Update ParamFlowRule to support cluster mode
- Add `ParamFlowClusterConfig` to provide cluster mode items for the rule
- Update ParamFlowChecker to support cluster flow mode
- Extract ParamFlowRuleUtil class
- Change type of `flowId` from Integer to Long

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:21 +08:00
Eric Zhao b215e8784e Update flow rule for cluster mode and extract util class
- Add new field `clusterMode` and `clusterConfig` for cluster mode
- Add a `ClusterFlowConfig` class for specific items for cluster flow control
- Update FlowRuleChecker to support cluster mode
- Extract valid rule checking and rule map generating logic to FlowRuleUtil

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:21 +08:00
Eric Zhao 6545a90d46 Add basic interface and entity for Sentinel cluster flow control
- Add a universal `TokenService` SPI interface for both local flow control and distributed flow control
- Add TokenResult entity to represents result of acquiring token
- Add `ClusterTokenClient` as the SPI interface for client of Sentinel cluster flow control

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-12-14 10:52:21 +08:00
leitao 512b27bba3 Fix javadoc typo in decreaseThreadNum() method of Node interface (#296) 2018-12-11 11:56:45 +08:00
Eric Zhao c80bb5a862
Merge pull request #257 from alibaba/feature/cluster-core
Add basic interface and adaptations for Sentinel cluster flow control in `sentinel-core` (#257)
2018-11-23 16:12:54 +08:00
Eric Zhao 4342b1e935 Code refinement for LeapArray
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-23 11:13:32 +08:00
Eric Zhao f539b5b827 Update parameter flow rule to adapt to cluster mode and extract rule util class
- Update ParamFlowRule to support cluster mode
- Add `ParamFlowClusterConfig` to provide cluster mode items for the rule
- Update ParamFlowChecker to support cluster flow mode
- Extract ParamFlowRuleUtil class
- Change type of `flowId` from Integer to Long

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-23 10:13:59 +08:00
Eric Zhao a6534e5b13 Update flow rule for cluster mode and extract util class
- Add new field `clusterMode` and `clusterConfig` for cluster mode
- Add a `ClusterFlowConfig` class for specific items for cluster flow control
- Update FlowRuleChecker to support cluster mode
- Extract valid rule checking and rule map generating logic to FlowRuleUtil

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-21 19:06:44 +08:00
Eric Zhao d6237bee0a Add basic interface and entity for Sentinel cluster flow control
- Add a universal `TokenService` SPI interface for both local flow control and distributed flow control
- Add TokenResult entity to represents result of acquiring token
- Add `ClusterTokenClient` as the SPI interface for client of Sentinel cluster flow control

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-21 19:06:11 +08:00
Eric Zhao 7bf2a809e9 Code and javadoc improvement
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-21 17:37:43 +08:00
Eric Zhao 09ba7f081b Resolves #256: Support parameters in entry of Sentinel annotation support
- To enable parameter flow control in Sentinel annotation support

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-21 16:46:55 +08:00
Eric Zhao 2237727a11
Add prioritized entry support in ProcessorSlot and SphU (#255)
- Refactor the slot interface to support prioritized entry
- Add `entryWithPriority` in SphU

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-21 16:22:41 +08:00
Eric Zhao f2a401cdb3 Code and javadoc refinement
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-20 20:52:03 +08:00
Eric Zhao f8bc6f631a Code and javadoc refinement
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-20 20:06:55 +08:00
Eric Zhao c42ba34568 Add basic helper functional interface
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-19 14:39:31 +08:00
Eric Zhao 6765130f1b Add log for fatal error when InitExecutor failed
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-15 17:09:23 +08:00
Eric Zhao a680b4c5e3 Add sort for flow rules when loading rules
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-15 17:04:33 +08:00
Eric Zhao 1ca28d8974 Update test cases for flow slot and checker
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-14 14:52:39 +08:00
Eric Zhao d4d63fad95 Extract flow rule checker from FlowRule
- Extract flow rule checker from legacy `passCheck`
- Remove redundant code
- Refactor FlowSlot (some logic moved from FlowRuleManager)
- Rename `Controller` to `TrafficShapingController`

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-14 14:52:39 +08:00
Carpenter Lee 08f2a71f4e Add "warmup with rate limiting" implementation for traffic shaping (#220)
- Add a new kind of control behavior `warm up + rate limiter`, behaving as both warm up and pace control
2018-11-01 17:10:13 +08:00
Eric Zhao df84b6b41e Update javadoc and code refinement for AbstractRule
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-11-01 10:36:49 +08:00
Eric Zhao bffa4ff777 Bump version to 1.4.0-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-10-30 16:06:32 +08:00
Eric Zhao f4b5fae130 Bump version to 1.3.0-GA and update dependencies
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-10-30 15:01:51 +08:00
Eric Zhao 0c15dd9fe3
Fixes #198: Enhance rule checking in rule managers and Sentinel Dashboard (#202)
- Enhance rule checking in rule managers and Sentinel Dashboard frontend
- Enhance error information when reporting invalid fields in rule dialog

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-10-29 13:35:06 +08:00
Eric Zhao 531578ce54 Bump version to 1.3.0-SNAPSHOT
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-10-24 15:52:11 +08:00
Eric Zhao 5aad448191 Refactor logic of getting resource name in Sentinel annotation
- Enhance resolve name logic in MethodUtil
- Add test case for MethodUtil

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-10-24 14:46:42 +08:00