微服务(三)nacos作为注册中心和配置中心

1:nacos简介

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

可以将nacos理解成服务注册中心和配置中心的组合体,可以实现服务的注册与发现;还可以作为配置中心,实现配置的动态刷新

1.1注册中心原理:

  1. 服务提供者启动时,将自己的服务实例信息(服务名、IP地址、端口号等)发送到Nacos注册中心的数据存储系统中;
  2. 注册中心将服务实例信息存储在自己的数据存储系统中,并会定期向客户端发送心跳以维护与客户端的连接状态;
  3. 服务消费者启动时,向Nacos注册中心查询需要调用的服务列表,并订阅改服务的变更事件;
  4. 当新的服务实例加入或者已有实例下线时,注册中心会通过长连接通知所有订阅服务变更事件的服务消费者;
  5. 服务消费者在收到注册中心的通知后,更新本地的服务列表,并使用负载均衡算法从可用的服务列表中选择一个服务节点进行调用;
  6. 服务提供者会定期(默认5s一次,eureka是30s)向nacos发送心跳请求,当超过一定时间(默认15s,eureka是90s)没有收到服务提供者的心跳包后,就会更新其状态为不健康,如果30s没有收到服务提供者的心跳包,就会将其从服务中剔除;

 2:安装Nacos

Windows系统下安装:

下载地址

Releases · alibaba/nacos (github.com)

 启动很简单,点击bin目录下的startup.cmd启动;启动报错;Unable to start web server;nacos默认启动方式是集群启动;所以我们修改一下启动方式:

 

 

set MODE ='cluster'
//修改成下面
set MODE = 'standalone'

在浏览器打开

 2.1作为注册中心

三步走:

(1)导入与你版本相对应的依赖:

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

(2)配置连接文件:

spring:
  cloud:
    nacos:
      discovery:
        username: nacos
        password: nacos
        server-addr: localhost:8848
        #如果命名空间是默认的public,就不要填写了
        namespace: 

(3)启动类中添加@EnableDiscoveryClient注解

(4)修改从服务中心拉取,gateway多添加一个

 小坑:启动后没有服务,因为我配置文件没有application,添加即可

 (5)网关配置完成

 

1:分别在order中,product中添加依赖,对应版本号;取消之前的yml配置

2:添加如下配置

添加配置:spring: application: name: order-server cloud: nacos: discovery: username: nacos password: nacos server-addr: localhost:8848 namespace:

3:启动类添加@EnableDiscoveryClient注解

启动nacos;

 2.2作为配置中心

简介:用于集中管理应用程序的配置信息。它可以帮助开发者更好的管理应用程序的配置信息,提高应用程序的可维护性和可扩展性。

特点:集中管理:包括应用程序的基本配置、数据库连接信息、日志配置等;

           动态更新:当配置信息发生变化时,Nacos配置中心会及时通知应用程序,使其能够及时更新配置信息;

(1)服务提供方添加依赖:

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

(2)添加一个bootstrap.yml在bootstrap.yml配置

spring:
  cloud:
    nacos:
      discovery:
        username: nacos
        password: nacos
        server-addr: localhost:8848
        namespace:
      config:
        server-addr: localhost:8848
        username: nacos
        password: nacos
        namespace:
        #指定配置群组--如果是Public命名空间,则可以省略群组配置
        group: DEFAULT_GROUP
        #文件名,如果没有配置则默认为服务名
        prefix: product-server
        #指定文件后缀,默认properties
        file-extension: yaml
server:
  port: 9090

(3)在nacos中新建配置:

(4)在nacos中添加对应配置文件,注意Data ID与上述配置的服务名保持一致

(5)编写一个测试:保存

在nacos里就有了一个配置类的项

(6)访问:

(7)动态刷新配置项:在哪里调用就在哪里添加注解

@RefreshScope

 

共享配置文件;

一个项目中服务数量增加后,配置文件相应增加,多个配置文件中会存在相同的配置,那么我们可以将相同的配置独立出来,作为该项目中各个服务的共享配置文件,每个服务都可以通过Nacos进行共享配置的读取

需要共享的配置文件:

2:到idea,yml文件中添加配置:

3:对应的接口:

4:调用成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nacos作为配置中心注册中心,可以实现服务的注册与发现,并且可以作为配置中心,实现配置的动态刷新。作为注册中心Nacos Server可以为服务提供者和服务消费者提供服务注册和发现功能。当服务提供者启动时,它会将自己的服务实例信息发送到Nacos注册中心的数据存储系统中,并定期向客户端发送心跳以维护与客户端的连接状态。而服务消费者在启动时,可以向Nacos注册中心查询需要调用的服务列表,并订阅该服务的变更事件。当新的服务实例加入或已有实例下线时,注册中心会通过长连接通知所有订阅了服务变更事件的服务消费者。这样,服务消费者就可以根据收到的注册中心通知,更新本地的服务列表,并使用负载均衡算法从可用的服务列表中选择一个节点进行调用。所以,Nacos作为配置中心注册中心是一个灵活且功能强大的工具,可以帮助实现服务的注册与发现以及配置的动态刷新。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Nacos 作为服务注册中心 & 配置中心](https://blog.csdn.net/huangjinjin520/article/details/126295961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [微服务nacos作为注册中心配置中心](https://blog.csdn.net/qq_71314862/article/details/129578928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值