spring cloud 中nacos的作用

spring cloud 中nacos和getway的作用

Nacos

nacos作用:

在基于spring Cloud Alibaba的微服务框架中,nacos组件起到注册中心和配置中心的作用。
微服务系统一方面可以通过Nacos动态地感知并管理诸多业务模块,另一方面还可以通过Nacos管理全局性的配置参数。

nacos的使用:

Nacos组件往往会以高可用集群的形式对外提供服务,这样一旦单个Nacos失效,其它Nacos能继续对外提供服务。

微服务知识:

微服务角色有 “服务提供者” 和 ‘f服务调用者’。服务调用者会调用封装在服务提供者模块中的业务方法。
为了正确地调到服务,服务调用者需要知道所调用方法的IP地址、端口号和方法名等关键信息。
比较容易的办法是以静态文件的形式存储这些信息,但是这样两者的依赖性比较强,服务提供方的服务方法的各种信息可能会变更,变更后就需要修改静态文件,维护成本高,解决方法用nacos动态管理诸多服务方法

nacos配置中心

系统在运行时,往往会读取一些配置参数,在spring cloud 微服务架构中,一般通过nacos等组件搭建配置中心,用统一的方式来管理各种配置参数。
新建配置示例
Data ID:新增配置参数的ID
group: 配置参数所属模块
“Data ID“和“Group”这两者是参数的“唯一标识符”。也就是说,通过指定的“Data ID“和“Group”,能定位到唯一的一组配置参数。
完成后向nacos配置中心发布刚才所设置的配置参数即可生效。
引入nacos配置中心依赖包

 <dependency>
            <groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.1</version>
        </dependency>

在启动类中通过@NacosPropertySource注解,说明了该Spring Boot项目将会从Nacos配置中心里,读取groupId为RiskModule、dataId为retryTimes的配置参数。

@NacosPropertySource(dataId = "retryTimes", groupId = "RiskModule",  autoRefreshed = true)

在application.properties配置文件里,指定Nacos配置中心的IP地址和端口号

在控制类里,可以通过@NacosValue注解,读取参数名为readRetryTimes和writeRetryTimes的参数,

这样做的优点

在发布和管理项目时,运维人员能在配置中心里统一的管理诸多业务模块中的参数,有效避免配置参数遗漏和管理混乱等问题。
程序员能用统一风格读取参数,提升项目的可读性和可维护性。

spring boot 整合nacos注册中心

一方面,服务提供者可以向Nacos注册中心注册注册对应的服务方法,另一方面,服务调用者能从Nacos注册中心查找所调用方法的IP地址、端口号和服务名等信息,并在此基础上调用对应的方法。
nacos还可以动态的加入新的服务方法,剔除已失效的服务方法。

图片:三者关系
作为服务提供者的Spring Boot项目在启动时,会根据配置,主动向Nacos注册中心注册服务,
作为服务消费者的Spring Boot项目在调用服务时,会先从Nacos注册中心查找服务对应的IP地址和端口号等细节,在此基础上完成服务的调用动作。

服务提供方配置

引入spring cloud

        <dependency>
                <groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
              <version>2.2.1.RELEASE</version>
                <type>pom</type>
              <scope>import</scope>
          </dependency>

引入nacos

      <dependency>
           <groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
       </dependency>

通过启动类中添加**@EnableDiscoveryClient**注解,说明本类将向在配置文件里定义的Nacos注册中心注册服务。
在application.properties 文件中指定本项目将会向工作在某个端口的nacos注册服务。

spring.application.name=nacosProvider
nacos.discovery.server-addr=127.0.0.1:8848
服务消费者

启动类依然需要被**@EnableDiscoveryClient**修饰,指定本项目会和nacos注册中心交互。
在方法中发出的url请求会从注册中心里赵大鹏提供该服务主机的ip地址和端口,并据此调用服务方法。
同样需要在application.properties 中指定待交互的nacos注册中心的IP地址和端口号。

nacos集群

如果Nacos组件是以单机版的形式对外提供注册中心和配置中心的服务,那么当这台Nacos服务器出现故障时,就会出现“服务不可用”和“无法取到配置参数”等严重问题。
为了提升系统的可用性,在一些项目里往往会以集群的方式搭建Nacos集群,这样一旦集群中有Nacos服务器出现故障,那么其它服务器依然能对外提供服务,这样就能提升系统的可用性。

nacos持久化

nacos持久化:把服务列表和配置参数等信息保存到数据库里,当nacos服务重启时,就能从数据库里读取到之前保存的信息,从而能保证数据不丢失。
核心步骤:在MySQL客户端中新建nacos库,并在其中运行nacos-mysql.sql文件里的数据库脚本。运行效果 在nacos数据库里创建了若干个数据表。

搭建集群
  1. 把包含nacos组件的目录复制两份
  2. 在application.properties 配置文件中加入持久化配置参数,并且通过代码指定nacos的工作端口
  3. 在conf子路径中创建一个cluster.conf的配置文件,在其中配置集群中的节点信息
  4. 打开startup.cmd文件 通过以下代码设置nacos的启动模式为“集群”。
set MODE="cluster"

nacos常见面试题

简述Nacos注册中心的作用

首先呢nacos作为区别与服务提供者和服务消费者之外的第三方,隔离了两者之间的业务细节,也就是说当服务提供者内部一些方法名参数更改或者增加时,服务消费者并不会直接的受到其的影响也不需要更改请求,而是通过向注册中心重新拉取服务提供方的服务列表来完成同步。

简述Nacos配置中心的作用
请说明Nacos以集群方式对外提供服务时的优势
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值