一、Nacos服务注册与发现
1.引入依赖
在pom.xml文件中添加以下依赖:
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 2.2.1.RELEASE
2.配置Nacos注册中心地址
在application.yml文件中添加以下配置:
spring: cloud: nacos: discovery: server-addr: localhost:8848 # Nacos注册中心地址
3.启动类上添加@EnableDiscoveryClient注解
在启动类上添加@EnableDiscoveryClient注解,开启服务注册与发现功能。
@SpringBootApplication @EnableDiscoveryClient public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
4.服务提供者注册到Nacos
在服务提供者的application.yml文件中添加以下配置:
spring: application: name: service-provider # 服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos注册中心地址
5.服务消费者从Nacos获取服务
在服务消费者的application.yml文件中添加以下配置:
spring: application: name: service-consumer # 服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos注册中心地址
在服务消费者的代码中,可以使用@LoadBalanced注解实现负载均衡,从Nacos获取服务。
@RestController public class ConsumerController { @Autowired private RestTemplate restTemplate; @GetMapping("/hello") public String hello() { String url = "http://service-provider/hello"; return restTemplate.getForObject(url, String.class); } }
二、Nacos配置中心
1.引入依赖
在pom.xml文件中添加以下依赖:
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.2.1.RELEASE
2.配置Nacos配置中心地址
在application.yml文件中添加以下配置:
spring: cloud: nacos: config: server-addr: localhost:8848 # Nacos配置中心地址
3.创建配置文件
在Nacos配置中心中创建配置文件,例如:dataId为service-provider.yml,内容如下:
server: port: 8081 spring: application: name: service-provider datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root
4.服务提供者从Nacos获取配置
在服务提供者的application.yml文件中添加以下配置:
spring: application: name: service-provider # 服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos注册中心地址 config: server-addr: localhost:8848 # Nacos配置中心地址 file-extension: yml # 配置文件类型 group: DEFAULT_GROUP # 配置分组
在服务提供者的代码中,可以使用@Value注解获取Nacos配置中心的配置。
@RestController public class ProviderController { @Value("${server.port}") private String port; @GetMapping("/hello") public String hello() { return "Hello from " + port; } }
5.服务消费者从Nacos获取配置
在服务消费者的application.yml文件中添加以下配置:
spring: application: name: service-consumer # 服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos注册中心地址 config: server-addr: localhost:8848 # Nacos配置中心地址 file-extension: yml # 配置文件类型 group: DEFAULT_GROUP # 配置分组
在服务消费者的代码中,可以使用@RefreshScope注解实现配置动态刷新。
@RestController @RefreshScope public class ConsumerController { @Value("${server.port}") private String port; @GetMapping("/hello") public String hello() { String url = "http://service-provider/hello"; return restTemplate.getForObject(url, String.class) + " from " + port; } }
以上就是SpringCloudAlibaba中使用Nacos实现微服务的服务注册与发现、配置管理的方法。