当前位置:网站首页 > 去中心化金融(DeFi) > 正文

配置中心有哪些(配置中心的主要作用)



所谓配置中心:将项目需要的配置信息保存在配置中心,需要读取时直接从配置中心读取,方便配置管理的微服务工具

我们可以将部分yml文件的内容保存在配置中心

一个微服务项目有很多子模块,这些子模块可能在不同的服务器上,如果有一些统一的修改,我们要逐一修改这些子模块的配置,由于它们是不同的服务器,所以修改起来很麻烦

如果将这些子模块的配置集中在一个服务器上,我们修改这个服务器的配置信息,就相当于修改了所有子模块的信息,这个服务器就是配置中心

使用配置中心的原因就是能够达到高效的修改各模块配置的目的

Nacos既可以做注册中心,也可以做配置中心

Nacos做配置中心,支持各种格式类型的配置文件

propertiesyaml(yml) xtjsonxml等

namespace:命名空间

group:分组

Service/DataId:具体数据

命名空间

namespace是Nacos提供的最大的数据结构

一个Nacos可以创建多个命名空间

一个命名空间能够包含多个group

每一个group中又可以包含多条配置信息

在nacos中创建命名空间

在上图连接的位置可以新增命名空间,填写命名空间名称和描述即可

Nacos有默认的命名空间public不能删除和修改

添加命名空间后,我们在Nacos中注册的服务或添加的配置就可以指定命名空间了

因为多个命名空间可以隔离项目,每个项目使用自己的命名空间,互不干扰

分组

一个命名空间中可以有多个分组,进行进一步分离

我们使用时,如果不需要进一步分组,推荐使用group名称:DEFAULT_GROUP

服务或配置

确定了命名空间和分组之后

我们就可以添加服务或配置了

之前我们启动的各种模块都是服务,之前都是默认保存在public命名空间中

下面我们主要使用配置中心的功能,在命名空间中添加配置

添加配置就是设置DataId

实际在Nacos中定位一个配置的结构为

Namespace>Group>DataId

Nacos首页->配置管理->配置列表->添加配置(右侧的大"+"号)

添加cart模块数据库连接配置

csmall-cart-webapi模块要读取连接数据库的配置

如果要读取配置中心的信心,首先要添加依赖

如果SpringBoot版本不是2.5.x,匹配的SpringCloud版本不是2020.x

可能添加的依赖不同,尤其是加载系统配置的依赖

需要根据实际的SpringBootSpringCloud版本来变化

像其他程序一样,在添加完依赖之后,还需要添加yml文件的配置

我们使用过application.properties和application.yml两种配置文件添加配置

实际上这两个配置文件加载是有顺序的

先加载yml

后加载properties

如果两个配置文件同时设置了同一个属性,后加载的覆盖掉先加载的

在SpringCloud环境下,我们添加了加载系统配置的依赖,当前项目就支持了额外一组配置文件

它们是bootstrap.yml和bootstrap.properties

这组配置文件实际开发时,主要配置系统内容,一般都是不轻易修改的

所以这组配置文件的加载时机,整体早于application.properties这一组

一个SpringCloud项目加载配置文件的顺序最终可能如下图

因为配置文件的特性,bootstrap这一组是加载系统配置的

所以我们读取配置中心的配置信息,最好添加在bootstrap.ymlproperties中

下面我们就在cart-webapi项目中resources文件夹中添加bootstarp.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:

我们配置了cart模块具备了调用其它控制器方法的功能

我们可以实现在cart模块运行删除购物车商品的同时减少库存

这样就要求我们stock模块具备一个能够减少库存的控制器方法,现在这个方法是有的url为:

/base/stock/reduce/count,但是这个控制器请求的方法是@PostMapping,RestTemplate只能直接get方法调用目标,所以我们将stock-webapi模块的StockController中减少库存方法的的注解修改为@GetMapping

步骤3:

回到cart-webapi模块

开始调用

我们可以在当前CartController控制器方法deleteUserCart中

添加RestTemplate的调用,实现库存的减少

步骤4:

发送测试

将相关的模块都启动

cartstock

调用cart模块删除购物车中的方法

运行后检查对应商品减少库存和购物车中数据的删除效果

如果一切正常证明调用成功了

简单来说

Web服务器就是一个能够接收http请求并作出响应的java程序

webServer项目(二阶段项目)就是一个我们手写的Web服务器

我们现在开发的标准SpringBoot项目启动时内置的Web服务器叫Tomcat

实际上我们业界中还有很多Web服务器,它们具备很多不同的特征

网关Gateway项目使用Netty服务器,Netty服务器内部是NIO的所以性能更好

下图以Tomcat为例,解释请求响应流程

大多数情况我们会使用Tomcat作为Web服务器

它是我们请求响应流程中的核心组件

Tomcat是也有缺点

