Nocos的一些基本知识(仅供自己参考)

1、

Nacos是一个开源的服务发现和配置管理平台,主要用于微服务架构中的服务发现、配置管理和服务管理。它提供了以下主要功能:

  1. 服务注册和发现:Nacos提供了简单易用的服务注册和服务发现机制。服务提供者将自己的服务注册到Nacos,服务消费者从Nacos中发现服务。

  2. 动态配置管理:Nacos提供了分布式配置管理,可以动态推送配置更新。当配置发生变化时,相关服务实例会立即得到通知并自动更新配置。

  3. 动态DNS服务:Nacos提供基于DNS协议的服务发现手机。应用程序可以通过内嵌的Nacos SDK或使用DNS协议来发现服务。

  4. 负载均衡和流量控制:集成了Dubbo、Spring Cloud等微服务框架,提供了基于服务的负载均衡和流量管理能力。

  5. 多语言支持:Nacos提供了Java、Go、Node.js、Python等多语言的开发包,支持大多数主流开发语言。

Nacos的主要优势包括易用性、高可用性、可扩展性、安全性等。它广泛应用于Alibaba内部以及外部的微服务架构中,是阿里巴巴开源的一个重要项目。

2、pom依赖:

管理依赖:  
     <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>

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

3、nacos的基本注册:

下载之后通过  startup.cmd -m standalone启动在bin目录下启动。8848(钛金手机)是默认端口

yml文件中的配置:

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #nacos的服务器地址

4、nacos的多级存储模型

这样做的好处:服务调用可以做到访问本地集群的服务,这样没有高延迟。如果跨集群调用怎么会有较高的延迟。(比如,上海有一个服务,需要调用杭州的,那么这样调用的时间开销就比较大了。如果所有的服务上海都有,且放在同一个机房(或者同一局域网),则就不需要网络的传输,速度会大大的加快)

5、负载均衡:nacos默认的集群是轮询,就是不管你有木有集群,这些所有的服务默认都是轮询访问。

user-server: #服务的名称
  ribbon:     
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  #负载均衡的策略,nacos是优先选择同一个集群的服务

同一个集群下面的服务首先找通过一个集群的服务,如果没找到就去找其他的集群中相应的服务。

(2)nacos权重负载均衡(0-1):

在nacos中有一个权重,默认是为1,通过编辑设置改变这个权重的大小,可以控制对这个服务的访问的次数。如果一个权重是1,一个是0.1,则第一个被访问的次数是第二个的十倍(当然这个前提是你在同一个集群当中,如果是不同的集群可能是不生效的)。

如果权重设置为0则所有的请求都不会去这个实例。这样做的好处:可以实现灰度发布。使得所有的程序一点一点测试上线。也可以用于软件的更新迭代。一个程序更新完之后,首先将这个机器的服务启动,将其他机器的服务的权重设置为0。然后慢慢启动,让用户感知不到程序发生更新。 

6、环境隔离(nacos首先是注册中心,还是数据中心)

NameSpace:这个隔离主要用作对环境的隔离,可以是对开发、测试、上线的环境的隔离。

Group:是业务比较类似的放在同一个组下面,这样比较方便一些。

Service:服务

环境隔离之后:服务之间不能相互的调用了,只在同一个namespace下的服务之间可以相互调用了。

  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #nacos的服务器地址
        cluster-name: SH
        namespace: 05597e8e-9e2d-47c0-b115-3e1a6add4f9c  #namespace的id

nacos与Eureka的对比:

1、eureka和nacos相同的点:nacos和eureka的执行过程,如果有服务增加,则服务会被nacos(eureka)注册。服务消费者会定时的拉取nacos或者eureka中的服务提供者。这个拉取是服务被动的拉取,当在一次拉取之后,还没有到下次拉取的时间的时候,如果有服务提供者挂了,则服务消费者不知道并主动的去请求服务提供者则会失败报错。在每次拉取服务之后,服务消费者的服务列表会更新,并持续到下次拉取更新。

nacos和eureka如何知道服务是否还在存活?服务会通过心跳机制来告诉注册中心自己还活着,还能工作。

2、nacos和eureka的不同点:在eureka服务一直是被动的,一直是服务询问eureka(服务一直是舔狗)。

在nacos中服务即使主动的也是被动的(可以说nacos和服务是双向奔赴)。当nacos中的服务列表发生变化,nacos会主动将服务的情况告诉服务消费者,而不是服务消费者等待到下次拉取的时候才知道。

服务提供者有两个:

(1)临时实例(临时工):你需要主动的向nacos报告自己的身体状况(心跳检测)。当你没按规定的时间向nacos发生心跳,你就会被nacos从服务列表中剔除。

(2)非临时实例(正式工):nacos会主动的向你询问,当你发生异常,nacos会将你标记为不健康(而不是直接从列表中剔除)。当你恢复之后,nacos又会将你标记为健康

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值