Skip to content

Commit a1acf8f

Browse files
committed
fix restTemplate
1 parent c1c8378 commit a1acf8f

File tree

17 files changed

+110
-31
lines changed

17 files changed

+110
-31
lines changed

mse-simple-demo/A/build.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ set -e
33

44
cd "$(dirname "$0")"
55

6-
mvn clean package
7-
docker build . -t spring-cloud-a:1.1.0
6+
docker build . -t ${REGISTRY}spring-cloud-a:1.1.0
7+
8+
if [ -n "${REGISTRY}" ]; then
9+
docker push ${REGISTRY}spring-cloud-a:1.1.0
10+
fi

mse-simple-demo/A/src/main/java/com/alibabacloud/mse/demo/AApplication.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.apache.commons.lang3.StringUtils;
55
import org.springframework.boot.SpringApplication;
66
import org.springframework.boot.autoconfigure.SpringBootApplication;
7+
import org.springframework.boot.web.client.RestTemplateBuilder;
78
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
89
import org.springframework.context.annotation.Bean;
910
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -31,9 +32,11 @@ RestTemplate loadBalancedRestTemplate() {
3132
}
3233

3334
@Bean(name = "restTemplate")
34-
@LoadBalanced
3535
RestTemplate restTemplate() {
36-
return new RestTemplate();
36+
return new RestTemplateBuilder(rt -> rt.getInterceptors().add((request, body, execution) -> {
37+
request.getHeaders().add("Connection", "close");
38+
return execution.execute(request, body);
39+
})).build();
3740
}
3841

3942
@Bean(name = "serviceTag")

mse-simple-demo/A/src/main/java/com/alibabacloud/mse/demo/AController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public String a(HttpServletRequest request) throws ExecutionException, Interrupt
9898

9999
@GetMapping("/spring_boot")
100100
public String spring_boot(HttpServletRequest request) {
101-
String result = restTemplate.getForObject("http://sc-b/spring_boot", String.class);
101+
String result = restTemplate.getForObject("http://sc-b:20002/spring_boot", String.class);
102102

103103
return "A" + serviceTag + "[" + inetUtils.findFirstNonLoopbackAddress().getHostAddress() + "]" +
104104
" -> " + result;

mse-simple-demo/B/build.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22

33
cd "$(dirname "$0")"
44

5-
mvn clean package
6-
docker build . -t spring-cloud-b:1.1.0
5+
docker build . -t ${REGISTRY}spring-cloud-b:1.1.0
6+
7+
if [ -n "${REGISTRY}" ]; then
8+
docker push ${REGISTRY}spring-cloud-b:1.1.0
9+
fi

mse-simple-demo/B/src/main/java/com/alibabacloud/mse/demo/BApplication.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,19 @@
44
import org.apache.commons.lang3.StringUtils;
55
import org.springframework.boot.SpringApplication;
66
import org.springframework.boot.autoconfigure.SpringBootApplication;
7+
import org.springframework.boot.web.client.RestTemplateBuilder;
78
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
89
import org.springframework.context.annotation.Bean;
10+
import org.springframework.http.HttpMethod;
11+
import org.springframework.http.client.ClientHttpRequest;
12+
import org.springframework.http.client.ClientHttpRequestFactory;
13+
import org.springframework.http.client.SimpleClientHttpRequestFactory;
914
import org.springframework.web.client.RestTemplate;
1015

1116
import java.io.File;
1217
import java.io.FileReader;
1318
import java.io.IOException;
19+
import java.net.URI;
1420
import java.util.Properties;
1521

1622
@SpringBootApplication
@@ -27,9 +33,11 @@ RestTemplate loadBalancedRestTemplate() {
2733
}
2834

2935
@Bean(name = "restTemplate")
30-
@LoadBalanced
3136
RestTemplate restTemplate() {
32-
return new RestTemplate();
37+
return new RestTemplateBuilder(rt -> rt.getInterceptors().add((request, body, execution) -> {
38+
request.getHeaders().add("Connection", "close");
39+
return execution.execute(request, body);
40+
})).build();
3341
}
3442

3543
@Bean(name = "serviceTag")

mse-simple-demo/B/src/main/java/com/alibabacloud/mse/demo/BController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ public String bZone(HttpServletRequest request) {
6565
loadBalancedRestTemplate.getForObject("http://sc-C/c-zone", String.class);
6666
}
6767

68-
@GetMapping("/spring-boot")
68+
@GetMapping("/spring_boot")
6969
public String spring_boot(HttpServletRequest request) {
7070
return "B" + serviceTag + "[" + inetUtils.findFirstNonLoopbackAddress().getHostAddress() + "]" + " -> " +
71-
restTemplate.getForObject("http://sc-c/spring-boot", String.class);
71+
restTemplate.getForObject("http://sc-c:20003/spring_boot", String.class);
7272
}
7373
}

mse-simple-demo/C/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
FROM maven:3-eclipse-temurin-8-alpine as build
44

5-
# copy arthas
6-
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
7-
85
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
96

107
COPY <<EOF /root/.m2/settings.xml
@@ -35,6 +32,9 @@ RUN --mount=type=cache,target=/root/.m2/repository/ \
3532

3633
FROM dragonwell-registry.cn-hangzhou.cr.aliyuncs.com/dragonwell/dragonwell:8-extended-ga-centos
3734

35+
# copy arthas
36+
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
37+
3838
COPY --from=build /app/target/C.jar /app/target/C.jar
3939

4040
EXPOSE 20003

mse-simple-demo/C/build.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ set -e
33

44
cd "$(dirname "$0")"
55

6-
mvn clean package
7-
docker build . -t spring-cloud-c:1.1.0
6+
docker build . -t ${REGISTRY}spring-cloud-c:1.1.0
7+
8+
if [ -n "${REGISTRY}" ]; then
9+
docker push ${REGISTRY}spring-cloud-c:1.1.0
10+
fi

mse-simple-demo/C/src/main/java/com/alibabacloud/mse/demo/CApplication.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.apache.commons.lang3.StringUtils;
44
import org.springframework.boot.SpringApplication;
55
import org.springframework.boot.autoconfigure.SpringBootApplication;
6+
import org.springframework.boot.web.client.RestTemplateBuilder;
67
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
78
import org.springframework.context.annotation.Bean;
89
import org.springframework.web.client.RestTemplate;
@@ -26,9 +27,11 @@ RestTemplate loadBalancedRestTemplate() {
2627
}
2728

2829
@Bean(name = "restTemplate")
29-
@LoadBalanced
3030
RestTemplate restTemplate() {
31-
return new RestTemplate();
31+
return new RestTemplateBuilder(rt -> rt.getInterceptors().add((request, body, execution) -> {
32+
request.getHeaders().add("Connection", "close");
33+
return execution.execute(request, body);
34+
})).build();
3235
}
3336

3437
@Bean(name = "serviceTag")

mse-simple-demo/C/src/main/java/com/alibabacloud/mse/demo/CController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public String cZone(HttpServletRequest request) {
6565
return "C" + serviceTag + "[" + currentZone + "]";
6666
}
6767

68-
@GetMapping("/spring-boot")
68+
@GetMapping("/spring_boot")
6969
public String spring_boot(HttpServletRequest request) {
7070
return "C" + serviceTag + "[" + inetUtils.findFirstNonLoopbackAddress().getHostAddress() + "]";
7171
}

0 commit comments

Comments
 (0)