SpringCloud 之 Nacos

1、下载安装nacos
下载地址:https://github.com/alibaba/nacos/releases/tag/1.4.1
下载之后解压,到bin目录下运行 startup.cmd 命令
在这里插入图片描述

浏览器输入 localhost:8848/nacos进入Nacos的控制面板
在这里插入图片描述

一、服务注册中心【生产者】

1、导入pom坐标
在父pom中导入一下坐标

			<dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

在子pom中导入坐标

		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

2、 编写application.yml配置文件

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

management:
  endpoints:
    web:
      exposure:
        include: '*'

3、 编写主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class ProviderAlibabaMain9001 {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(ProviderAlibabaMain9001.class, args);
    }

}

服务注册信息如下:
在这里插入图片描述

二、服务注册中心【消费者】

1、 在子pom文件中加入坐标

		<!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

2、 编写application.yml配置文件

server:
  port: 83


spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848


#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
  nacos-user-service: http://nacos-payment-provider

3、 编写主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class OrderNacosMain83 {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(OrderNacosMain83.class, args);
    }

}

4、 编写config配置类,定义使用RestTemplate调用,注意一定要加上@LoadBalanced注解实现负载均衡

@Configuration
public class ApplicationContextConfig {
    
    

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
    
    
        return new RestTemplate();
    }

}

5、 编写控制器类

@RestController
public class OrderNacosController {
    
    

    @Autowired
    private RestTemplate restTemplate;

    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping(value = "/consumer/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Long id)
    {
    
    
        return restTemplate.getForObject(serverURL+"/nacosAli/" + id, String.class);
    }

}

实现效果如下:
myrule
再次刷新可以看到默认使用的是【论循RoundRobinRule】负载均衡
在这里插入图片描述

三、服务配置中心

1、 子pom中进入坐标

		<!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

2、 编写application.yml、bootstrap.yml配置文件
在application.yml文件中主要定义的是对开发模式的配置,全局配置

spring:
  profiles:
    active: dev # 表示开发环境
    #active: test # 表示测试环境
    #active: info

在bootstrap.yml配置文件中主要定义的是此项目的独立配置文件

# nacos配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
        #group: DEV_GROUP
        #namespace: 8ee4bef9-cda8-4ffb-a00c-717b39250302

# Nacos中dataid的匹配规则【组成格式】
# ${
    
    spring.application.name}-${
    
    spring.profile.active}.${
    
    spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml

# nacos-config-client-test.yaml   ----> config.info

注意:一定要在Nacos的图形化界面中定义配置列表,其中定义配置信息
在这里插入图片描述3、 主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClient3377 {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(NacosConfigClient3377.class, args);
    }

}

4、 控制器类,如果需要自动刷新配置需要加上注解@RefreshScope
在这里插入图片描述
当我们修改Nacos中的配置的时候,会自动更新配置到服务中
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44796093/article/details/115217085