(二)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作爲註冊中心已經初步完成,其他配置根據自身業務修改即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章