记一次使用数据库保存配置的ConfigServer历程

2021/6/19 19:28:42

本文主要是介绍记一次使用数据库保存配置的ConfigServer历程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在使用springcloud时,一般会采用springcloud configserver来获取配置,配置一般是保存在git中。文件的形式,方便修改和查阅,其实也可以将配置保存在数据库中。

查看

 

但是最近在使用新华三私有云时发现一个问题。就是该云自带一个微服务引擎,可以自动创建并部署 Eureka 和ConfigServer 以及GateWay 但是在配置ConfigServer时,发现仅支持配置保存到数据库中,也就是需要填写数据库地址。这跟之前的开发方式并不相同。

于是尝试填写了一个数据库地址,点击创建,发现自动创建了一个数据库 h3c_pring_cloud

里面有几张表:

spring_cloud_config

spring_cloud_gateway

spring_cloud_gateway_jwt

spring_cloud_route_subsidiary

spring_cloud_route_to_subsidiary

 

可以看出spring_cloud_config就是保存配置 的表。表结构如下,

明显可以看出有用的字段是config_key/config_value/application。

因此尝试塞入一条数据,只插入name ,application,config_key,config_value其他的保持为空。

name 设置为 test-app

application设置为test-app-dev

config_key和config_value则是随便设置的

直接使用浏览器访问配置中心。

curl http://localhost:8080/test-app-dev/default/

地址后面跟default的原因是因为不跟的话,会访问不到,即返回错误页面,那为什么要设置成default呢,因为在springboot中如果没有指定spring.profiles.active的话,默认是default

得到结果如下。

没有返回想要的数据。因此在想是不是profile字段的问题,因此将profule字段设置为 default 。这里再设置profile为default时,需要注意

再次执行,还是没有查到任何数据。

这就奇怪了,直接使用sql是可以查到数据的,但是不知道云的自动创建的ConfigServer使用的SQL语句是什么,因为ConfigServer是自动创建的,所以无法查看它的源代码。正在一筹莫展的时候,突然想再让云创建一次数据库,因此,我直接把数据库删除了,然后我在想,这个时候再去访问一次会怎样呢?因此,我再次使用浏览器访问ConfigServer。得到了如下结果。

 

从返回结果中意外得到了创建的ConfigServer的sql语句,从中发现env_id竟然是一个固定值,经过查找,发现该值是在创建微服务引擎时生成的,然后,我就设置数据中env_id字段为该值。重新使用浏览器发起请求,返回结果。

结果依然没有数据,这就郁闷了,看了看剩下为null的字段只有一个label比较可疑了,可是设什么值比较好呢?

为什么会纠结这个问题,在浏览器上访问很方便更改label,但是主要是平时使用一般都是在spring项目中使用,一般都是master。因此,把label设置成了master。

此时访问

curl http://localhost:8080/test-app-dev/default/

得到了数据。



这篇关于记一次使用数据库保存配置的ConfigServer历程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程