Nacos服务发现功能的简单使用及基础配置

 基础环境

此处采用cloud的Hoxton.SR12版本,对应使用Spring Boot 的2.3.12.RELEASE版本,cloud alibaba的2.2.7.RELEASE版本 ,此版本cloud alibaba对应的nacos为2.0.3版本,更多版本对应信息可以上github的cloud alibaba观看说明

链接 版本说明 · alibaba/spring-cloud-alibaba Wiki (github.com)

1.nacos下载

打开github搜索nacos,alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. (github.com)点击tags找到对应版本

点击download下载,此处用windows演示,下载zip压缩文件(源码文件需要自己打包后才能使用)linux可下载tar.zip上传后使用命令tar -zxvf 文件名   进行解压

 下载后解压并打开bin文件夹

两种运行方式

1.在此文件夹打开控制台,windows运行./startup.cmd -m standalone命令

linux执行命令./startup.sh -m standalone  (-m standalone表示以单机模式启动)

2.双击startup.cmd运行(适用于windows),但是由于nacos默认是以集群方式启动,启动时nacos会去寻找集群,但是寻找不到就会启动失败,我们需要将启动模式更改为单机模式,此时我们可以用编辑器打开startup.cmd文件,搜索mode

 将Mode改为standalone并保存

 此时我们双击startup.cmd启动nacos成功运行并打印“nacos is starting with standalone”

 根据nacos提示我们打开nacos的页面http://localhost:8848/nacos,此处账号密码均为nacos

 进入nacos首页,默认命名空间(简单理解为项目之间的隔离,不同的命令空间的服务不能相互调用)为public

2.开发springboot服务并注册进nacos

首先新建springboot项目,添加依赖

   //指定cloud alibaba版本 
   <properties>
        <java.version>1.8</java.version>
        <spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>
    </properties>   
    //管理cloud alibaba版本
   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
     //此处为nacos真正的依赖,由于制定了cloudalibaba的版本,因此我们不用特定寻找指定nacos的版本
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

 编写controller(非必要)peizh

/**
 * @Author: 十里桃林
 * @Date: 2023/1/8
 * @Time: 21:53
 * @Description:
 */
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "hello nacos";
    }
}

配置文件中设置服务名(必要步骤,注册到nacos后,nacos以服务名作为区分) ,设置nacos的连接地址

#服务名设置
spring.application.name=nacos-test
#端口设置
server.port=8081
#nacos服务中心的地址
spring.cloud.nacos.server-addr=http://localhost:8848/
#nacos服务发现注册地址,默认取值${spring.cloud.nacos.server-addr}
spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr}

 启动类加
上注解@EnableDiscoveryClient,表示开启服务发现客户端功能

 最后启动项目,提示我们服务nacos-test注册之nacos已完成,默认注册到的分组为default_group

我们进入nacos服务管理页面刷新,可以发现服务确实已经注册成功,并且服务名为我们配置文件中设置的nacos-test,默认命名空间public,默认分组default_group

 最后测试项目是否可以正常访问,localhost:8080/hello

 3.最后介绍几个nacos服务发现常见的配置(为了方便换成了properties)

#服务名设置
spring.application.name=nacos-test

#nacos服务中心的地址
spring.cloud.nacos.server-addr=http://localhost:8848/
#nacos服务发现地址,默认取值${spring.cloud.nacos.server-addr}
spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr}
#此处默认取值为${spring.application.name},自动取服务名作为nacos中的服务名
spring.cloud.nacos.discovery.service=nacos-test
#是否开启nacos服务发现功能,默认开启
spring.cloud.nacos.discovery.enabled=true
#分组设置,默认即DEFAULT_GROUP
spring.cloud.nacos.discovery.group=DEFAULT_GROUP
#命名空间设置,默认public
spring.cloud.nacos.discovery.namespace=public

#该服务向nacos服务端发送心跳的间隔,单位为毫秒,默认30秒(用以监听服务是否还存活)
spring.cloud.nacos.discovery.heart-beat-interval=1000
#该服务在停止向nacos发送心跳后,服务状态从健康到不健康的时间
spring.cloud.nacos.discovery.heart-beat-timeout=3000

注意心跳时间需要小于超时时间,否则将会抛出异常

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nacos动态配置原理是基于分布式系统中心化的服务管理和配置管理的基础之上,将服务与其所需的信息(如配置、元数据等)分离开来,从而实现服务的高效和高可用性。 在Nacos中,服务的信息通常是以配置中心的形式进行存储和管理的,而配置中心则是由配置服务和注册中心两部分组成的。简单来说,配置服务负责处理应用程序的配置信息,而注册中心则负责管理服务的注册和发现。 在配置服务方面,Nacos提供了一些强大的特性,如细粒度的配置管理、动态更新和灵活的配置模板等。在动态更新方面,Nacos采用了和注册中心相同的一致性协议来保证所有节点都可以在实时更新时获取到最新的配置信息。此外,Nacos还提供了配置分组、配置版本管理等高级功能,方便开发者进行更加细致的配置调整。 在注册中心方面,Nacos的架构和其他分布式系统的注册中心类似,每个服务节点都会向注册中心注册自己的信息,以便其他节点在需要时可以通过注册中心来发现并连接到这些服务Nacos目前支持多种服务注册和发现方式,包括面向服务的架构(SOA)和云原生架构等。此外,Nacos还提供了大量的API和SDK,以便开发者灵活地集成和使用Nacos的特性。 总之,Nacos动态配置原理的实现是基于一系列分布式系统的核心功能和特性,如服务注册、发现配置管理和协调等基础设施,从而使得开发者可以更加高效地进行服务管理和开发,提高应用程序的可靠性和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值