概要

nacos 可以作为服务注册发现中心,也可以作为配置中心,作为配置中心的时候,系统的配置可以做到自动刷新,即当配置服务器的数据发生更改时,客户端的配置会进行自动的更新。

实现步骤

1.修改maven 配置

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

2.增加bootstrap.properties

这个是文件是启用nacos作为配置中心的文件。

 

图标有朵云,表示启用nacos 作为配置中心。

//配置nacos作为配置服务器
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
//配置模式为开发模式
spring.profiles.active=dev
//nacos配资使用yml 作为扩展名
spring.cloud.nacos.config.file-extension=yml
//下面的配置时公共配置,即可以在不同应用之间进行共享。
spring.cloud.nacos.config.shared-dataids=common.yml
spring.cloud.nacos.config.refreshable-dataids=common.yml

 springcloud 是使用配置优先的。

比如我现在有一个应用为:

jpaas-form

系统会按照如下的配置进行查找

1.先找 jpaas-form-dev.yml,如果找到了则返回,如果找不到则进行下一步。

2.查找 jpaas-form.yml 如果找不到,则查找共享的配置,根据上面的配置他会查找common.yml

 

 

 这里配置格式,可以是 yaml 或者 properties

 

3.在程序中使用

@RefreshScope
public class SysSeqIdController extends BaseController<SysSeqId> {

    
    @Value( value = "${user.name}")
    private String username="";

    @Value( value = "${sys.name}" )
    private String uploaddir="";

    @Autowired
    private User user;

@RefreshScope 是实现自动刷新配置。

user.name,sys.name 是配置的参数

可以使用 yml 的格式进行配置。

 

 我们还可以配置对象的方式进行参数进行注入,使用相当方便。

比如:

user:
    name: ray
    address: guangzhou

编写用户代码如下:

@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private String name="";
    private String address="";
}

这样 数据就会自动配置好用户对象,使用下面的代码进行注入。

@Autowired
private User user;

 同样,这个对象在配置中心修改后也能进行自动刷新。

 

4.将数据库配置放到nacos 配置中心。

我们一般将数据库配置,配置到 application.properties 文件中,这有个坏处,当我需要打包时,需要在启动时,指定这些配置,配置会太多。

因此,我们需要将这些配置放置到 nacos ,在启动应用的时候,我们只需要指定 nacos 的地址,这样我们 就可以启动微服务应用。

当数据库配置等需要修改时,我们只需修改naocs的配置即可,不需要修改程序包。

 

nacos配置如下:

 

程序配置中心配置如下:

 

 

 在bootstrap-dev.properties 指定 nacos的配置 nacos-config-dev.properties

 

 在 IDEA 中指定 配置 nacos.address 

 

使用命令行启动微服务

java -jar jpaas-user.jar --nacos.address=192.168.1.10:8848 指定配置中心地址。

 

posted on 2020-04-04 23:19  自由港  阅读(6284)  评论(0编辑  收藏  举报