所谓配置中心:在微服务的环境下,将项目需要的配置信息保存在配置中心,需要读取时直接从配置中心读取,方便配置管理的微服务工具
我们可以将部分yml文件的内容保存在配置中心
一个微服务项目有很多子模块,这些子模块可能在不同的服务器上,如果有一些统一的修改,我们要逐一修改这些子模块的配置,由于它们是不同的服务器,所以修改起来很麻烦
如果将这些子模块的配置集中在一个服务器上,我们修改这个服务器的配置信息,就可以修改所有子模块的信息,这个服务器就是配置中心
使用配置中心的原因就是能够达到高效的修改各模块配置的目的
Nacos既可以做注册中心,也可以做配置中心
Nacos做配置中心,支持各种格式类型的配置文件
propertiesyaml(yml) xtjsonxml等
amespace:命名空间
group:分组
Service/DataId:具体数据
命名空间
namespace是Nacos提供的最大的数据结构
一个Nacos可以创建多个命名空间(namespace)
一个命名空间(namespace)能够包含多个group
每一个group中又可以包含多条配置信息
在nacos中新建命名空间
在上图连接的位置可以新增命名空间,填写命名空间名称和描述即可
Nacos有默认的命名空间public不能删除和修改
添加命名空间后,我们在Nacos中注册的服务或添加的配置就可以指定命名空间了
因为多个命名空间可以隔离项目,每个项目使用自己的命名空间,互不干扰
分组
一个命名空间中可以有多个分组,进行进一步分离
我们使用时,如果不需要进一步分组,推荐使用group名称:DEFAULT_GROUP
服务或配置
确定了命名空间和分组之后
我们就可以添加服务或配置了
之前我们启动的各种模块都是服务,这些服务都是默认保存在public命名空间中
下面我们主要使用配置中心的功能,在命名空间中添加配置
添加配置就是设置DataId
实际在Nacos中定位一个配置的结构为
Namespace>Group>DataId
完成cart模块的数据库配置信息添加到nacos的操作
启动nacos(建议使用本地nacos,删除配置列表中所有配置信息,再进行添加)
Nacos首页->配置管理->配置列表->添加配置(右侧的大"+"号)
添加cart模块数据库连接配置
我们删除了cart模块原有的连接数据库信息的配置
下面开始,我们尝试连接nacos配置中心,读取数据库配置信息,令cart模块仍然能够正常连接数据库
csmall-cart-webapi模块要读取连接数据库的配置
如果要读取配置中心的信息,首先要添加依赖
如果当前我们使用的SpringCloud版本不是2020.x以后的版本
那么上面添加的依赖会有不一样的情况,要想去了解就要查阅相关资料
像其他程序一样,在添加完依赖之后,还需要添加yml文件的配置
借此机会讲解一下SpringCloud项目的配置文件加载顺序
我们学习过的配置文件大体有application.properties和application.yml两种配置文件添加配置
这两个文件如果同时存在,他们的配置都可以同时生效
但是如果两个文件配置有冲突(对同一个属性配置两次)
那么就要看加载顺序了
- 先加载application.yml
- 后加载application.properties
如果两个配置文件同时设置了同一个属性,后加载的覆盖掉先加载的
在添加上面的pom文件依赖之后,SpringCloud项目就又多了一组配置文件
它们是bootstrap.yml和bootstrap.properties
这组配置文件是SpringCloud项目才能使用的
它的作用是实际开发时,主要配置系统内容,一般都是不轻易修改的
所以这组配置文件的加载时机,整体早于application这一组
一个SpringCloud项目加载配置文件的顺序最终可能如下图
因为配置文件的特性,bootstrap这一组是加载系统配置的
所以我们读取配置中心的配置信息,最好添加在bootstrap.ymlproperties中
下面我们就在cart-webapi项目中resources文件夹中添加bootstarp.yml文件
接上次课读取配置信息的内容
下面我们就在cart-webapi项目中resources文件夹中添加bootstrap.yml文件
如果一切顺利,那么cart模块是可以通过knife4j测试操作连接数据库的
我们可以新增购物车信息,或删除购物车信息后检查数据库是否有对应操作
因为我们已经删除了本地yml文件中数据库的配置,所以,它能连接操作数据库一定是配置中心生效了!
我们现在项目中使用的RPC远程调用技术是Dubbo
实际上除了Dubbo技术之外,还有很多远程调用的方法
它们有些调用的思想都和Dubbo完全不同
Dubbo是SpringCloudAlibaba提供的功能强大的RPC框架
但是Dubbo功能也有限制,如果我们想调用的方法不是我们当前项目的组件或功能,甚至想调用的方法不是java编写的,那么Dubbo就无能为力了
我们可以使用RestTemplate来调用任何语言编写的公开的Rest路径
也就是只要能够使用浏览器访问的路径,我们都可以使用RestTemplate发送请求,接收响应
使用步骤如下
步骤1:
无需添加任何pom依赖和yml文件配置
只需在调用的发起方,也就是使用RestTemplate发起请求的项目配置文件中(指支持@Configuration注解的类或SpringBoot启动类),向Spring容器注入一个该类型对象
所有SpringBoot配置类都可以添加下面代码,我们选择SpringBoot启动类添加如下代码
在CartWebapi启动类中修改
步骤2:
RestTemplate是一个能够发送请求到指定url路径的工具
我们项目中有若干控制器方法,都可以作为它调用的目标
我们可以实现在cart模块运行删除购物车商品的同时减少库存
这样就要求我们stock模块具备一个能够减少库存的控制器方法,
现在这个方法是有的,url为:/base/stock/reduce/count
但是RestTemplate调用时请求以get方法居多,post方法调用代码比较繁琐,所以将现在stock模块减少库存的方法由之前的@PostMapping修改为@GetMapping
步骤3:
回到cart-webapi模块
开始调用
我们可以在当前CartController控制器方法deleteUserCart中
添加RestTemplate的调用,实现库存的减少
发送测试
将相关的模块都启动
NacosSeata
cartstock
调用cart模块删除购物车中的方法
运行后检查对应商品减少库存和购物车中数据的删除效果
如果一切正常证明调用成功了
https://editor.csdn.net/md?not_checkout=1&articleId=
https://editor.csdn.net/md?not_checkout=1&articleId=
https://editor.csdn.net/md?not_checkout=1&articleId=
https://editor.csdn.net/md?not_checkout=1&articleId=
到此这篇配置中心是什么(配置中心如何实现)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qkl-jr/73301.html