引入SpringCloud Alibaba(多配置集、GateWay)

103 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

加载多配置集

配置相关的如果都放到一个配置文件中会很乱难维护

所以把配置文件进行拆分,spring相关的放spring配置文件,mybatis相关的放mybatis配置文件.......

Nacos也可以做到,所以多配置集我们在Nacos中也可以完成!

1、抽取出多个配置文件

image-20220729095020493

其他配置文件同理

image-20220729095049304

2、bootstrap.properties指定加载多配置集

这里的spring.cloud.nacos.config.extension-configs[0].data-id意思就是说,集合里的元素是一个个数组,数组里有是一个个对象所以第一个元素可以赋值多次

下面配置也是同理

# 配置中心加载配置文件
spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=8c4aa2e1-412b-4992-90d7-b74cf3abbef1
spring.cloud.nacos.config.group=11# 加载多配置集
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=11
spring.cloud.nacos.config.extension-configs[0].refresh=true
​
spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=11
spring.cloud.nacos.config.extension-configs[1].refresh=true
​
spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
spring.cloud.nacos.config.extension-configs[2].group=11
spring.cloud.nacos.config.extension-configs[2].refresh=true

3、测试

我们注释掉所有本地的yml配置并重启进行测试

image-20220729095923691

image-20220729102516969 如上,依然可以加载成功,Nacos做多配置集成功!

总结

微服务任何配置信息,任何配置文件都可以放在配置中心中

线上环境的时候我们可以把所有配置都放在配置中心,微服务中只保留一个bootstrap.properties文件说明加载配置中心哪些配置文件即可

GateWay网关

GateWay网关能对所有请求进行路由转发、权限校验、限流控制等

一、建module引入pom

还是通过SpringInit工程来创建模块,直接选中SpringCloudGateway组件

image-20220730083029280

二、开启服务发现

这里要设置不自动装配数据源

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableDiscoveryClient //开启注册服务发现
public class AchangmallGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(AchangmallGatewayApplication.class, args);
    }
}

三、服发现和配置中心

applicaion.properties指定nacos地址

# 应用名称
spring.application.name=mall-gateway
server.port=88
#服务发现
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

bootstrap.properties 填写配置中心地址

这里写了namespace,需要我们先提前在nacos创建好

spring.application.name=mall-gateway
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=f1212912-c9f6-4323-b9f5-1a7d8d92c5b4

四、nacos创建配置文件mall-gateway.yml

spring:
  cloud:
    gateway:
      routes:
        - id: baidu_route
          uri: http://www.baidu.com
          predicates:
            - Query=url,baidu

        - id: test_route
          uri: http://www.qq.com
          predicates:
            - Query=url,qq

image-20220729124135801