(二)Nacos注册中心

Nacos注册中心

服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。

1、CAP理论

CAP理论是分布式架构中的重要理论。

  • C:一致性(Consistency) (所有节点在同一时间具有相同的数据)
  • A:可用性(Availability) (保证每个请求不管成功或者失败都有响应)
  • P:分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)

2、主流注册中心对比

Nacos Eureka Consul CoreDNS Zookeeper
一致性协议 CP+AP AP CP CP
健康检查 TCP/HTTP/MYSQL/Client Beat Client Beat TCP/HTTP/gRPC/Cmd Keep Alive
负载均衡策略 权重/metadata/Selector Ribbon Fabio RoundRobin
雪崩保护
自动注销实例 支持 支持 不支持 不支持 支持
访问协议 HTTP/DNS HTTP HTTP/DNS DNS TCP
监听支持 支持 支持 支持 不支持 支持
多数据中心 支持 支持 支持 不支持 不支持
跨注册中心同步 支持 不支持 支持 不支持 不支持
SpringCloud集成 支持 支持 支持 不支持 不支持
Dubbo集成 支持 不支持 不支持 不支持 支持
K8S集成 支持 不支持 支持 支持 不支持

Nacos除了服务的注册发现之外,还支持动态配置服务。

一句话概括就是Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。

3、集成到SpringCloud中

创建好SC父工程,添加子模块

1)添加pom

<dependency>
	<groupId>com.alibaba.cloudgroupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>

2)主启动类添加注解

@EnableDiscoveryClient

3)添加application.yml配置文件

spring:
  application:
    name: user
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
management:
  endpoints:
    web:
      exposure:
        include: '*'

如果不想使用 Nacos 作为您的服务注册与发现,可以将spring.cloud.nacos.discovery 设置为 false

4)启动项目

以nacos/nacos,登录到127.0.0.1:8848/nacos
,可以看到user服务已经注册成功:

(二)Nacos注册中心_第1张图片

5)服务的 EndPoint

spring-cloud-starter-alibaba-nacos-discovery 在实现的时候提供了一个EndPoint,EndPoint的访问地址为 http://ip:port/actuator/nacos-discovery。 EndPoint 的信息主要提供了两类:

1、subscribe: 显示了当前有哪些服务订阅者
2、NacosDiscoveryProperties: 显示了当前服务实例关于 Nacos 的基础配置

(二)Nacos注册中心_第2张图片

至此,Spring Cloud使用Nacos作为注册中心已经初步完成,其他配置根据自身业务修改即可。

你可能感兴趣的:(Spring,Cloud,Nacos)