From 849b224fad353bf3c96cafdebf58a4bd95ddb16b Mon Sep 17 00:00:00 2001 From: pengbingting Date: Tue, 18 Dec 2018 15:24:55 +0800 Subject: [PATCH 1/3] sentinel support custom block response by sentinelClientHttpResponse --- spring-cloud-alibaba-dependencies/pom.xml | 12 +++ spring-cloud-alibaba-sentinel/pom.xml | 10 +++ .../rest/SentinelClientHttpResponse.java | 75 +++++++++++-------- 3 files changed, 64 insertions(+), 33 deletions(-) diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml index 62e2c443..4abfc39f 100644 --- a/spring-cloud-alibaba-dependencies/pom.xml +++ b/spring-cloud-alibaba-dependencies/pom.xml @@ -127,6 +127,18 @@ sentinel-dubbo-api ${project.version} + + com.alibaba.csp + sentinel-cluster-server-default + ${sentinel.version} + + + com.alibaba.csp + sentinel-cluster-client-default + ${sentinel.version} + + + org.apache.rocketmq rocketmq-client diff --git a/spring-cloud-alibaba-sentinel/pom.xml b/spring-cloud-alibaba-sentinel/pom.xml index dba86dfb..e3b46726 100644 --- a/spring-cloud-alibaba-sentinel/pom.xml +++ b/spring-cloud-alibaba-sentinel/pom.xml @@ -35,6 +35,16 @@ sentinel-dubbo-adapter + + com.alibaba.csp + sentinel-cluster-server-default + + + + com.alibaba.csp + sentinel-cluster-client-default + + org.springframework.cloud spring-cloud-starter-openfeign diff --git a/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java b/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java index 76e4a3b8..76d6d715 100644 --- a/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java +++ b/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java @@ -16,6 +16,13 @@ package org.springframework.cloud.alibaba.sentinel.rest; +import org.springframework.cloud.alibaba.sentinel.annotation.SentinelRestTemplate; +import org.springframework.cloud.alibaba.sentinel.custom.SentinelProtectInterceptor; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.client.AbstractClientHttpResponse; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -24,48 +31,50 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.springframework.cloud.alibaba.sentinel.annotation.SentinelRestTemplate; -import org.springframework.cloud.alibaba.sentinel.custom.SentinelProtectInterceptor; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.client.AbstractClientHttpResponse; - /** * Using by {@link SentinelRestTemplate} and {@link SentinelProtectInterceptor} + * * @author Jim */ public class SentinelClientHttpResponse extends AbstractClientHttpResponse { - private final String BLOCK_STR = "RestTemplate request block by sentinel"; + private String blockResponse = "RestTemplate request block by sentinel"; - @Override - public int getRawStatusCode() throws IOException { - return HttpStatus.OK.value(); - } + public SentinelClientHttpResponse() { - @Override - public String getStatusText() throws IOException { - return BLOCK_STR; - } + } - @Override - public void close() { - // nothing do - } + public SentinelClientHttpResponse(String blockResponse) { + this.blockResponse = blockResponse; + } - @Override - public InputStream getBody() throws IOException { - return new ByteArrayInputStream(BLOCK_STR.getBytes()); - } + @Override + public int getRawStatusCode() throws IOException { + return HttpStatus.OK.value(); + } - @Override - public HttpHeaders getHeaders() { - Map> headers = new HashMap<>(); - headers.put(HttpHeaders.CONTENT_TYPE, - Arrays.asList(MediaType.APPLICATION_JSON_UTF8_VALUE)); - HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.putAll(headers); - return httpHeaders; - } + @Override + public String getStatusText() throws IOException { + return blockResponse; + } + + @Override + public void close() { + // nothing do + } + + @Override + public InputStream getBody() throws IOException { + return new ByteArrayInputStream(blockResponse.getBytes()); + } + + @Override + public HttpHeaders getHeaders() { + Map> headers = new HashMap<>(); + headers.put(HttpHeaders.CONTENT_TYPE, + Arrays.asList(MediaType.APPLICATION_JSON_UTF8_VALUE)); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.putAll(headers); + return httpHeaders; + } } From 28f39b67c1d105eef4250208d905c497357e4c13 Mon Sep 17 00:00:00 2001 From: pengbingting Date: Tue, 18 Dec 2018 15:31:55 +0800 Subject: [PATCH 2/3] code format --- .../rest/SentinelClientHttpResponse.java | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java b/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java index 76d6d715..102bb15e 100644 --- a/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java +++ b/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java @@ -16,13 +16,6 @@ package org.springframework.cloud.alibaba.sentinel.rest; -import org.springframework.cloud.alibaba.sentinel.annotation.SentinelRestTemplate; -import org.springframework.cloud.alibaba.sentinel.custom.SentinelProtectInterceptor; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.client.AbstractClientHttpResponse; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -31,6 +24,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.springframework.cloud.alibaba.sentinel.annotation.SentinelRestTemplate; +import org.springframework.cloud.alibaba.sentinel.custom.SentinelProtectInterceptor; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.client.AbstractClientHttpResponse; + /** * Using by {@link SentinelRestTemplate} and {@link SentinelProtectInterceptor} * @@ -38,43 +38,43 @@ import java.util.Map; */ public class SentinelClientHttpResponse extends AbstractClientHttpResponse { - private String blockResponse = "RestTemplate request block by sentinel"; + private String blockResponse = "RestTemplate request block by sentinel"; - public SentinelClientHttpResponse() { + public SentinelClientHttpResponse() { - } + } - public SentinelClientHttpResponse(String blockResponse) { - this.blockResponse = blockResponse; - } + public SentinelClientHttpResponse(String blockResponse) { + this.blockResponse = blockResponse; + } - @Override - public int getRawStatusCode() throws IOException { - return HttpStatus.OK.value(); - } + @Override + public int getRawStatusCode() throws IOException { + return HttpStatus.OK.value(); + } - @Override - public String getStatusText() throws IOException { - return blockResponse; - } + @Override + public String getStatusText() throws IOException { + return blockResponse; + } - @Override - public void close() { - // nothing do - } + @Override + public void close() { + // nothing do + } - @Override - public InputStream getBody() throws IOException { - return new ByteArrayInputStream(blockResponse.getBytes()); - } + @Override + public InputStream getBody() throws IOException { + return new ByteArrayInputStream(blockResponse.getBytes()); + } - @Override - public HttpHeaders getHeaders() { - Map> headers = new HashMap<>(); - headers.put(HttpHeaders.CONTENT_TYPE, - Arrays.asList(MediaType.APPLICATION_JSON_UTF8_VALUE)); - HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.putAll(headers); - return httpHeaders; - } + @Override + public HttpHeaders getHeaders() { + Map> headers = new HashMap<>(); + headers.put(HttpHeaders.CONTENT_TYPE, + Arrays.asList(MediaType.APPLICATION_JSON_UTF8_VALUE)); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.putAll(headers); + return httpHeaders; + } } From 525e05389a2f0bb01b6d2d70c67686edae464709 Mon Sep 17 00:00:00 2001 From: pengbingting Date: Tue, 18 Dec 2018 15:32:25 +0800 Subject: [PATCH 3/3] code format --- .../sentinel/rest/SentinelClientHttpResponse.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java b/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java index 102bb15e..6de453d4 100644 --- a/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java +++ b/spring-cloud-alibaba-sentinel/src/main/java/org/springframework/cloud/alibaba/sentinel/rest/SentinelClientHttpResponse.java @@ -16,6 +16,13 @@ package org.springframework.cloud.alibaba.sentinel.rest; +import org.springframework.cloud.alibaba.sentinel.annotation.SentinelRestTemplate; +import org.springframework.cloud.alibaba.sentinel.custom.SentinelProtectInterceptor; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.client.AbstractClientHttpResponse; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -24,13 +31,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.springframework.cloud.alibaba.sentinel.annotation.SentinelRestTemplate; -import org.springframework.cloud.alibaba.sentinel.custom.SentinelProtectInterceptor; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.client.AbstractClientHttpResponse; - /** * Using by {@link SentinelRestTemplate} and {@link SentinelProtectInterceptor} *