作者: Nacos Community.
經過 4 個多月的社群貢獻,Nacos 23.版本 0 在經歷了 2 之後,終於進入了 beta 發布階段2.在多次安全風險修復後,還有另乙個功能更新。
NACOS Antifragility 外掛程式
2.2.在版本 0 新增了 alpha 版本的反脆弱外掛程式後,社群經過多次重構和修改,以提高抽象性和穩定性,最終在版本 2 中發布3.NACOS 的反脆弱性外掛程式在版本 0 中正式發布用於避免 Nacos 集群中大量請求和連線導致的容量問題,可能導致更大規模的故障。
關於預設反脆弱實現外掛程式的使用和自定義反脆弱外掛程式的開發,請參考文件《反脆弱外掛程式》
Nacos 配置變更外掛程式
作為 Nacos 的核心功能,Nacos 配置管理一直受到開發者、運維人員和審計人員的關注,許多運維人員和審計人員都呼籲社群,希望 Nacos 能夠提供配置變更審計、變更通知等功能同時,開發者也希望 Nacos 提供一定的格式校驗功能,避免在修改配置時出現錯誤導致應用失敗。
由於NACOS配置管理本身並不了解配置內容,且每個使用者公司的審計和通知系統也不同,為了能夠更廣泛地適應每個使用者的需求,NACOS在去年的開源暑期制定了配置變更外掛程式的話題,希望以外掛程式的形式滿足配置變更過程中的干預。
經過同學和導師的長期努力,該外掛程式在2年取得了成功3.0 版本發布,使用者可以開發自定義外掛程式,分別在配置變更前後與公司的審計系統和通知系統對接,在變更前進行更多的驗證操作例如,格式驗證、配置名稱規範化等。 同時,Nacos 社群也提供了預設外掛程式的實現,可以對匯入的配置進行配置變更通知和檔名驗證有關更多資訊,請參閱配置外掛程式
Nacos 請求引數校驗
2.3.在版本 0 之前,NACOS 的引數校驗邏輯是分散的,通過各種請求的處理方式分別進行校驗,更改和維護難度大,而且經常省略引數校驗,引數校驗規則不明確統一因此,使用者經常會因為一些特殊字元而無法達到預期或出現漏洞,甚至導致大量推送,導致頻寬滿、記憶體占用過大、應用失敗等。
在 23.0 版本,Nacos 明確引數校驗規則在服務端實現統一的引數校驗邏輯,並增加引數校驗層,根據校驗規則對客戶端向伺服器傳送的請求進行校驗。 使用者可以選擇開啟引數校驗功能,之後 Nacos 會校驗客戶端向伺服器傳送的請求中的部分引數,以保證引數的合法性,避免因使用不當導致的不滿意和效能問題。
有關詳細資訊,請參閱引數驗證規則
NACOS 容量協商
隨著NACOS功能和版本的不斷增加,客戶端與伺服器之間的相容性變得越來越重要。 因此,在去年的開源之夏,NACOS 社群發布了乙個專案,通過增加客戶端與伺服器之間的能力協商機制,當客戶端連線到伺服器時,讓連線方知道對方支援的功能,並在支援相應功能時啟用相應的功能。 通過嘗試避免增加通訊開銷。
在 23.版本 0,此功能也整合在 nacos3 中0 支援更多優化函式,提供基礎。
其他重要變化
除了上述更改外,nacos23.版本 0 還支援:客戶端異常指標、grpc 持久連線的 SSL 功能、禁用開源控制台等功能,可以檢視變更列表了解更多詳情,歡迎試用:
## feature[#5698] support nacos control plugin.[#8458] support ability negotiations between server and clients.[#8460] support config change hook plugin.[#10117] support metrics for nacos client request server exception.[#10150] support ssl for grpc connection.[#10223] support auto build instance id when client request instance id is null.[#10288] support get more module state and switches in console.[#10734] support validate most of request parameters.[#10774] support toml format for configuration in console ui.[#10831] support batch deregister instances for service.[#10971] support disable console ui and support add guide information.## enhancement&refactor[#6819] add page size selector in service details page.[####10176] enhance hint when console ui session expired for default auth plugin.[#9085] add the reachability metadata required by native-image.[#9821] enhance datasource plugin to make more datasource implementation easier.[#9881] enhance configuration page to supports folding when editing configuration.[#10067] enhance windows compatibility for configuration snapshot.[#10155] enhance hints for grpc request when request timeout.[#10343] use cms as default gc when jdk less 9.[#10361] refactor module switches to make only load specified module but not only close in console ui.[#10520] validate for namespace show name when create new namespace.[#10521] enhance the hints for `no datasourceset` error by validate datasource after construction.[#10539] enhance logs when opeation configuration failed.[#10730] link to v2 document for console ui.[#10811] enhance compatibility for colorful service healthy status in console ui.[#10891] support setting maximum number of push retries.[#10930] forward compatible old version secretkey for default auth plugin.[#11129] remove the namespace information from the node list page.[#11231] optimize the handlespringbinder method in propertiesutil.## bugfix[#10056] fix loss revision of client for distro sync.[#10128] fix wrong judgement in raft statemachine.[#10149] fix dead lock on sending connection reset request on server over limit.[#10271] fix nacos-client failover switch file path.[#10318] fix import configuration problem.[#10347] fix only admin role user can register service into default namespace when enabled default auth plugin.[#10406] fix jraft install leader snapshot error after disconnection.[#10427] fix nacos client no response when handle server request with exception.[#10464] fix npe when concurrent operations for client.[#10470] fix some missed i18n for console ui.[#10509] fix out data connection not be disconnect problem.[#10548] fix switch domain might not load snapshot after restart.[#10556] fix index loss for client and service in extreme scenarios.[#10583] fix some new api loss auth check.[#10585] fix selectinstances and selectonehealthyinstance methods will not subscribe service problem.[#10593] fix invalid create `file:` dir under `nacos.home`.[#10598] fix nacos-client not random get server address when using address.[#10606] fix memory leak for nacos client when user create and shutdown client frequently.[#10657] fix npe when using derby datasource for cluster mode.[#10935] fix startswith judgement wrong when ignorecase is true.[#11056] fix batch register count size wrong, when batch register sereval time.[#11059] fix rpc_client_tls_protocols setting error.[#11192] fix batchregisterinstance not recalculate revision prblem.[#11197] fix frequent do query service when hit protect empty.## dependency[#7698] remove httpasyncclient version dependency management to **oid version conflicts.[#10416] upgrade console yaml editor.[#10648] optimize gu**a dependency.[#10893] upgrade spring boot to 2.7.15.[#11199] upgrade grpc version to 1.57.2.
經過暑期的辛勤耕耘,今年的NACOS開源暑期也即將落下帷幕,各項專案進展穩步推進,取得了不小的進展。
開源夏季 OSPP 2023
NACOS 在 2023 年夏季開源,發布了 9 個專案,其中 6 個專案成功與同學匹配並基本完成了專案主題,包括大量社群期待的新功能和優化,後續版本將加入。
入選專案名單:
客戶端訂閱者合併和資料選擇功能為 nacos-spring-boot-starter,支援將 Spring Boot 3Configmap 適配到 Nacos 配置中心、自動同步工具、客戶端可觀測性指標構建,支援 NACOS 註冊中心的模糊訂閱能力,實現 XDS 協議的其他部分。
NACOS榮獲GLCC 2023程式設計夏令營優秀社群獎
Nacos 2023 年程式設計夏令營乙個nacos30 中最受歡迎的功能之一是對分布式鎖定的支援問題。 目前,在導師和同學們的共同努力下,該功能已經初步完成,有望在nacos3中發布0 在 alpha 版本中在社群中宣布。
感謝導師和同學們的努力,Nacos社群榮獲CCF Gitlink開源程式設計夏令營優秀社群獎感謝主辦方Gitlink為社群提供平台和活動。
2.x 後續計畫
2024年3月2日起0.目前發布 0 個正式版,2 個X 版本已經消失了將近 2 年,現在是 2 年3.版本 0 發布,大部分功能在外掛程式細化中完成,在接下來的 2 個3.在 X 版本中,將主要修復當前版本的問題,並進行小範圍的功能優化。 同時,對於 24.版本 0,將用作 NACOS30、優化重構大量**,提公升穩定性和健壯性,提高易用性和可觀測性,向nacos3邁進0 版本平穩過渡。
3.0 計畫
NACOS 社群也開始引入 NACOS30、Nacos 將從統一控制平面、支援本地化、存算分離等方向進一步演進 Nacos 的功能和架構,歡迎社群積極參與新版本的建設。
Nacos 致力於幫助您發現、配置和管理微服務。 Nacos 提供了一系列簡單易用的功能,幫助您快速實現動態服務發現、服務配置、服務元資料和流量管理。
Nacos 幫助您更敏捷、更輕鬆地構建、交付和管理微服務平台。 NACOS是構建以“服務”為核心的現代應用架構(如微服務正規化、雲原生正規化)的服務基礎設施。
最後,歡迎大家加入nacos釘釘社群群(群號:12810027056)。
相關鏈結:
1] 反脆弱外掛程式。
2] 配置更改外掛程式。
3] 引數驗證規則。
4] 開源之夏。
5] 編碼夏令營。