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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!