Skip to content

Commit 62d354c

Browse files
committed
Merge branch 'spring-boot'
close #116
2 parents 89384c0 + a1acf8f commit 62d354c

34 files changed

+235
-63
lines changed

mse-simple-demo/A/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ RUN --mount=type=cache,target=/root/.m2/repository/ \
3636

3737
EXPOSE 20001
3838
ENTRYPOINT ["sh", "-c"]
39-
CMD ["java -jar /app/target/A-1.0.0.jar"]
39+
CMD ["java -jar /app/target/A.jar"]

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.0.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/pom.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.alibabacloud.mse.demo</groupId>
77
<artifactId>A</artifactId>
8-
<version>1.0.0</version>
8+
<version>1.1.0</version>
99
<packaging>jar</packaging>
1010

1111
<name>A</name>
@@ -107,8 +107,7 @@
107107
<artifactId>spring-boot-maven-plugin</artifactId>
108108
</plugin>
109109
</plugins>
110+
<finalName>${project.artifactId}</finalName>
110111
</build>
111112

112-
113113
</project>
114-

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

Lines changed: 11 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;
@@ -24,12 +25,20 @@ public static void main(String[] args) {
2425
SpringApplication.run(AApplication.class, args);
2526
}
2627

27-
@Bean
28+
@Bean(name = "loadBalancedRestTemplate")
2829
@LoadBalanced
29-
RestTemplate restTemplate() {
30+
RestTemplate loadBalancedRestTemplate() {
3031
return new RestTemplate();
3132
}
3233

34+
@Bean(name = "restTemplate")
35+
RestTemplate 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();
40+
}
41+
3342
@Bean(name = "serviceTag")
3443
String serviceTag() {
3544
String tag = parseServiceTag("/etc/podinfo/labels");

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.apache.http.impl.client.HttpClientBuilder;
1313
import org.apache.http.util.EntityUtils;
1414
import org.springframework.beans.factory.annotation.Autowired;
15+
import org.springframework.beans.factory.annotation.Qualifier;
1516
import org.springframework.beans.factory.annotation.Value;
1617
import org.springframework.cloud.commons.util.InetUtils;
1718
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -30,12 +31,17 @@
3031
class AController {
3132

3233
@Autowired
33-
RestTemplate restTemplate;
34+
@Qualifier("loadBalancedRestTemplate")
35+
private RestTemplate loadBalancedRestTemplate;
36+
37+
@Autowired
38+
@Qualifier("restTemplate")
39+
private RestTemplate restTemplate;
3440

3541
@Autowired
3642
InetUtils inetUtils;
3743

38-
@Reference(application = "${dubbo.application.id}", version = "1.0.0")
44+
@Reference(application = "${dubbo.application.id}", version = "1.1.0")
3945
private HelloServiceB helloServiceB;
4046

4147
@Autowired
@@ -81,13 +87,21 @@ public String a(HttpServletRequest request) throws ExecutionException, Interrupt
8187
}
8288
}
8389

84-
String result=restTemplate.getForObject("http://sc-B/b", String.class);
90+
String result = loadBalancedRestTemplate.getForObject("http://sc-B/b", String.class);
8591
// String result = taskExecutor.submit(() ->
8692
// restTemplate.getForObject("http://sc-B/b", String.class)
8793
// ).get();
8894

89-
return "A" + serviceTag + "[" + inetUtils.findFirstNonLoopbackAddress().getHostAddress() + "]" + "[config=" + configValue + "]" + " -> " +
90-
result;
95+
return "A" + serviceTag + "[" + inetUtils.findFirstNonLoopbackAddress().getHostAddress() + "]" +
96+
"[config=" + configValue + "]" + " -> " + result;
97+
}
98+
99+
@GetMapping("/spring_boot")
100+
public String spring_boot(HttpServletRequest request) {
101+
String result = restTemplate.getForObject("http://sc-b:20002/spring_boot", String.class);
102+
103+
return "A" + serviceTag + "[" + inetUtils.findFirstNonLoopbackAddress().getHostAddress() + "]" +
104+
" -> " + result;
91105
}
92106

93107
@ApiOperation(value = "HTTP 全链路灰度入口", tags = {"入口应用"})
@@ -104,7 +118,7 @@ public String aZone(HttpServletRequest request) {
104118
}
105119
}
106120
return "A" + serviceTag + "[" + currentZone + "]" + " -> " +
107-
restTemplate.getForObject("http://sc-B/b-zone", String.class);
121+
loadBalancedRestTemplate.getForObject("http://sc-B/b-zone", String.class);
108122
}
109123

110124
@ApiOperation(value = "Dubbo 全链路灰度入口", tags = {"入口应用"})

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
import org.springframework.beans.factory.annotation.Autowired;
77
import org.springframework.cloud.commons.util.InetUtils;
88

9-
@Service(version = "1.0.0")
9+
@Service(version = "1.1.0")
1010
public class HelloServiceAImpl implements HelloServiceA {
1111

1212
@Autowired
1313
InetUtils inetUtils;
1414

15-
@Reference(application = "${dubbo.application.id}", version = "1.0.0")
15+
@Reference(application = "${dubbo.application.id}", version = "1.1.0")
1616
private HelloServiceB helloServiceB;
1717

1818
@Autowired

mse-simple-demo/B/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ RUN --mount=type=cache,target=/root/.m2/repository/ \
3636

3737
EXPOSE 20002
3838
ENTRYPOINT ["sh", "-c"]
39-
CMD ["java -jar /app/target/B-1.0.0.jar"]
39+
CMD ["java -jar /app/target/B.jar"]

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.0.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/pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.alibabacloud.mse.demo</groupId>
77
<artifactId>B</artifactId>
8-
<version>1.0.0</version>
8+
<version>1.1.0</version>
99
<packaging>jar</packaging>
1010

1111
<name>B</name>
@@ -88,6 +88,7 @@
8888
<artifactId>spring-boot-maven-plugin</artifactId>
8989
</plugin>
9090
</plugins>
91+
<finalName>${project.artifactId}</finalName>
9192
</build>
9293

9394

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

Lines changed: 16 additions & 3 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
@@ -20,13 +26,20 @@ public static void main(String[] args) {
2026
SpringApplication.run(BApplication.class, args);
2127
}
2228

23-
24-
@Bean
29+
@Bean(name = "loadBalancedRestTemplate")
2530
@LoadBalanced
26-
RestTemplate restTemplate() {
31+
RestTemplate loadBalancedRestTemplate() {
2732
return new RestTemplate();
2833
}
2934

35+
@Bean(name = "restTemplate")
36+
RestTemplate 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();
41+
}
42+
3043
@Bean(name = "serviceTag")
3144
String serviceTag() {
3245
String tag = parseServiceTag("/etc/podinfo/labels");

0 commit comments

Comments
 (0)