手寫SpringCLoud項目地址,求個star
github:https://github.com/huangjianguo2000/spring-cloud-lightweight
gitee:https://gitee.com/huangjianguo2000/spring-cloud-lightweigh
一:什么是注冊中心
1. 總結(jié)服務(wù)注冊中心
我們可以理解注冊中心就是一個HashMap,服務(wù)注冊上去,需要用的時候去拉取,通過服務(wù)名稱可以找到對應(yīng)服務(wù)的IP地址和端口,我們就可以發(fā)送http請求(或者直接使用UDP/TCP)進行遠程服務(wù)調(diào)用。
要實現(xiàn)一個微服務(wù)注冊中心十分復(fù)雜, 但是大概的原理就是這樣
2. 實例圖
箭頭處的調(diào)用可以理解為HTTP請求。事實上我們使用Nacos他也是用的http請求。
二 :注冊中心的實現(xiàn)
接收POST請求實現(xiàn)服務(wù)的注冊。
使用ConcurrentHashMap將注冊的服務(wù)存起來。
三:服務(wù)發(fā)現(xiàn)
通過GET請求拉取所有的服務(wù)。這里面有服務(wù)實例對應(yīng)的IP地址和端口等信息,客戶端可以直接拿到這些信息去請求服務(wù)。
四:心跳檢測
在上面的注冊的時候開啟一個定時線程去定時檢測實例上一次注冊心跳的時間,如果超過最大的時間,就移除該服務(wù)。文章來源:http://www.zghlxwxcb.cn/news/detail-631960.html
五:心跳注冊
客戶端開啟一個定時任務(wù)定時向服務(wù)端發(fā)送心跳。 就是一個Http請求。
怎么樣,原理是不是很簡單, Nacos實現(xiàn)的原理就是這樣, 但是他的實現(xiàn)考慮的東西十分的多,也十分復(fù)雜,有興趣可以去查看一下Nacos源碼。nacos源碼地址文章來源地址http://www.zghlxwxcb.cn/news/detail-631960.html
到了這里,關(guān)于手寫SpringCloud系列-一分鐘理解微服務(wù)注冊中心(Nacos)原理。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!