当前位置: 首页 > 科技观察

服务配置:服务配置与NacosCore简介_0

时间:2023-03-20 14:57:11 科技观察

我们实现了用户微服务、商品微服务、订单微服务之间的远程调用,实现了服务调用的负载均衡。基于阿里开源的Sentinel,实现了服务的限流和容错,详细介绍了Sentinel的核心技术和配置规则。简单介绍了服务网关,简单说明了SpringCloudGateway的核心架构。项目中还集成了SpringCloudGateway网关,实现通过网关访问后端微服务。同时,基于Sentinel与SpringCloudGateway的集成,实现了网关的限流功能,详细介绍了SpringCloudGateway的核心技术。在链接跟踪章节中,我们简单介绍了分布式链接跟踪技术和解决方案,然后在项目中集成Sleuth实现链接跟踪,并利用Sleuth集成ZipKin实现分布式链接跟踪的可视化。在消息服务章节,我们介绍了MQ的使用场景、引入MQ后的注意事项以及MQ选型对比,在项目中集成了RocketMQ,介绍了RocketMQ的核心技术。本章概述了恶魔之舞(配置分散存储)。当我们的项目采用微服务架构时,原来的单体项目会被拆分成一个个小的微服务。原项目中的配置文件需要存放在各个微服务下。这些配置文件的大部分内容都是相同的,只有少数配置项不同。以数据库配置为例。如果说各个微服务使用的技术栈是一样的,那么各个微服务中数据库的配置也几乎是一样的。区别可能是:数据库连接、用户名和密码。当项目采用微服务架构时,原本在单个项目中的配置文件会分散在各个微服务中。如果不对这些分散的配置文件进行处理,就会导致各种问题。归纳起来,这些问题主要体现在以下几个方面。(1)配置文件分散在各个微服务项目中。随着整体项目的业务越来越复杂,未来会加入更多的微服务项目。随着微服务项目越来越多,分散在微服务中的文件和配置文件也会越来越多,以后很难统一维护和管理。(2)配置文件分散在各个微服务项目中,还有一个很棘手的问题,就是修改配置文件很麻烦。我们需要手动修改每个微服务下的配置文件。一不小心,就会增加微服务项目出错的风险。(3)通常情况下,企业的项目发布环境包括开发环境、测试环境、预发布环境和生产环境。每个环境需要对应不同的配置文件。如果不统一管理这些配置文件,我们每次发布到不同的环境,都需要手动修改各个微服务的配置文件,维护起来也很麻烦。(4)在微服务中,手动修改配置文件后,修改后的具体配置项无法在微服务项目中实时更新。每次修改配置文件,都需要重启微服务项目。无论是从开发角度还是运维角度,都是很不友好的。长期集成(配置中心)基于以上原因,我们绝不允许配置文件长期存放在各种微服务项目中。有没有办法统一存储和管理这些配置文件呢?答案是使用配置中心。这里,冰河先用自己的大话来定义配置中心。配置中心是微服务项目中统一管理和维护项目配置信息的地方。支持配置信息集中存储,对外提供统一接口获取配置,支持各微服务主动调用配置中心接口获取配置。还支持当配置信息发生变化时,配置中心会主动实时通知每个微服务服务配置发生了变化,使其能够同步??最新的配置信息。哎,好听的白话读起来还是有点“官腔”,算了,随它去吧,只要大家看得懂就行。在配置中心的定义中,涵盖了三个重要的内容。(1)配置中心集中管理和维护各个微服务中的配置,并提供统一接口获取相关配置。(2)配置中心支持微服务主动调用配置中心的接口获取配置信息。(3)当配置信息发生变化时,配置中心可以主动实时通知各个微服务服务配置发生了变化,使其能够同步??最新的配置信息。这里,我们还是以商城的微服务为例。引入配置中心后,数据库配置信息如下图所示。可以看出,在微服务中引入配置中心后,配置信息不再存储在各个微服务项目中,无需手动修改各个微服务项目中的配置信息。而是在配置中心统一管理和维护。每个微服务都会调用配置中心的接口获取配置信息。当配置中心的配置信息发生变化时,配置中心会主动实时通知各个微服务获取配置中心的最新配置信息。配置中心解决方案针对项目采用微服务架构后配置文件的存储和管理,业界也提出了很多解决方案,也有很多优秀的项目已经开源。这里有一些给你。配置中心描述了ConsulGoogle基于Go语言开发的支持动态发现服务的配置管理中心服务。Consul内置服务注册和发现功能,实现分布式共识协议,支持Key-Value存储,支持多数据中心。一个支持分布式配置中心的开源Apollo协程。支持修改配置的动态实时效果,对项目的配置进行版本管理,支持配置修改的审计,支持项目的灰度发布。Disconf是百度开源的分布式配置中心。主要是利用Zookeeper实现配置信息的变更,然后实时通知各个微服务,使变更后的配置信息生效。SpringCloudConfigSpringCloud技术栈自带的配置中心组件,支持使用Git仓库存储配置信息,但不支持实时更改配置信息。NacosSpringCloudAlibaba技术栈之一,支持分布式服务注册和发现、服务元数据和流量管理,以及微服务环境下分布式配置中心的组件。使用Nacos可以轻松实现服务注册和发现,以及分布式配置中心功能。Nacos配置中心概念核心概念中文描述概念描述Namespace命名空间主要用于不同环境下的配置隔离,不同的环境会划分不同的命名空间。Group配置分组主要用于将不同的微服务划分到同一个组中。通常,构成整个项目的微服务的配置被分组到同一组中。DataIDConfigurationSetID通常,在系统中,一个配置文件就是一个配置集,它可以包含系统各方面的配置信息。配置集ID是配置集的ID,即配置文件在系统中的ID。