diff --git a/spring-cloud-alibaba-examples/pom.xml b/spring-cloud-alibaba-examples/pom.xml index bb19d74e..b69e7851 100644 --- a/spring-cloud-alibaba-examples/pom.xml +++ b/spring-cloud-alibaba-examples/pom.xml @@ -43,6 +43,8 @@ spring-cloud-bus-rocketmq-example schedulerx-example/schedulerx-simple-task-example spring-cloud-alibaba-dubbo-examples + spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example + spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/node-service.js b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/node-service.js new file mode 100644 index 00000000..61e07ab6 --- /dev/null +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/node-service.js @@ -0,0 +1,26 @@ +var http = require('http'); +var url = require("url"); +var path = require('path'); + +// 创建server +var server = http.createServer(function(req, res) { + // 获得请求的路径 + var pathname = url.parse(req.url).pathname; + res.writeHead(200, { 'Content-Type' : 'application/json; charset=utf-8' }); + // 访问http://localhost:8060/,将会返回{"index":"欢迎来到首页"} + if (pathname === '/') { + res.end(JSON.stringify({ "index" : "欢迎来到首页" })); + } + // 访问http://localhost:8060/health,将会返回{"status":"UP"} + else if (pathname === '/health.json') { + res.end(JSON.stringify({ "status" : "UP" })); + } + // 其他情况返回404 + else { + res.end("404"); + } +}); +// 创建监听,并打印日志 +server.listen(8060, function() { + console.log('listening on localhost:8060'); +}); \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml new file mode 100644 index 00000000..c7d38a27 --- /dev/null +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml @@ -0,0 +1,59 @@ + + + + com.alibaba.cloud + spring-cloud-alibaba-examples + 2.1.1.BUILD-SNAPSHOT + ../../pom.xml + + 4.0.0 + + spring-cloud-alibaba-sidecar-consul-example + Example demonstrating how to use Spring Cloud Alibaba Sidecar with consul + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sidecar + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + + org.springframework.cloud + spring-cloud-starter-consul-discovery + + + org.springframework.boot + spring-boot-starter-actuator + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + ${maven-deploy-plugin.version} + + true + + + + + \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/src/main/java/com/alibaba/cloud/sidecar/DemoApplication.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/src/main/java/com/alibaba/cloud/sidecar/DemoApplication.java new file mode 100644 index 00000000..630307bf --- /dev/null +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/src/main/java/com/alibaba/cloud/sidecar/DemoApplication.java @@ -0,0 +1,29 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.cloud.sidecar; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/src/main/resources/application.yml new file mode 100644 index 00000000..325fb38a --- /dev/null +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/src/main/resources/application.yml @@ -0,0 +1,24 @@ +server: + port: 8070 +spring: + cloud: + gateway: + discovery: + locator: + enabled: true + consul: + host: localhost + port: 8500 + application: + name: node-service +sidecar: + # 异构微服务的IP + ip: 127.0.0.1 + # 异构微服务的端口 + port: 8060 + # 异构微服务的健康检查URL + health-check-url: http://localhost:8060/health.json +management: + endpoint: + health: + show-details: always \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml new file mode 100644 index 00000000..83c531ad --- /dev/null +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml @@ -0,0 +1,44 @@ + + + + com.alibaba.cloud + spring-cloud-alibaba-examples + 2.1.1.BUILD-SNAPSHOT + ../../pom.xml + + 4.0.0 + + spring-cloud-alibaba-sidecar-nacos-example + Example demonstrating how to use Spring Cloud Alibaba Sidecar with nacos + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sidecar + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + ${maven-deploy-plugin.version} + + true + + + + + \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/java/com/alibaba/cloud/sidecar/DemoApplication.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/java/com/alibaba/cloud/sidecar/DemoApplication.java new file mode 100644 index 00000000..1d9800a0 --- /dev/null +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/java/com/alibaba/cloud/sidecar/DemoApplication.java @@ -0,0 +1,55 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.cloud.sidecar; + +import reactor.core.publisher.Mono; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + + @Bean + @LoadBalanced + public RestTemplate restTemplate() { + return new RestTemplate(); + } + + @RestController + class MyController { + @Autowired + private RestTemplate restTemplate; + + @GetMapping("/node") + public Mono node() { + return Mono.just( + restTemplate.getForObject("http://node-service/", String.class)); + } + } + +} \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml new file mode 100644 index 00000000..7f059ef3 --- /dev/null +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml @@ -0,0 +1,24 @@ +server: + port: 8070 +spring: + cloud: + nacos: + discovery: + server-addr: localhost:8848 + gateway: + discovery: + locator: + enabled: true + application: + name: node-service +sidecar: + # 异构微服务的IP + ip: 127.0.0.1 + # 异构微服务的端口 + port: 8060 + # 异构微服务的健康检查URL + health-check-url: http://localhost:8060/health.json +management: + endpoint: + health: + show-details: always \ No newline at end of file