系列
namesrv的作用
????namesrv的定位是作為注冊中心硕舆,保存broker節(jié)點的路由信息,保存一些簡單的k/v信息暖释。
????namesrv支持集群模式戚炫,但是每個namesrv之間相互獨立不進行任何通信剑刑,它的多點容災通過producer/consumer在訪問namesrv的時候輪詢獲取信息(當前節(jié)點訪問失敗就轉(zhuǎn)向下一個)。
????namesrv作為注冊中心双肤,負責接收broker定期的注冊信息并維持在內(nèi)存當中施掏,沒錯namesrv是沒有持久化功能的,所有數(shù)據(jù)都保存在內(nèi)存當中杨伙,broker的注冊過程也是循環(huán)遍歷所有namesrv進行注冊其监。
????namesrv通過提供對外接口給producer和consumer訪問broker的路由信息,底層通過netty來實現(xiàn)限匣。
????namesrv對broker的存活檢測機制:心跳機制即namesrv作為broker的server端定期接收broker的心跳信息抖苦,超時無心跳就移除broker;連接異常檢測機制即底層通過epoll的消息機制來檢測連接的斷開米死。
namesrv的數(shù)據(jù)存儲
說明:
? ? 參見RouteInfoManager類
? ? topicQueueTable:topic及topic實際數(shù)據(jù)存儲的隊列信息锌历。
? ? brokerAddrTable:brokerName及實際機器ip地址的信息。
? ? clusterAddrTable:clusterName及相關(guān)的brokerName信息峦筒。
? ? brokerLiveTable:broker存活信息其中BrokerLiveInfo保存上次心跳時間究西。
????filterServerTable:暫時不知道保存的信息
namesrv的k/v存儲
說明:
????參見KVConfigSerializeWrapper類
????保存一些k/v信息,但是實際信息有什么作用不是特別清楚物喷。
namesrv異常連接檢測
說明:
????參見BrokerHousekeepingService類
????底層借助于epoll的事件通知機制實現(xiàn)
namesrv對外服務
說明:
????參見DefaultRequestProcessor類
? ? 通俗講就提供讀寫功能卤材,包括broker的注冊,取消注冊等操作峦失。
namesrv心跳異常檢測
說明:
????參見NettyRemotingServer類
? ? 通過心跳時間戳檢測異常連接