首页 > 其他分享 >8.Nacos

8.Nacos

时间:2023-05-28 19:23:36浏览次数:39  
标签:服务 配置文件 配置 Nacos nacos 修改

9.Nacos

9.1.SpringCloudAlibaba简介

SpringCloudAlibaba致力于提供微服务开发的一站式解决方案。

此项目包含开发分布式应用微服务的必需组件,方便开发者通过SpringCloud 编程模型轻松使用这些组件来开发分布式应用服务。

依托SpringCloudAlibaba,只需要添加一些注解和少量配置,就可以将SpringCloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统

SpringCloudAlibaba开发的组件

image-20230528090357883

SpringCloudAlibaba的版本依赖

https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

image-20230528090754851

9.2.简介

官网: https://nacos.io/zh-cn/

Nacos致力于发现、配置和管理微服务。

Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。

Nacos是构建以“服务”为中心 的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

下面是nacos的一些核心概念

9.2.1.服务(Service)

服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客 户端可以为不同的目的重用(例如通过跨进程的网络调用)。

Nacos支持主流的服务生态, 如KubernetesServicegRPC|DubboRPCService或者SpringCloudRESTfulService

9.2.2.服务注册中心(ServiceRegistry)

服务注册中心是服务实例元数据的数据库。

服务实例在启动时注册到服务注册表,并在关闭时注销。

服务和路由器的客户端查询服务注册表以查找服务的可用实例。

服务注册中心可能会调用服务实例的健康检查API来验证它是否能够处理请求。

9.2.3.服务元数据(ServiceMetadata)

服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规 则、安全策略等描述服务的数据。

9.2.4.服务提供方(ServiceProvider)

服务提供方是指提供可复用和可调用服务的应用方。

9.2.5.服务消费方(ServiceConsumer)

服务消费方是指会发起对某个服务调用的应用方。

9.2.6.配置文件中心(Configuration)

在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立 的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地 和实际的物理运行环境进行适配。

配置管理一般包含在系统部署的过程中,由系统管理员或者 运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。

9.2.7.配置管理(ConfigurationManagement)

在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。

9.2.8.名字服务(NamingService)

提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服务发现和 DNS 就是名字服务的 2 大场景。

9.2.9.配置服务(ConfigurationService)

在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。

9.3.安装与启动

9.3.1.版本选择

https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

image-20230528093932630

9.3.2.下载

Tags · alibaba/nacos · GitHub

1.打开网址之后选择版本

image-20230528093015829

2.点击进去之后选择Windows/Linux版本的压缩包即可

image-20230528093103876

9.3.3.解压以及目录说明

image-20230528095139076

bin:可执行文件夹目录,包含:启动、停止命令等

conf:配置文件目录

target:存放naocs-server.jar

LICENSE:授权信息,Nacos 使用 Apache License Version 2.0 授权

NOTICE:公告信息

9.3.4.修改配置文件

打开conf目录下的application.properties文件

image-20230528095638205

9.3.5.数据导入

以后nacos的所有配置信息、命名空间、配置中心、注册中心等信息都回保存在数据库中对应的表里面。

新建一个数据库:名字为刚才设置的数据库名字,默认为nacos

运行SQL文件:文件在conf目录下,运行名为nacos-mysql.sql的SQL文件image-20230528095856630

9.3.6.启动

运行bin目录下的startup.cmd文件即可

默认的运行方式为集群(cluster)模式,可以修改里面的文件改为单机(standalone)模式

image-20230528100639883

也可以使用带参数的方式运行为单机模式:startup.cmd -m standalone

9.3.7.访问测试

http://localhost:8848/nacos/#/login

默认的账号密码都是:nacos

可以在user表里面查看/修改,密码加密规则为BcryptPasswordEncoder

image-20230528101046844

9.4.使用Nacos做注册中心

image-20230528102026671

9.4.1.新建命名空间

image-20230528104245882

image-20230528104407332

9.4.2.搭建Nacos-client-a与Nacos-client-b

①创建项目

这里修改为:start.aliyun.com

image-20230528102512790

②选择依赖

NacosServiceDiscovery为nacos的注册中心依赖

