spring IOC擴展點 二次開發?
利用事件監聽接口
源碼總結:
? ? nacos是一個由spring boot web編寫的消息服務中間件,暴露了一些指定接口來,通過調用我們的指定接口來完成服務的注冊等功能
這里首先展示nacos主要流程
核心Controller 方法
通過請求類型來完成實例的增刪改查
通過雙層Map的方式存放所有注冊的實例信息 其中主要使用到定時線程池啟動后5秒后每隔5秒開始檢測服務是否下線等等邏輯,nacos默認注冊臨時節點
兩個方法:一個生產臨時節點一個生產持久化節點
雙層Map負責存儲服務實例數據 部署一個Nacos可以同時支持眾多環境的服務注冊功能 可以用map最外層的Key來區別?
nacos為了防止服務注冊時多重讀寫 用到了單線程,copyOnWrite思想寫副本 ,修改和讀數據分開 ,提高高并發性,對實時性有一些妥協,但是影響不大
優雅的雙層鎖代碼設計 不得不說閱讀nacos的源碼是一種享受