直接上代码:
一、提供者provider
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath />
</parent>
<properties>
<spring-boot.version>2.1.4.RELEASE</spring-boot.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
<nacos.version>0.9.0.RELEASE</nacos.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Controller.java
@Value("${server.port}")
private String port;
@GetMapping("/hello")
public String hello() {
return "hello world! i am a provider, my port is " + port;
}
启动类.java
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
application.properties
server.port=8081
spring.application.name=nacos-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
二、消费者
pom.xml 同上
Controller.java
Logger logger = LoggerFactory.getLogger(this.getClass());
private final RestTemplate restTemplate;
@GetMapping("/say/{str}")
public String sayHello(@PathVariable("str") String str) {
logger.info("you are calling " + str);
return restTemplate.getForObject("http://nacos-provider/" + str, String.class);
}
public ConsumerController(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
启动类.java
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
application.proerties
server.port=8082
spring.application.name=nacos-consumer
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
启动说明
- 先配置 nacos server(自行配置,可以参考nacos官网 https://nacos.io/zh-cn/docs/quick-start.html )
- 启动 ProviderApplication.java类
- 启动 ConsumerApplication.java类
- 浏览器中输入 http://localhost:8082/say/hello
原码已经给出,如果还未调试通过,请点击我下载源码工程