image-20230528102600469

image-20230528102958294

③修改启动类

image-20230528105116676

④修改配置

image-20230528105145647

9.4.3.访问测试

http://localhost:8848/nacos/#/serviceManagement

image-20230528105427608

9.4.4.服务发现

创建一个controller类

serviceId为要访问的服务名称

image-20230528110602265

依次进行修改访问测试:http://localhost:8001/test

image-20230528110701674

先不修改命名空间进行访问,结果为instance是空,说明不能跨命名空间

修改命名空间和b的一样,但组名不一样,结果为instance是空,说明不能跨组

修改命名空间、组和b的一样,结果为instance是1,说明在同一个命名空间和一个组内可以进行服务发现

9.4.5.集成Feign做远程调用

①修改Nacos-client-b

添加一个controller

image-20230528111839580

②修改Nacos-client-a

修改pom.xml

image-20230528112133523

修改启动类

image-20230528112329584

添加feign类

image-20230528112441564

修改controller类

image-20230528112551717

③访问测试

http://localhost:8001/test,出现张三访问成功即为成功

9.4.6.集成Gateway做网关

搭建gateway

①选择依赖

image-20230528112940174

image-20230528113044517

②修改配置文件

image-20230528113409317

③修改启动类

image-20230528113737409

④访问测试

http://localhost/nacos-client-a/test,出现张三访问成功即为成功

9.4.7.更多配置项

image-20230528115247521

9.5.Nacos配置文件中心

使用SpringCloudAlibabaNacosConfig,可基于SpringCloud的编程模型快速接 入Nacos配置管理功能。

9.5.1.新建配置中心

image-20230528161323489

image-20230528161412432

9.5.2.搭建nacos-config

①选择依赖

nacosConfiguration为配置中心依赖

image-20230528161616782

②创建controller

image-20230528165449969

③修改配置文件

将配置文件改为bootstrap.yml,必须叫这个名字

image-20230528164454824

④访问测试

注意:配置中心和注册中心的命名空间要一直才能获取到信息

http://localhost:8003/config

image-20230528164442757

9.5.3. 测试配置文件的动态刷新

修改配置中心中的配置

image-20230528165559790

直接访问测试,不需要重新启动项目:http://localhost:8003/config

image-20230528165628575

9.5.4.配置文件回滚

image-20230528165810828

最上面的是最新的

选择回滚的配置,确定回滚

直接访问测试,不需要重新启动项目:http://localhost:8003/config

image-20230528170028897

数据库中的历史版本,会保存30天

image-20230528170106913

9.5.5.配置文件的读取方式

nacos配置中心通过namespacedataIdgroup来唯一确定一条配置。

Namespace:命名空间,默认的命名空间为public,可以在Nacos控制台中新建命名空间;

dataId:配置文件名称,格式为

  • ${prefix} - ${spring.profiles.active} . ${file-extension}
    
  • prefix :默认为spring.application.name的值,也可以通过配置项spring.cloud.nacos.config.prefix配置

    spring.profiles.active:当前环境对应的profile

    • spring.profiles.active为空时,对应的连接符-也将不存在,dataId的拼接格式变成${prefix}.${file-extension}

    file-extension:配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension配置。

group:配置分组,默认为DEFAULT_GROUP ,可以通过spring.cloud.nacos.config.group配置。

在写 dataId 的时候一定要添加文件类型后缀,否则会出现访问不到的问题

9.5.6.读取多个配置文件

image-20230528173321253

Nacos配置中心的namespacedataIdgroup可以方便灵活地划分配置。

①新建两个配置

image-20230528175255460

image-20230528173736542

②修改配置文件

image-20230528175526987

③修改controller

image-20230528175505075

④访问测试

http://localhost:8003/config

image-20230528175539106

⑤测试动态刷新

修改nacos-config-a.ymlnacos-config-b.yml

访问测试:http://localhost:8003/config

image-20230528175658359

image-20230528175733165

9.5.7.常用配置

image-20230528191146890

9.5.8.本地和远端的配置文件需要写什么

本地(bootstrap.yml)

  1. 应用名称
  2. 注册中心地址
  3. 读取的配置文件名称信息

