從分佈式系統到微服務
----------------------------------------------------------------------------------------------------------------
演變過程:分佈式系統——>SOA系統——>微服務。
SOA:面向服務的架構;
Paas:平臺即服務;
SaaS:軟件即服務;
----------------------------------------------------------------------------------------------------------------
舉個例子:在分佈式系統中,隨着公司的業務發展,發現其中一個子系統變得越來越重要,同時還需要向其他系統提供接口服務,那麼我們就可以考慮將該子系統獨立出來,做一個單獨的應用,然後通過調用接口的方式對外提供服務。
隨着公司的發展,其他的子系統也可能獨立出來形成一個單獨的應用。那麼原來的分佈式架構演變成SOA架構了。甚至到最後公司轉型變成一個服務提供商,那麼這套就是Paas系統,即是一個對外提供服務的平臺。
當獨立的應用多了,如何管理這些應用就變成一個十分緊要的問題。想要管理好這些應用,需要考慮一些問題:
1、通信協議,對外提供統一的通信協議;
2、要保證高可用,比如集羣;
3、性能、安全等...
最後,即使是獨立的應用也會變得十分龐大,系統難於維護,跟不上業務的發展。每個獨立的應用也可能有相同的功能,那麼就可以重新考慮拆分應用。因此就有了微服務這個概念。
----------------------------------------------------------------------------------------------------------------
微服務:
顧名思義,就是將一個應用的功能進行拆分,拆分成多個相對獨立的小模塊,那麼這個小模塊就可以說是一個微服務,但是這個“微”很難把控。
微服務架構和SOA架構很相似。微服務架構是SOA架構的深度抽象結果。要想搭建一個微服務架構,需要考慮如下幾個問題:
1、服務之間如何調用,要有一套統一的調用方式;
2、權限控制與安全問題;
3、服務高可用問題,如果服務掛了要如何處理;
4、日誌管理
5、服務調用的順序;
6、session共享;
7、服務配置管理問題;
8、事務管理問題;
9、服務要統一管理統一配置,如何實現;
10、客戶端怎樣訪問服務端。
目前,市場上提供了不少關於微服務的解決方案,而在實際使用中,根據人的不同產品的不同可能會搭建出一套自己使用的微服務架構。微服務是一個概念,具體怎麼使用還是要看具體情況。