常规情况下,一个tomcat并发数在100多一点

一般情况下,一个网站要1000人在线,并发数是2%~5% 也就是20~50并发

如果需要一个支持更高并发的服务器,就是需要使用Nginx

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

又小又快

Nginx快速的原因

Nginx内部是一个主进程(Master)多个工作进程(Worker)

Master负责统筹管理配置和Worker的分工

Worker来负责处理请求,作出响应

而且使用非阻塞式的,异步的

简单来说,就是一个Worker接到一个请求后,对请求进行处理,处理后在响应返回前,这个Worker还会处理别的请求,直到请求返回响应时,才会处理响应,也就是Worker这个进程全程无阻塞

要想了解反向代理,首先了解正向代理

正向代理,当我们访问的目标服务器无法连通时,可以借助代理服务器,间接访问该目标服务器

关系类似于生活中的介绍人

而反向代理的模式为下图

请求反向代理服务器的特点是,我们请求的是代理服务器的地址,真正提供服务的服务器地址我们不需要知道,这样做的好处是反向代理服务器后可能是一个集群,方便负载均衡

有点类似于生活中的代理人,有什么事情直接找这个人就能完成需求,它怎么完成的我们不用管

实际开发中,Nginx可以用于反向代理服务器,

实际处理请求的是Tomcat服务器

因为Nginx优秀的静态内容并发性能

我们常常使用它做静态资源服务器

在Nginx中保存图片,文件视频等静态资源

经常和FastDFS组合使用

Nginx和Gateway的区别

首先明确Nginx和Gateway并不冲突

他们都是统一入口的概念,它们可以同时开启

也可以开启其中一个

只不过Nginx不属于java程序,而Gateway是java程序

Nginx是服务器程序我们不可编辑,

Gateway是我们自己创建的项目,依赖和配置都由我们自己完成

最终如果想做反向代理服务器,就使用Nginx

如果是微服务项目的网关就是Gateway

SpringMvc拦截器是SpringMvc框架提供的功能

它可以在控制器方法运行之前或运行之后(还有其它特殊时机)对请求进行处理或加工的特定接口

这个拦截器的编写是典型的A(Aspect)OP思想的体现

在我们现有的控制器方法运行前后进行代码的维护和切面的通知

过滤器和拦截器的区别:

 如果请求的目标能确定是一个控制器方法,优先使用拦截器

 如果请求的目标可能是其他静态资源,那么就需要使用过滤器

拦截器工作流程图

在cart-webapi模块中创建一个包

包名建议叫interceptor

创建拦截器类DemoInterceptor

然后要配置拦截器的拦截目标

需要在spring配置类中编写

在config包中创建InterceptorConfig类

简介:

Mybatis框架提供的一个功能

能够在Mapper接口方法运行之前或之后添加额外代码的功能

之前我们通过设置,实现将运行的sql语句输出到控制台的效果,就是拦截器实现的

我们也可以简单的进行一个类似的演示

首先,要想能够成功的拦截Mybatis中mapper运行的sql语句

需要先在Spring中设置相关的代码

步骤1:编写拦截器

步骤2:

将拦截器设置在SpringBoot框架下使其生效

config包中MyBatisConfiguration添加代码

MybatisPlus

MybatisPlus是一个国内的团队在Mybatis框架基础上新增了一些功能的框架

MybatisPlus新增的功能主要两方面

1.提供的代码生成器

可以根据指定的数据库表,自动生成基本的实体类控制器业务层持久层的相关文件

2.自动提供基本增删改查方法的默认实现

Oauth2.0

是一个授权框架

类似一个授权协议标准

我们常用的扫码登录就是Oauth2标准下的功能

到此这篇配置中心有哪些(配置中心的主要作用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • pivas静脉配置中心工作总结(静脉配置中心工作流程及注意事项)2025-05-24 12:18:09
  • 静脉药物配置中心的定义(静脉药物配置中心的工作流程)2025-05-24 12:18:09
  • 肃州区人力资源配置中心(肃州区人力资源配置中心地址)2025-05-24 12:18:09
  • 肃州区人力资源配置中心代理部(肃州区人力资源配置中心代理部主任)2025-05-24 12:18:09
  • 城厢区公共资源配置中心官网(城厢区公共资源配置中心官网首页)2025-05-24 12:18:09
  • pivas静脉配置中心工作流程(静脉配置中心的工作内容)2025-05-24 12:18:09
  • cnn是哪个国家的新闻媒体中心(cnn是什么新闻媒体)2025-05-24 12:18:09
  • 静脉配置中心是哪个部门(静脉配置中心是哪个部门负责)2025-05-24 12:18:09
  • pivas静脉配置中心个人心得(静脉配置中心心得体会)2025-05-24 12:18:09
  • 配置中心(静脉药物配置中心)2025-05-24 12:18:09
  • 全屏图片