From fc6d30766d1a35188c655a9d5059b4704afb3f1a Mon Sep 17 00:00:00 2001 From: qiushijie Date: Wed, 21 Feb 2024 13:58:58 +0800 Subject: [PATCH] init project --- .gitignore | 38 ++++++ .idea/.gitignore | 3 + .idea/encodings.xml | 12 ++ .idea/misc.xml | 25 ++++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ nacos-consumer-8091/pom.xml | 28 ++++ .../java/org/example/ConsumerApplication.java | 15 +++ .../java/org/example/config/BeanConfig.java | 15 +++ .../controller/ConsumerController.java | 20 +++ .../controller/ConsumerFeignController.java | 20 +++ .../example/service/NacosFeignService.java | 14 ++ .../src/main/resources/application.yml | 27 ++++ nacos-producer-8081/pom.xml | 20 +++ .../src/main/java/org/example/App.java | 17 +++ .../example/controller/EchoController.java | 19 +++ .../src/main/resources/application.yml | 14 ++ .../src/test/java/org/example/AppTest.java | 38 ++++++ nacos-producer-8082/pom.xml | 20 +++ .../src/main/java/org/example/App8082.java | 17 +++ .../example/controller/EchoController.java | 18 +++ .../src/main/resources/application.yml | 14 ++ .../src/test/java/org/example/AppTest.java | 38 ++++++ pom.xml | 86 ++++++++++++ 23 files changed, 642 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 nacos-consumer-8091/pom.xml create mode 100644 nacos-consumer-8091/src/main/java/org/example/ConsumerApplication.java create mode 100644 nacos-consumer-8091/src/main/java/org/example/config/BeanConfig.java create mode 100644 nacos-consumer-8091/src/main/java/org/example/controller/ConsumerController.java create mode 100644 nacos-consumer-8091/src/main/java/org/example/controller/ConsumerFeignController.java create mode 100644 nacos-consumer-8091/src/main/java/org/example/service/NacosFeignService.java create mode 100644 nacos-consumer-8091/src/main/resources/application.yml create mode 100644 nacos-producer-8081/pom.xml create mode 100644 nacos-producer-8081/src/main/java/org/example/App.java create mode 100644 nacos-producer-8081/src/main/java/org/example/controller/EchoController.java create mode 100644 nacos-producer-8081/src/main/resources/application.yml create mode 100644 nacos-producer-8081/src/test/java/org/example/AppTest.java create mode 100644 nacos-producer-8082/pom.xml create mode 100644 nacos-producer-8082/src/main/java/org/example/App8082.java create mode 100644 nacos-producer-8082/src/main/java/org/example/controller/EchoController.java create mode 100644 nacos-producer-8082/src/main/resources/application.yml create mode 100644 nacos-producer-8082/src/test/java/org/example/AppTest.java create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..38d1c43 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a9e7519 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nacos-consumer-8091/pom.xml b/nacos-consumer-8091/pom.xml new file mode 100644 index 0000000..dd0cc5e --- /dev/null +++ b/nacos-consumer-8091/pom.xml @@ -0,0 +1,28 @@ + + + 4.0.0 + + org.example + alibaba-cloud + 1.0-SNAPSHOT + + + nacos-consumer-8091 + + + 8 + 8 + UTF-8 + + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.2.RELEASE + + + \ No newline at end of file diff --git a/nacos-consumer-8091/src/main/java/org/example/ConsumerApplication.java b/nacos-consumer-8091/src/main/java/org/example/ConsumerApplication.java new file mode 100644 index 0000000..69a5554 --- /dev/null +++ b/nacos-consumer-8091/src/main/java/org/example/ConsumerApplication.java @@ -0,0 +1,15 @@ +package org.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ConsumerApplication { + public static void main(String[] args) { + SpringApplication.run(ConsumerApplication.class,args); + } +} diff --git a/nacos-consumer-8091/src/main/java/org/example/config/BeanConfig.java b/nacos-consumer-8091/src/main/java/org/example/config/BeanConfig.java new file mode 100644 index 0000000..550d9dc --- /dev/null +++ b/nacos-consumer-8091/src/main/java/org/example/config/BeanConfig.java @@ -0,0 +1,15 @@ +package org.example.config; + +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class BeanConfig { + @Bean + @LoadBalanced + public RestTemplate addRestTemplate(){ + return new RestTemplate(); + } +} diff --git a/nacos-consumer-8091/src/main/java/org/example/controller/ConsumerController.java b/nacos-consumer-8091/src/main/java/org/example/controller/ConsumerController.java new file mode 100644 index 0000000..0393e06 --- /dev/null +++ b/nacos-consumer-8091/src/main/java/org/example/controller/ConsumerController.java @@ -0,0 +1,20 @@ +package org.example.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +@RestController +public class ConsumerController { + + @Autowired + private RestTemplate restTemplate; + private static final String REST_URL_PREFIX = "http://nacos-producer"; + @RequestMapping("/consumer/{string}") + public String callService(@PathVariable String string){ + + return restTemplate.getForObject(REST_URL_PREFIX+"/echo/"+string, String.class); + } +} diff --git a/nacos-consumer-8091/src/main/java/org/example/controller/ConsumerFeignController.java b/nacos-consumer-8091/src/main/java/org/example/controller/ConsumerFeignController.java new file mode 100644 index 0000000..4ac3ab4 --- /dev/null +++ b/nacos-consumer-8091/src/main/java/org/example/controller/ConsumerFeignController.java @@ -0,0 +1,20 @@ +package org.example.controller; + +import org.example.service.NacosFeignService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/feign") +public class ConsumerFeignController { + + @Autowired + private NacosFeignService nacosFeignService; + + @RequestMapping("/{str}") + public String callEcho(@PathVariable String str){ + return nacosFeignService.echo(str); + } +} diff --git a/nacos-consumer-8091/src/main/java/org/example/service/NacosFeignService.java b/nacos-consumer-8091/src/main/java/org/example/service/NacosFeignService.java new file mode 100644 index 0000000..cc385ac --- /dev/null +++ b/nacos-consumer-8091/src/main/java/org/example/service/NacosFeignService.java @@ -0,0 +1,14 @@ +package org.example.service; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +@Service +@FeignClient(value = "nacos-producer") +public interface NacosFeignService { + + @GetMapping(value = "/echo/{string}") + public String echo(@PathVariable String string); +} diff --git a/nacos-consumer-8091/src/main/resources/application.yml b/nacos-consumer-8091/src/main/resources/application.yml new file mode 100644 index 0000000..61c10fa --- /dev/null +++ b/nacos-consumer-8091/src/main/resources/application.yml @@ -0,0 +1,27 @@ +server: + port: 8091 +spring: + application: + name: nacos-consumer #应用名称会将该名称作为服务名称 + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + username: nacos + password: nacos + namespace: public + #ephemeral: false #临时实例,false为永久实例,哪怕宕机了也不会删除实例 + + #service: 默认取${spring.application.name} + #group: 默认DEFAULT_GROUP 更细的相同特征的服务进行归类分组管理 + #weight: 1~100,通常结合负载均衡策略配置 + #AccessKey: (服务上阿里云时用)阿里云的账号 + #SecretKey: 阿里云的密码 + #metadata: version=1 #使用Map格式配置的自定义数据 + #endpoint: 地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址 + +ribbon: + nacos: + enabled: true #默认集成ribbon + + diff --git a/nacos-producer-8081/pom.xml b/nacos-producer-8081/pom.xml new file mode 100644 index 0000000..5bfc36f --- /dev/null +++ b/nacos-producer-8081/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + org.example + alibaba-cloud + 1.0-SNAPSHOT + + + nacos-producer-8081 + + + 8 + 8 + UTF-8 + + + \ No newline at end of file diff --git a/nacos-producer-8081/src/main/java/org/example/App.java b/nacos-producer-8081/src/main/java/org/example/App.java new file mode 100644 index 0000000..4fe6697 --- /dev/null +++ b/nacos-producer-8081/src/main/java/org/example/App.java @@ -0,0 +1,17 @@ +package org.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Hello world! + * + */ +@SpringBootApplication +public class App +{ + public static void main( String[] args ) + { + SpringApplication.run(App.class,args); + } +} diff --git a/nacos-producer-8081/src/main/java/org/example/controller/EchoController.java b/nacos-producer-8081/src/main/java/org/example/controller/EchoController.java new file mode 100644 index 0000000..af4fbd2 --- /dev/null +++ b/nacos-producer-8081/src/main/java/org/example/controller/EchoController.java @@ -0,0 +1,19 @@ +package org.example.controller; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/echo") +public class EchoController { + @Value("${server.port}") + private String port; + + @GetMapping(value = "/{string}") + public String echo(@PathVariable String string) { + return "Hello Nacos Discovery at " + this.port+ ":" + string; + } +} diff --git a/nacos-producer-8081/src/main/resources/application.yml b/nacos-producer-8081/src/main/resources/application.yml new file mode 100644 index 0000000..43c77a3 --- /dev/null +++ b/nacos-producer-8081/src/main/resources/application.yml @@ -0,0 +1,14 @@ +server: + port: 8081 +spring: + application: + name: nacos-producer + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 +#management: +# endpoints: +# web: +# exposure: +# include: * \ No newline at end of file diff --git a/nacos-producer-8081/src/test/java/org/example/AppTest.java b/nacos-producer-8081/src/test/java/org/example/AppTest.java new file mode 100644 index 0000000..d5f435d --- /dev/null +++ b/nacos-producer-8081/src/test/java/org/example/AppTest.java @@ -0,0 +1,38 @@ +package org.example; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/nacos-producer-8082/pom.xml b/nacos-producer-8082/pom.xml new file mode 100644 index 0000000..a4b2d40 --- /dev/null +++ b/nacos-producer-8082/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + org.example + alibaba-cloud + 1.0-SNAPSHOT + + + nacos-producer-8082 + + + 8 + 8 + UTF-8 + + + \ No newline at end of file diff --git a/nacos-producer-8082/src/main/java/org/example/App8082.java b/nacos-producer-8082/src/main/java/org/example/App8082.java new file mode 100644 index 0000000..791b38e --- /dev/null +++ b/nacos-producer-8082/src/main/java/org/example/App8082.java @@ -0,0 +1,17 @@ +package org.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Hello world! + * + */ +@SpringBootApplication +public class App8082 +{ + public static void main( String[] args ) + { + SpringApplication.run(App8082.class,args); + } +} diff --git a/nacos-producer-8082/src/main/java/org/example/controller/EchoController.java b/nacos-producer-8082/src/main/java/org/example/controller/EchoController.java new file mode 100644 index 0000000..cba274a --- /dev/null +++ b/nacos-producer-8082/src/main/java/org/example/controller/EchoController.java @@ -0,0 +1,18 @@ +package org.example.controller; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/echo") +public class EchoController { + @Value("${server.port}") + private String port; + @GetMapping(value = "/{string}") + public String echo(@PathVariable String string) { + return "Hello Nacos Discovery at " + port+ ":" + string; + } +} diff --git a/nacos-producer-8082/src/main/resources/application.yml b/nacos-producer-8082/src/main/resources/application.yml new file mode 100644 index 0000000..07e3e4d --- /dev/null +++ b/nacos-producer-8082/src/main/resources/application.yml @@ -0,0 +1,14 @@ +server: + port: 8082 +spring: + application: + name: nacos-producer + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 +#management: +# endpoints: +# web: +# exposure: +# include: * \ No newline at end of file diff --git a/nacos-producer-8082/src/test/java/org/example/AppTest.java b/nacos-producer-8082/src/test/java/org/example/AppTest.java new file mode 100644 index 0000000..d5f435d --- /dev/null +++ b/nacos-producer-8082/src/test/java/org/example/AppTest.java @@ -0,0 +1,38 @@ +package org.example; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..14e00d9 --- /dev/null +++ b/pom.xml @@ -0,0 +1,86 @@ + + 4.0.0 + org.example + alibaba-cloud + pom + + nacos-producer-8081 + nacos-producer-8082 + nacos-consumer-8091 + + 1.0-SNAPSHOT + Maven Quick Start Archetype + http://maven.apache.org + + + + UTF-8 + UTF-8 + 1.8 + 2.1.13.RELEASE + Greenwich.SR6 + 2.1.4.RELEASE + + + + org.springframework.boot + spring-boot-starter-parent + 2.1.13.RELEASE + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring.cloud.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring.cloud.alibaba.version} + pom + import + + + + + + + + junit + junit + 3.8.1 + test + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-actuator + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 3.1.0 + + + +