• nacos配置中心使用


    Nacos不仅可以作为注册中心使用,还可以作为配置中心使用。相比于使用spring-cloud-config-server来说,我们可以不用再去建一个配置文件的git仓库,直接可以在nacos的控制台进行操作,同时配置文件热更新也更为方便,只需要在控制台修改,服务端就更新了。

    1.加依赖

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>

    2.同样的创建bootstrap.yml文件

     

    spring:
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yml
      application:
        name: order
      profiles:
        active: dev

    这样服务启动的时候会去nacos寻找dataIdorder-dev.yml的配置

    3.nacos控制台创建dataId为order-dev.yml的配置

     

     

    DataID就是我们的完整的配置的名字,需要加上yml后缀。

    还有编辑操作可以随时修改、新增配置

    启动服务可以看见加载了order-dev.yml配置的内容

    4.公用配置

    我们还可以通过shared-configs配置公用的的配置,比如注册中心大家都用同一个,redis的也可能是多个服务用同一个配置,修改一下上面的bootstrap.yml文件

    spring:
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yml
            shared-configs: #公用配置文件
              - data-id: common1.yml
                refresh: true #是否支持自动刷新
              - data-id: common2.yml
                refresh: true
    #        extension-configs: #同上
    
      application:
        name: order
      profiles:
        active: dev

    再去nacos配置中心配置dataId为common1.ymlcommon2.yml的配置

     重启服务可以查看日志信息里面加载了common1和common2的配置

    5.配置热更新

    热更新,使用@Value的配置需要在当前的类上面加上@RefreshScope注解,就可以支持热更新了,只需要在nacos配置中心修改了值,服务那边也会跟着进行刷新。(https://nacos.io/zh-cn/docs/open-api.html

    6.nacos内置derby数据库

    Nacos内置了一个Derby数据库这些配置数据都放在里面

    我们可以使用idea链接上derby数据库

     Path是我们的nacos目录下的data/derby-data

    帐户密码就是默认nacos/nacos

    我们的配置信息就在这儿,如果连接不上数据库,把启动的nacos服务停掉再连接就可以了,配置信息在config_info表里面

    我们登录nacos的账号和密码也在USERS表中

     如果要修改nacos的密码,可以直接再这里修改,我们再这里新增一个帐户nijunyang/123456上去,它加密是用的org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder,引入这个类所在的包,直接用starter:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-security</artifactId>
    </dependency>

    将密码加密出来插入到数据库中去:

    再次启动nacos就可以使用新密码去登录了

    完整代码demo:https://github.com/bluedarkni/study/tree/master/cloud-alibaba

  • 相关阅读:
    rabbitmq 安装和配置
    rabbitmq
    Redis Keys 命令
    python pickle模块
    Redis之Python操作
    flask中的g、add_url_rule、send_from_directory、static_url_path、static_folder的用法
    Python 并行分布式框架 Celery
    Celery+python+redis异步执行定时任务
    feed流拉取,读扩散,究竟是啥?
    DNS解析
  • 原文地址:https://www.cnblogs.com/nijunyang/p/14141769.html
Copyright © 2020-2023  润新知