微服务——Nacos配置管理

目录

Nacos配置管理——实现配置管理

配置管理实践

 Nacos配置管理——微服务配置拉取

 Nacos配置管理——配置热更新

方式一:

​编辑 方式二(推荐方式):

 Nacos配置管理——多环境配置共享

 优先级问题

  Nacos配置管理——nacos集群搭建

 总结​编辑


Nacos配置管理——实现配置管理

在一个微服务架构的系统中往往会有多台服务器负责不同的微服务。假设配置文件需要做修改,且该配置文件跟数10个微服务关联,则需要逐个去调整配置。并且调整完后还需要重启,生产环境下重启带来影响不可估量。

配置热更新——实现统一修改配置并且立刻生效,需要一个配置管理服务,微服务启动时会去读取该配置管理服务和本地配置结合作为完整配置使用。

微服务——Nacos配置管理_第1张图片

配置管理实践

在nacos端点击配置管理->配置列表右边的+,用来新建配置

Data ID:配置文件名称,通常使用 服务名称-profile.yml ,dev就是生产环境

分组默认即可。

配置内容:用来写需要热更新的内容,不能全部配置都写在这里,通常配置开关逻辑业务类型,给

                true开启,给false关闭.还有诸如日期格式,如果需要变更也可以在这里变更。

微服务——Nacos配置管理_第2张图片

 微服务——Nacos配置管理_第3张图片

 Nacos配置管理——微服务配置拉取

通常的项目运行过程如下微服务——Nacos配置管理_第4张图片

一般来说nacos地址是存在application.yml中,但是现在要在读取本地配置前先读取nacos配置文件,所以要用到bootstrap.yml配置文件,优先级远高于application.yml.因此要把相关信息放到bootstrap.yml中去

微服务——Nacos配置管理_第5张图片 步骤实现

微服务——Nacos配置管理_第6张图片

 在userserver这个服务搞完之后就可以删除相同的配置信息了,如服务名称和nacos服务地址这些都在bootstrap.yml中有了

微服务——Nacos配置管理_第7张图片

 之后要读取到nacos配置并使用

在controller中定义一个测试url,用@Value注解获取配置文件内容,然后规定格式返回一个日期。

微服务——Nacos配置管理_第8张图片

 成功获取到预期格式日期。微服务——Nacos配置管理_第9张图片

 微服务——Nacos配置管理_第10张图片

 Nacos配置管理——配置热更新

方式一:

微服务——Nacos配置管理_第11张图片

 加上注解之后重启项目

微服务——Nacos配置管理_第12张图片

修改日期格式后再次访问有所变化成功实现热更新

微服务——Nacos配置管理_第13张图片 方式二(推荐方式):

这种是约定大于配置的注入方式,只要前缀带有pattern并且属性名和对应的上就可以实现自动注入

微服务——Nacos配置管理_第14张图片

 然后Controller中的代码修改为。

    @Autowired
    private PatternProperties properties;

    @GetMapping("now")
    public String now(){
        return  LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));
    }

 总结:微服务——Nacos配置管理_第15张图片

 Nacos配置管理——多环境配置共享

使用情况:一个配置属性在开发生产测试环境下的值是相同。如果不同环境的下都写或者都要改就过于麻烦。微服务——Nacos配置管理_第16张图片

新建一个userserver.yaml

微服务——Nacos配置管理_第17张图片

现在userserver这个服务可以读到userserver-dev.yaml和userserver.yaml两个配置文件。 

新增加一个属性和一个url接口

   
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
    private String envShareValue;
}


 @GetMapping("prop")
    public PatternProperties properties(){
        return properties;
    }

 启动8081端口的实例作为dev环境,启动8082端口的实例作为test环境。

现在8081的可以读到两个配置文件,8082端口的只能读到一个

微服务——Nacos配置管理_第18张图片

 微服务——Nacos配置管理_第19张图片

 优先级问题

微服务——Nacos配置管理_第20张图片

微服务——Nacos配置管理_第21张图片

  Nacos配置管理——nacos集群搭建

官方给出的Nacos集群图:

微服务——Nacos配置管理_第22张图片

 使用nginx作为负载均衡器之后的集群模式图

微服务——Nacos配置管理_第23张图片

 上个nacos要实现数据共享,这里整了多个mysql的集群,让多个nacos都访问这个mysql的集群完成读写。

这里要先按照资料里面给出的集群方式搭建好环境。

微服务——Nacos配置管理_第24张图片

 此处nginx的配置文件如下所示

	upstream nacos-cluster {
    server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
    }

    server {
    listen       88;
    server_name  localhost;

    location /nacos {
        proxy_pass http://nacos-cluster;
    }
    }

配置文件的地址也要改 

微服务——Nacos配置管理_第25张图片

 重新启动两个实例

微服务——Nacos配置管理_第26张图片

 然后新建一个配置

微服务——Nacos配置管理_第27张图片

 在看到数据库里面就有了这个配置的信息出现了。

先在就做到了三个nacos负载均衡的访问,并且每个nacos都指向同一个数据库了。

微服务——Nacos配置管理_第28张图片

 总结微服务——Nacos配置管理_第29张图片

 跑这个玩意启动一定要一个一个来,并且启动时不要运行idea项目,不然内存直接上天了。

你可能感兴趣的:(微服务,微服务,运维,架构)