# imageStore **Repository Path**: xiaoerbuer/image-store ## Basic Information - **Project Name**: imageStore - **Description**: #nacos 配置中心地址 nacos.config.server-addr = 10.8.1.78:8848 #服务启动时,使用nacos上的那个环境 nacos.config.namespace = sit #服务在nacos上的注册名称 nacos.config.group = inteplm-main #服务启动时,读取nacos上的哪些数据中心 nacos.config.data-ids - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-25 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nacos概述 ## 1、什么是nacos > Nacos是阿里巴巴[开源项目](https://so.csdn.net/so/search?q=开源项目&spm=1001.2101.3001.7020) “一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台” ### **服务发现** 使用一个注册中心来记录[分布式系统](https://so.csdn.net/so/search?q=分布式系统&spm=1001.2101.3001.7020)中的全部服务的信息,以便其他服务能够快速的找到这些已注册的服务。 image-20220524102035802 ​ 服务调用链路图 ## 2、nacos选型 目前可以做注册中心的组件有eureka,zoomkeeper,consul等,为什么要选择nacos呢? image-20220524111609018 选用nacos的原因如下: 1、Eureka(原生,2.0遇到瓶颈,停止维护) 2、Zookeeper(支持,没有提供丰富的界面操作,不易于管理) 3、Consul(原生,GO语言开发,不易扩展,,没有提供丰富的界面操作,不易于管理) 4、Nacos对于 Spring Cloud Eureka 来说,Nacos 更强大。Nacos = Spring Cloud Eureka + Spring Cloud Config,即 nacos集配置中心和注册中心于一体,并提供服务的界面操作。 ## 3、搭建并使用nacos ### 1、搭建单机版nacos(windows为例) nacos提供是了启动脚本->startup.cmd,直接执行startup.cmd即可。默认的端口是8848 启动以后,可以通过访问http://10.8.1.78:8848/nacos/index.html,登录nacos。nacos的默认的用户名和密码是nacos。 ![image-20220524111609018](http://101.34.215.71/img/image-20220524135726090.png) ### 2、nacos的界面操作 ``` ├── 配置管理 配置中心的配置查询 ├── 配置列表 ├── 历史版本 ├── 监听查询 ├── 服务管理 注册中心的注册服务查询 ├── 服务列表 ├── 订阅者列表 ├── 权限控制 nacos的rbac权限控制 ├── 用户列表 ├── 角色管理 ├── 权限管理 ├── 命名空间 环境的侧写 ├── 集群管理 nacos集群 ├── 节点列表 ``` 从下往上: ##### 集群管理/节点列表 目前使用的nacos是单机版本,使用的内置的数据库derby,集群版较单机版存在高可用的特点,但目前来说单机版nacos已经足够使用。如果搭建集群版nacos,请参考https://blog.csdn.net/ZiXiaFan/article/details/122010864。集群管理下的节点表显示了nacos的可用节点。 ##### 命名空间 在未引入nacos之前,spring提供了侧写->spring.profiles.active来区分当前环境是开发环境、测试环境还是生产环境。 如果是开发环境将修改spring.profile.active=devs;如果是测试环境,修改spring.profile.active=sit。在nacos中可以通过命名空间来区分环境配置,我们已经按照spring的规定来区分环境配置,规定devs是开发环境,sit是测试环境,sitDameng是达梦环境。因此在初次使用nacos之前,新建命名空间,devs,sit,sitDameng等。命名空间是相互隔离的,一套环境只能选择一个命名空间。 以sit环境为例,新建sit命名空间: 1、点击新建命名空间->填写命名空间ID,命名空间名和描述->点击确认 ![image-20220524114724370](http://101.34.215.71/img/image-20220524114724370.png) 2、新建的命名空间可以在‘配置管理/配置列表’和‘服务管理/服务列表’中看见' ![image-20220524135924753](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220524135924753.png) ##### 权限控制 在权限控制中,nacos提供了RBAC模型(基于角色的访问控制)。所以我们可以在创建新的用户时,给用户分配角色,给角色赋予权限,从而控制该用户的访问权限。 ![image-20220524140442530](http://101.34.215.71/img/image-20220524140442530.png) ##### 服务管理 /服务列表 当nacos作为注册中心时,nacos会维持一份注册清单,用以记录“那些服务向注册中心注册了健康的服务”, 服务列表即是用来展示 “那些服务向我注册了”。如在inteplm-sign启动时候,选择sit命名空间,在服务列表的sit列表中就会看见inteplm-sign注册记录。(至于为什么启动inteplm-sign启动后,会出现在nacos的注册清单中,在nacos配置中说明) image-20220524144121185 ##### 服务管理/订阅者列表 inteplm-main存在这样一个场景:在预览签名的时候,inteplm-main会调用inteplm-sign的签名服务。此时inteplm-sign是作为服务的提供者,既然有服务的提供者,就会有对应的服务消费者,服务的消费者在消费服务的时候,就必须先订阅该服务。因此订阅者列表是展示那些服务被订阅了的。 ##### 配置管理/配置列表 Group:又称为分组,Group是命名空间下的概念,一个命名空间下可以有多个组,一个服务只能配置一个命名空间,但是可以有多个组。 Data Id:又称为数据中心,Data Id是组下的概念,一个组下可以有多个Data Id。 创建Group和DataId: 在未引入配置中心前,所有的配置集中存放在application.properties和application-sit.properties文件中。引入配置中心后,所有的配置集中存放在nacos的配置列表中。我们将application.properties和application-sit.properties进行了拆分,通过名称来识别配置文件的作用。 image-20220524145045384 在拆分的过程中,我们考虑到各个服务之间会有一些公用的配置,例如数据库,redis,kafka,因此我们为每个服务分配两个分组。以inteplm-main服务为例,我们创建并分配了inteplm-main分组和DEFAULT_GROUP分组;inteplm-main组下是inteplm-main服务特有的配置,而DEFAULT_GROUP是系统自带的默认的分组,用来存储一些公用的配置。 DataId的创建: inteplm-main组下我们创建了4个Data Id,分别是system-config,business-config,service-call-config,project-manager-config。DEFAULT_GROUP组下创建了一个Data Id ->common-config, 这些数据中心几乎涵盖了application.properties和application-sit.properties文件中的内容。(nacos相关 的配置必须在本地配置文件中指定) (nacos初始化时,这些配置文件可通过导入的方式导入) ##### 配置管理/历史版本 我们可以通过Group 和Data Id查询到某个配置文件的历史版本,并对可以回滚到指定的历史版本。 ##### 配置管理/监听查询 nacos的配置管理下的监听查询,我们也可以看到被监听的内容,MD5码表示被监听的数据集的MD5码。 ## 4、nacos配置 几乎在每个服务中的applicaition.properties文件中都能够看到nacos配置。nacos的配置存放在本地配置文件中。 ## ![image-20220524180012072](http://101.34.215.71/img/image-20220524180012072.png) 重要配置项: #nacos 配置中心地址 nacos.config.server-addr = 10.8.1.78:8848 #服务启动时,使用nacos上的那个环境 nacos.config.namespace = sit #服务在nacos上的注册名称 nacos.config.group = inteplm-main #服务启动时,读取nacos上的哪些数据中心 nacos.config.data-ids = system-config,business-config,service-call-config,project-manager-config #nacos的DEFAULT_GROUP组的命名空间,可不写,则于inteplm-main的命名空间保持一致 nacos.config.ext-config[0].namespace=sit #读取nacos的DEFAULT_GROUP 组的common-config数据中心 nacos.config.ext-config[0].data-id = common-config #注册中心的地址,同nacos的配置中心保持一致 spring.cloud.nacos.server-addr = ${nacos.config.server-addr} #nacos注册中心的用户名 spring.cloud.nacos.discovery.username = nacos #nacos 注册中心的密码 spring.cloud.nacos.discovery.password = nacos #服务启动时,使用nacos上的那个环境,同配置中心使用的环境保持一致 spring.cloud.nacos.discovery.namespace = ${nacos.config.namespace} ## 5、DataId上的配置文件介绍 | | Data Id | Group | 归属应用: | | :--- | :--------------------- | :------------------ | -----------------------------------------------------: | | | common-config | DEFAULT_GROUP | 公共配置(数据库,redis,kafka,rabbit mq,sba) | | | system-config | inteplm-main | inteplm-main系统相关配置 | | | business-config | inteplm-main | inteplm-main 业务相关配置 | | | service-call-config | inteplm-main | inteplm-main 调用轻量化,CAPP,签名,intekey的相关配置 | | | project-manager-config | inteplm-main | inteplm-main 项目管理配置 | | | capp-config | inteplm-capp | capp相关配置 | | | lightweight-config | inteplm-lightweight | 轻量化服务配置 | | | inteplm-adminserver | inteplm-adminserver | springbootAdmin 服务端 | ## 6、OpenFeign的服务调用