《Nacos系列》之注册中心

时间:2022-07-22
本文章向大家介绍《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.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</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服务已经注册成功:

5)服务的 EndPoint

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

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

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

Q.E.D.