Nacos注册中心概述、服务注册、分级存储模型及环境隔离

简介: Nacos注册中心概述、服务注册、分级存储模型及环境隔离

一、Nacos概述


       Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。


Nacos官网:



   Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。


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


       Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。


二、服务注册到Nacos


Nacos服务搭建根据系统的不同进行搭建!!!


1、在cloud-demo父工程中添加spring-cloud-alibaba的管理依赖:


            <!--nacos的管理依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>


2、注释掉order-service和user-service中原有的eureka依赖,没有的略过


3、添加nacos的客户端依赖:


        <!-- nacos客户端依赖包 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>


4、修改user-service&order-service的application.yam文件,注释eureka地址,添加nacos地址:


spring:
    cloud:
        nacos:
            server-addr: localhost:8848 #nacos 服务端地址


5、启动并测试:



三、Nacos服务分级存储模型


1、一级是服务,例如userservice


2、二级是集群,例如杭州或上海


3、三级是示例,例如杭州机房的某台部署了userservice的服务器



服务调用尽可能选择本地集群的服务,跨集群调用延迟较高


本地集群不可访问时,再去访问其他集群



服务集群属性设置


1、修改application.yml,添加如下内容:


spring:
    cloud:
        nacos:
            server-addr: localhost:8848 #nacos服务端地址
            discovery:
                cluster-name: HZ #配置集群名称,也就是机房位置,例如:HZ,杭州


2、在Nacos控制台可以看到集群变化:



根据集群负载均衡


1、修改order-service中的application.yml,设置集群为HZ:


spring:
    cloud:
        nacos:
            server-addr: localhost:8848 #nacos服务端地址
            discovery:
                cluster-name: HZ #配置集群名称,也就是机房位置,例如:HZ,杭州


2、然后在order-service中设置负载均衡的IRule为NacosRule,这个规则优先会寻找与自己同集群的服务:


userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则


NacosRule负载均衡策略


1、会优先选择同集群服务示例列表


2、本地集群找不到提供者,才会去其它集群寻找,并且会报警告


3、确定了可用实例列表后,再采用随机负载均衡挑选示例


根据权重负载均衡


实际部署中会出现的场景:服务器设备性能有差异性,部分实例所在机器性能较好,另一些较差,我们系统性能较好的机器承担更多的用户请求。


Nacos提供了权重配置来控制访问频率,权重较大则访问频率较高


1、在Nacos控制台可以设置实例的权重值,首先选中实例后面的编辑按钮



2、将权重设置为0.1,测试可以发现8081被访问到的频率大大降低



注意:


1、Nacos控制台可以设置实例的权重值,0~1之间


2、同集群内的多个实例,权重越高被访问的频率越高


3、权重设置为0则完全不会被访问


四、环境隔离 - namespace


1、在Nacos控制台可以创建namespace,用来隔离不同的环境



2、然后填写一个新的命名空间信息:



3、保存后会在控制台看到这个命名空间的id:



4、修改order-service的application.yml,添加namespace:


spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: HZ # 集群名称,代指杭州
        namespace: e86291de-7a04-41eb-af76-8ceb85657fed   # dev环境


5、重启order-service后,在查看控制台:



6、此时访问order-service,因为namespace不同,会导致找不到userservice,控制台会报错



Nacos环境隔离:


1、每个namespace都有唯一id


2、服务设置namespace时要写id而不是名称


3、不同的namespace下的服务互不相见


相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
缓存 安全 Nacos
nacos常见问题之服务一直在报token expired!如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
79 0
|
1月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
33 0
|
1月前
|
存储 运维 监控
NACOS 配置中心和注册中心是分两个集群部署还是放在一个集群中
【2月更文挑战第33天】NACOS 配置中心和注册中心是分两个集群部署还是放在一个集群中
81 2
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【一】SpringCloud Alibaba之Nacos整合篇(作为注册中心)
【一】SpringCloud Alibaba之Nacos整合篇(作为注册中心)
253 1
【一】SpringCloud Alibaba之Nacos整合篇(作为注册中心)
|
1月前
|
缓存 PHP Nacos
nacos常见问题之服务升级后nacos控制台看到都是不可用重启nacos后恢复如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
38 4
|
1月前
|
Java 网络安全 Nacos
nacos注册不上刷这个错,有解决方案吗?
【2月更文挑战第30天】nacos注册不上刷这个错,有解决方案吗? springboot项目,瘦身打包后,用java -jar 外置依赖和外置配置文件启动的时候,nacos注册不上刷这个错,有解决方案吗? com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING
125 1
|
22天前
|
Dubbo Java 应用服务中间件
深度剖析:Dubbo使用Nacos注册中心的坑
2020年笔者在做微服务部件升级时,Dubbo的注册中心从Zookeeper切换到Nacos碰到个问题,最近刷Github又有网友提到类似的问题,就在这篇文章里做个梳理和总结。
深度剖析:Dubbo使用Nacos注册中心的坑
|
22天前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
1月前
|
关系型数据库 MySQL Nacos
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
51 1
|
1月前
|
运维 Kubernetes Nacos
nacos常见问题之服务注册IP白名单如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
27 0