远端(配置中心)

  1. 端口
  2. 数据源
  3. redis
  4. mq
  5. mybatis
  6. Swagger......

为了方便去动态刷新和修改

标签:服务,配置文件,配置,Nacos,nacos,修改
From: https://www.cnblogs.com/Myvlog/p/17438699.html

相关文章

  • docker部署nacos集群
    1.环境准备准备4台服务器,一台安装nginx和mysql另三台做集群使用IP服务操作系统192.168.3.215Nginx/MysqlCentOS7.9192.168.3.216Nacos-1CentOS7.9192.168.3.217Nacos-2CentOS7.9192.168.3.218Nacos-3CentOS7.9     mysql选用5.7......
  • 使用 Nacos 的配置功能和自动更新
    Nacos不但可以作为注册中心,同时也可以作为配置中心,方便我们对SpringCloud中的各个SpringBoot微服务的配置进行统一的管理维护。尤其是当微服务数量较多,并且在不同的服务器上进行部署时,使用配置中心进行统一管理维护的优势就更加明显。本篇博客仍然使用之前搭建的Nacos集群......
  • nacos的使用
    nacos的使用1.nacos可以作为注册中心和配置中心使用nacos的配置中心和注册中心的话,我们需要在配置文件中增加关于nacos的配置namespace,group可以不写,那么就是注册到默认的namespace和group下,不同namespace和group下是隔离开来的 2.如果我们只是想要注册到na......
  • Netty+Nacos+Disruptor自研企业级API网关-江潭落月复西斜
    Netty+Nacos+Disruptor自研企业级API网关download:3w51xuebccom使用Netty和SpringBoot实现仿微信的示例在本文中,我们将使用Netty和SpringBoot框架来创建一个简单的聊天应用程序,类似于微信。这个应用程序将支持多用户聊天和即时消息发送。下面让我们来一步步看看如何实现。第一步......
  • centos7上配置nacos及开机启动服务
    这里安装的是nacos2.2.0 https://github.com/alibaba/nacos/releasescentos7中需要配置java环境这里一般java1.8或1116都行sudoyumupdate#安装OpenJDK(JavaDevelopmentKit):#对于Java8:sudoyuminstalljava-1.8.0-openjdk#对于Java11:sudoyuminstalljava-1......
  • Linux上nacos启动成功,但网页无法加载
    Linux上nacos启动成功,但网页无法加载1、docker查询dockerps2、查询firewall防火墙是否打开8848端口firewall-cmd--query-port=8848/tcp若是返回yes则是打开,若是返回FirewallDisnotrunning则先打开防火墙。systemctlstartfirewalld.service3、打开8848端口f......
  • nacos开发中的坑
    nacos中的坑当不同开发者共用同一个nacos服务的时候,会导致在测试接口的时候出现404轮询的问题,因为开发者甲在调试A服务中的B功能接口,在乙开发者调试A服务中没有B功能的接口;所以导致出现404轮询的问题,下面是图解......
  • 记一次windows装docker,然后nacos连接宿主机mysql报错问题
    之前一直用linux装docker,这两天有空研究下windows上装DockerDesktop。安装步骤就不一一细说了,记录几个容易忘得地方。设置docker镜像存储位置//打包现有镜像wsl--exportdocker-desktop-data"D:\\work\\other-tools\\docker\\docker-desktop-data.tar"//注销镜像wsl--......
  • linux安装并启动nacos
    前提准备下载最新稳定版本,此处以nacos-server-2.1.0.tar.gz版本为例安装下载地址:https://github.com/alibaba/nacos/releases 二、具体步骤2.1下载完成后解压:tar-zxvfnacos-server-2.1.0.tar.gz2.2将解压文件移动到/usr/local目录下mvnacosnacos-2.1.0cd/usr/local/......
  • 注解中动态获取nacos值【attribute value must be constant】
    nacos中配置环境参数env:es:dev注解中添加参数信息@Data@IndexName(value="#{@envEs}")publicclassEsInfo{privateLongid;}添加配置文件获取配置数据@ComponentpublicclassEnvEsConfig{@Value("${env.es}")privateStringenvEs;@Be......