一、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实现微服务的服务注册与发现、配置管理的方法。




