无法加入nacos服务列表_Nacos 1.1.1 发布,支持灰度配置和地址服务器模式
Nacos 是阿里巴巴開源的配置中心和服務發現產品,開源距今已經超過一年的時間。本次1.1.0的發布,帶來了許多重量級的特性更新,包括灰度配置等社區呼聲很高的特性,下面會介紹1.1.0版本發布的新特性和每個特性的使用方式。
升級指南
Server端
0.8.0及以上版本:
0.8.0以下版本,先升級到1.0.0版本。
Client端
請使用最新的1.1.1版本,修復了1.1.0版本的一個客戶端版本顯示問題。
新增特性
- 灰度配置
- 配置導入導出及配置同步
- 地址服務器模塊
- 服務訂閱者列表
- 自定義實例心跳周期
- Config監聽器優化
- Nacos Go SDK發布
灰度配置
@yanlinly @loadchange
灰度配置指的是指定部分客戶端IP進行新配置的下發,其余客戶端配置保持不變,用以驗證新配置對客戶端的影響,保證配置的平穩發布。灰度配置是生產環境中一個比較重要的功能,對于保證生產環境的穩定性非常重要。在1.1.0中,Nacos 支持了以IP為粒度的灰度配置,具體使用步驟如下:
1、 在配置列表頁面,點擊某個配置的“編輯配置”按鈕:
2、勾選“Beta發布”,在文本框里填入要下發配置的IP,多個IP用逗號分隔:
3、 修改配置內容,點擊“發布Beta”按鈕,即可完成灰度配置的發布:
4、 點擊“發布Beta”后,“發布Beta”按鈕變灰,此時可以選擇“停止Beta”或者“發布”。“停止Beta”表示取消停止灰度發布,當前灰度發布配置的IP列表和配置內容都會刪除,頁面回到正常發布的樣式。“發布”表示將灰度配置在所有客戶端生效,之前的配置也會被覆蓋,同時頁面回到正常發布的樣式:
配置導入導出及配置同步
@KeRan213539
配置管理的另一個常見需求是能夠將一個集群的配置同步到另外一個集群,或者從一個命名空間同步到另外一個命名空間。來自社區的貢獻者KeRan213539貢獻這個非常實用的功能,具體使用步驟如下:
1、 導出查詢結果。可以根據查詢條件,將當期查詢出的所有結果打包為一個文件:
2、 導出選中的配置:
3、 導入配置,可以選擇相同配置的處理策略。
當發現有相同的配置時,會有相應的提示:
同時如果導入的配置文件格式不符合要求,也會有相應的提示:
4、 配置同步,選取想要同步的配置,點擊“克隆”,然后再選擇要同步的目標命名空間,就可以將配置同步到對應的命名空間:
5、 導入導出文件格式說明。均為zip壓縮包,壓縮包內有多個目錄,目錄名為配置的 group,目錄下有具體的文件,文件名為配置的 dataId ,每個文件的內容為配置具體的內容:
地址服務器模塊
@pbting
1.1.0的安裝包列表里多了一個nacos-address-server-1.1.0。這個安裝包的作用是作為地址服務器模塊,單獨部署。關于地址服務器的介紹可以參考Nacos官網地址服務器文章,這里只做一個簡單的說明。
一般中間件產品,客戶端尋址服務端的方式都是在客戶端配置服務端的地址列表,這樣有一個缺點是當服務端的地址發生變動時,客戶端無法實時的感知到,也無法動態調整訪問的服務端集群。而在阿里巴巴的一種比較常見的客戶端尋址服務端的方式是地址服務器。簡單的說就是部署單獨的地址服務器,地址服務器提供接口,獲取相關中間件產品服務端集群的地址。由于地址服務器功能比較單一,因此穩定性比較容易保證。客戶端只需要配置地址服務器的域名,通過地址服務器獲取想要訪問的中間件的集群地址,這樣既保證能夠感知中間件集群的動態變化,也能夠為客戶端配置更靈活的集群訪問策略。
下面介紹地址服務器模塊的使用。
安裝包會生成在distribution/target目錄下。
服務訂閱者列表
@nicholas2015
服務訂閱者列表是1.1.0增加的另外一個功能,就是可以在控制臺上查看一個服務的消費者,執行步驟如下:
服務自定義心跳周期
@lanCao
之前的版本中,客戶端注冊服務時,不能自定義上報心跳的周期以及客戶端下線時自動刪除實例的間隔。在1.1.0中,我們支持了這個特性,應用可以在注冊時,通過設置實例的metadata,來指定心跳周期、健康檢查過期時間及刪除實例時間。具體舉例如下:
String serviceName = randomDomainName();Instance instance = new Instance(); instance.setIp("1.1.1.1"); instance.setPort(9999); Map<String, String> metadata = new HashMap<String, String>(); // 設置心跳的周期,單位為秒,這里將心跳間隔設置為3秒: metadata.put(PreservedMetadataKeys.HEART_BEAT_INTERVAL, "3"); // 設置心跳超時時間,單位為秒,這里將心跳超時時間設為6秒, // 即服務端6秒收不到客戶端心跳,會將該客戶端注冊的實例設為不健康: metadata.put(PreservedMetadataKeys.HEART_BEAT_TIMEOUT, "6"); // 設置實例刪除的超時時間,單位為秒,這里將實例刪除超時時間設為9秒, // 即服務端9秒收不到客戶端心跳,會將該客戶端注冊的實例刪除: metadata.put(PreservedMetadataKeys.IP_DELETE_TIMEOUT, "9"); instance.setMetadata(metadata);naming.registerInstance(serviceName, instance);Config 監聽器的優化
@chuntaojun
當存在程序啟動之初,如果用戶通過ConfigService.getConfig獲取配置的同時,又注冊了監聽器,那么會存在監聽器再次通知用戶剛剛獲取的配置信息。因此在version 1.1.0版本中,增加了新的接口以及一個系統參數(使用戶無需修改現有代碼)
該方法在獲取配置后,隨即注冊一個監聽器,避免監聽器通知用戶剛剛才拉取的配置信息nacos.enableRemoteSyncConfig=true | false
設置該系統參數,將在監聽器注冊時主動去向遠端拉取當前最新的配置信息,但是存在一定的網絡開銷,因此建議用戶采取接口的方式
Nacos Go SDK
@lzp0412 @peggypig @atlanssia
Nacos 上周還發布了Go語言的 SDK ,目前發布了0.1.0-beta版本,倉庫地址是:https://github.com/nacos-group/nacos-sdk-go。Nacos Go SDK是單獨的倉庫,由Nacos Committer參與維護,在代碼上不屬于Nacos 1.1.0。在此也非常歡迎社區的Go語言高手,參與Nacos Go SDK的演進。
如何共建
為了實現這一目標,你需要積極參與 Nacos 社區。如果您在文檔中發現拼寫錯誤,在代碼中發現錯誤,或想要新功能或想要提供建議,您可以在GitHub上創建一個issues。
如果您想開始著手,可以選擇github倉庫中有以下標簽的issues。
- good first issue:對于新手來說是非常好的入門issues。
- contribution welcome:非常需要解決的問題和非常重要的模塊,但目前缺少貢獻者,歡迎貢獻者來貢獻。
蓬勃發展的 Nacos 社區
DISS is cheap, show me your hand比吐槽更重要的是搭把手,參與社區一起發展 Nacos
- 作為用戶關注和加入 Nacos 社區
Nacos 社區正在蓬勃發展,截止到發文為止,Nacos 已經有 9 個微信群,其中 7 個已滿員,1個QQ群,1個釘釘群,關注 Nacos 的社區人數已經近5000人,在 Nacos 群里跟 “道(基)友” 切磋技術,交流經驗,招聘交友,搶搶紅包...不亦樂乎。
- 作為代碼貢獻者加入 Nacos 社區
為了能夠與代碼貢獻者更方便的交流,我們組建了釘釘群“Nacos社區核心貢獻小組(23335652)”,這個群里都是都是對Nacos貢獻非常感興趣的小伙伴,如果你也想成為Nacos貢獻者,甚至成為Committer,歡迎加入這個群和群里的小伙伴一起切磋!
在 Nacos 官網 nacos.io 中,已經添加團隊介紹頁,里面包括Nacos的開發者角色定義及職責劃分,同時包含了Naocs的開發者們介紹和靚照哦,歡迎大家加入Nacos社區,貢獻社區。用Apache的話說,“社區高于代碼”!
新人時刻 - "什么是Nacos?"
還不知道什么是 Nacos ? 沒關系,在github上star一下跟程序猿兄弟打個招呼吧!!Nacos 是阿里巴巴于2018年7月份新開源的項目,Nacos的主要愿景是期望通過提供易用的 動態服務發現、服務配置管理、服務共享與管理 的基礎設施,幫助用戶在云原生時代更好的構建、交付、管理自己的微服務平臺。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的无法加入nacos服务列表_Nacos 1.1.1 发布,支持灰度配置和地址服务器模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 失控发票是什么意思
- 下一篇: js实现轮播图_高性能轻量级零依赖的轮播