SpringCloud入門(六)Nacos註冊中心(下)

努力--坚持發表於2024-10-13

一、Nacos環境隔離
Nacos提供了namespace來實現環境隔離功能。

nacos中可以有多個namespace。namespace下可以有group、service等。不同namespace之間相互隔離,例如不同namespace的服務互相不可見。

使用Nacos Namespace 環境隔離 步驟:

1.在Nacos控制檯可以建立namespace,用來隔離不同環境
2.然後填寫一個新的名稱空間資訊:
3.儲存後會在控制檯看到這個名稱空間的id: 預設為public
4.修改order-service的application.yml,新增namespace:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ
        namespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f9 # 名稱空間,填ID

5.重啟order-service後,再來檢視控制檯:
6.此時訪問order-service,因為namespace不同,會導致找不到userservice,控制檯會報錯:

二、Nacos與Eureka的區別

Nacos與eureka的共同點:
都支援服務註冊和服務拉取
都支援服務提供者心跳方式做健康檢測


Nacos與Eureka的區別:


Nacos支援服務端主動檢測提供者狀態:臨時例項採用心跳模式,非臨時例項採用主動檢測模式
臨時例項心跳不正常會被剔除,非臨時例項則不會被剔除
Nacos支援服務列表變更的訊息推送模式,服務列表更新更及時
Nacos叢集預設採用AP方式,當叢集中存在非臨時例項時,採用CP模式;Eureka採用AP方式

Nacos的服務例項分為兩種l型別:

-臨時例項:如果例項當機超過一定時間,會從服務列表剔除,預設的型別。

-非臨時例項:如果例項當機,不會從服務列表剔除,也可以叫永久例項。

服務註冊到Nacos時,可以選擇註冊為臨時或非臨時例項,臨時例項當機時,會從nacos的服務列表中剔除,而非臨時例項則不會 。透過下面的配置來設定:

spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false # 設定為非臨時例項

相關文章