vlambda博客
学习文章列表

《Nacos系列》之注册中心




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

倾听音乐,放松自我

《Nacos系列》之注册中心
This browser does not support music or audio playback. Please play it in WeChat or another browser. 《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服务已经注册成功:

《Nacos系列》之注册中心

5)服务的 EndPoint

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

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


/End.


全世界只有不到3 % 的人关注了「Java那些事儿」

你真是个特别的人

点击 "阅读原文" 查看更多