| 组件 | 版本 |
| JDK | 1.8.0_181 |
| IDEA | 2021.1 |
| SpringBoot | 2.0.4.RELEASE |
| SpringCloud | Finchley.RELEASE |
| SpringCloud-alibaba-dependencies | 0.2.2.RELEASE |
| Nacos-server | 2.0.4 |
2. 父级工程pom依赖nacos-server版本:
Nacos针对不同版本的SpingCloud提供不同的依赖,各个版本的对应关系请参考官方文档给出的说明:版本说明
4.0.0 com.hl.magic Think-In-SpringCloudpom 1.0-SNAPSHOT SpringCloud-Nacos-config SpringCloud-Nacos-consumer SpringCloud-Nacos-provider 8 8 1.8 2.0.4.RELEASE Finchley.RELEASE 0.2.2.RELEASE org.projectlombok lomboktrue org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-testtest org.springframework.cloud spring-cloud-dependencies${spring-cloud.version} pom import org.springframework.boot spring-boot-dependencies${spring-boot.version} pom import org.springframework.cloud spring-cloud-alibaba-dependencies${nacos.version} pom import
3.服务提供者 3.1 pom.xml依赖
nacos-service-provider服务提供者项目pom依赖
Think-In-SpringCloud com.hl.magic 1.0-SNAPSHOT 4.0.0 SpringCloud-Nacos-provider服务提供者 org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery
3.2 入口主程序
ProviderApplication.java
package com.hl.magic;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
3.3 controller
package com.hl.magic.service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@RestController
public class TimeController {
@GetMapping("/helloNacos")
public String hellonacos() {
return "hello, nacos! 时间:" + LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
}
}
3.4 application.yaml配置
server:
port: 10003
#nacos配置
spring:
application:
name: nacos-service-provider
cloud:
nacos:
discovery:
server-addr: 192.168.0.103:8848
4. 服务消费者 4.1 pom.xml依赖
nacos-service-consumer服务提供者项目pom依赖
Think-In-SpringCloud com.hl.magic 1.0-SNAPSHOT 4.0.0 SpringCloud-Nacos-consumer服务消费者 8 8 1.8 org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery
4.2 入口主程序
ConsumerApplication.java
package com.hl.magic;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
4.3 controller
package com.hl.magic.controller;
import com.hl.magic.service.TimeService;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.Map;
@RestController
public class FeignController {
private RestTemplate restTemplate;
@Autowired
public void setRestTemplate(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@Bean
@LoadBalanced
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
@GetMapping("/consumer")
public String getMsg() {
return restTemplate.getForObject("http://nacos-service-provider/helloNacos", String.class);
}
}
4.4 application.yaml配置
server:
port: 10002
spring:
application:
name: nacos-service-consumer
cloud:
nacos:
discovery:
server-addr: 192.168.0.103:8848
5. 测试 5.1 启动nacos-server
(启动步骤略)
5.2 启动服务提供者在IDEA中运行ProviderApplication.java入口主程序,在IDEA控制台上看到如下信息是,说明服务提供者已经注册完成。
5.3启动服务消费者在IDEA中运行ConsumerApplication.java入口主程序,在IDEA控制台上看到如下信息是,说明消费者服务已经注册完成。
5.4 查看nacos服务列表 5.5 浏览器访问测试访问服务消费者: http://192.168.0.103:10002/consumer
返回结果如下:



