Nacos 1.1.4 發佈,業界率先支持 Istio MCP 協議

Nacos是阿里巴巴開源的服務發現與配置管理項目,本次發佈的1.1.4版本,主要帶來的是與Istio的對接功能,使用的是Istio最新的MCP協議。本文將介紹包括這個功能在內的新版本發佈的功能。git

升級指南

服務端

0.8.0及以上版本:github

  • 解壓安裝包後替換{nacos.home}/target/nacos-server.jar
  • 逐臺重啓Nacos Server便可

0.8.0如下版本,先升級到1.0.0版本。算法

客戶端

替換pom依賴便可。spring

支持Istio MCP協議

這是本次版本最大的更新,主要是實現了Nacos服務數據往Istio下發的功能,也是目前業界全部註冊中內心面第一個由官方提供的MCP協議對接版本。Pilot最新的設計中,是使用MCP協議來與全部後端的數據源進行交互的。這樣作的好處是能夠解耦全部擴展組件的代碼,Pilot保持輕量的邏輯,在代碼質量、組件穩定性及擴展性方面都大幅提高。咱們能夠看一下Pilot官方提供的Pilot設計圖,地址詳情參考這裏docker

雖然在設計圖中,Pilot後端的MCP Server已經有了Consul、Eureka等,可是這些項目目前都沒有官方支持的MCP Server。Nacos是目前首個官方支持Istio MCP協議的項目。後端

關於MCP協議的設計,能夠參考Istio的文檔。Nacos實現的MCP Server,目前使用的是單個服務編號,全量服務推送的模式,由於目前Pilot還不支持增量的服務數據推送(Nacos 1.1.4發佈以後,Pilot已經支持了endpoint級別的增量推送,Nacos也會在下個版本支持)。實現的邏輯就是啓動一個gRPC Server來進行MCP數據的傳輸,代碼能夠參這裏api

使用Nacos MCP Server的方式以下:
一、下載最新的Nacos 1.1.4安裝包,解壓;
二、配置application.properties,而後重啓Nacos;微信

nacos.istio.mcp.server.enabled=true

注意:若是Nacos是集羣部署,則只須要配置一臺Server啓動MCP Server便可,由於每臺Nacos Server的數 據都是全量的。同時Nacos MCP Server使用的端口是18848,請注意端口是否衝突;app

三、配置Pilot使用Nacos MCP Server:spring-boot

configSources
-- address: x.x.x.x:18848

四、重啓Pilot;

自定義實例ID

在以前的版本中,Instance類的instanceId字段,是用來做爲惟一標識這個instance的屬性,它的值默認是不能由客戶端來指定的。在1.1.4版本中,咱們支持了容許客戶端自定義ID以及一個新增長的instanceId生成算法:一個服務內惟一的整數,這個整數能夠用來做爲實例在服務內的惟一索引。這個功能由vettal-wu貢獻,很是感謝。

這個整形instanceId的使用方式爲在註冊時配置instance的metadata,指定使用該id生成算法,樣例代碼以下:

Instance instance = new Instance();
instance.setIp("1.1.1.1");
instance.setPort(80);
// 必須設置ephemeral=false,來保證服務端使用的是嚴格的一致性協議,不然可能會致使生成的instance id衝突:
instance.setEhpemeral(false);
instance.setMetadata(new HashMap<String, String>());
instance.getMetadata().put(PreservedMetadataKeys.INSTANCE_ID_GENERATOR, Constants.SNOWFLAKE_INSTANCE_ID_GENERATOR);

Nacos在這個版本也有一些關於代碼質量上的優化更新,具體能夠參考1.1.4版本issue列表

如何共建

爲了實現這一目標,你須要積極參與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用戶發展而成貢獻者瓜熟蒂落,而Nacos開發團隊也確實在日趨壯大,從開始的只有4個代碼contributor發展到目前的40多個,1.1.4版本中,參與Nacos倉庫貢獻的開發者有:stackisok,loadchange, ly641921791, EZLippi, rushsky518, universefeeler, nkorange, vettal-wu, beldon等。

新人時刻 - "什麼是Nacos?"

還不知道什麼是Nacos? 不要緊,在github上star一下跟程序猿兄弟打個招呼吧!!
Nacos 是阿里巴巴於2018年7月份新開源的項目,Nacos的主要願景是指望經過提供易用的 動態服務發現、服務配置管理、服務共享與管理 的基礎設施,幫助用戶在雲原生時代更好的構建、交付、管理本身的微服務平臺。

github項目地址在這裏

更多與 Nacos 相關的開源項目信息

下期預告:Nacos的下個版本是1.2.0版本,將會支持社區普遍關注的權限控制功能,敬請期待。

阿里雲雙11億元補貼提早領,進入抽取iPhone 11 Pro:https://www.aliyun.com/1111/2...


本文做者:中間件小哥

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索