2018/2/17 SpringCloud的一個簡單小介紹

在學習SpringCloud以前,我覺得SpringCloud是與Double同樣,只是個單純的RPC框架。但在今天的學習中,我發現並不是如此,事實上,SpringCloud是多個框架的集合,感受Spring一家子都這樣,作的更多的是集衆人之長,它本身則更像是一個容器,只是爲咱們提供了不少默認配置和調用模板,讓咱們使用起來更方便,它支持的功能大概有配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等等。因此,SpringCloud的定位已經很清晰了,它就是一個能讓你快速構建分佈式系統的框架;固然,有一點要注意,SpringCloud是基於Springboot的。
  https://springcloud.cc/ 這是SpringCloud的中文網站,裏面能夠看到它現階段能集成的框架。不過有一點要注意的是,在服務註冊中心上,SpringCloud雖然也支持Zookeeper,但Eureka更好用,網上的教程也都大都基於Eureka。
首先介紹下Eureka吧,一個服務註冊與發現框架,不要覺得它與Zookeeper同樣,二者功能是不一樣的,要知道Zookeeper自己只具備存儲數據與監聽節點功能,全部其它功能都是咱們使用代碼基於這兩個功能之上進行擴展的,它自己是沒有像什麼服務註冊發現,分佈式鎖,分佈式事務,統一管理配置這些功能的;但Eureka則是爲了服務註冊與發現而生的,這就是它自己自帶的功能,同時值得一提的是,它是個Servlet應用,這一點能夠本身觀看源碼(過兩天若是有時間的話我會解析源碼而後寫一下)。同時,Eureka也提供了心跳機制(默認30S),健康檢查(和心跳機制不是一個功能,意思是多久沒收到心跳我就認定你不健康了,就剔除你這個服務提供者,這個時間間隔能夠大於設定的心跳的時間,也就是說,能夠在屢次收不到心跳後再剔除(默認90S)),客戶端緩存spring

(和Dobbu同樣,它也具備消費方緩存服務提供方信息的機制,刷新時間默認是30s,能夠本身配置)。並且有一點要注意的是,SpringCloud是經過rest形式來進行服務調用的.因此,咱們在命名服務提供方的application name時必定要注意點,這個可不是RPC框架的直接調方法,咱們通常使用rest形式調用時都是application name加上context path再加上具體的服務路徑進行調用的;緩存

最後,Eureka的集羣搭建十分簡單,好比在配置文件中寫上對方的URL便可,在服務啓動時,會互相將本身節點中保存的元數據信息(也就是服務生產方的信息)複製一份到對方的節點中,這樣無論哪一個節點掛掉都沒事。這個和ElasticSearch的主分片,副本分片的機制卻是有殊途同歸之妙;app

相關文章
相關標籤/搜索