一、微服務的概念
微服務概念據說是在2011到2012年時候出現的,具體時間不清楚了,大家可以私下去了解一下,當時一出現就對互聯網產生巨大影響,博主每每都能聽到同事或同行的討論,咱們繼續往下說,微服務因其理念剛好服務“分而治之”的思想,在互聯網行業內,很多家公司難免不存在一個超過10年之久的程序,經過幾代人的維護,顯得過於冗余和龐大,后來的人在對系統不熟悉的情況下,很艱難的去維護。剛剛說到“分而治之”(解釋:分別治理。2.利用手段使國家、民族或宗教等產生分裂,然后對其進行控制和統治。)是微服務的思想。理解了這個思想,就可以來設計你的系統架構。
具體思路:可以對每個業務進行拆分為微服務,微服務自治,數據,緩存,接口都是自我管理。微服務之間的通信一般約定為接口間的通訊和異步消息的通訊。微服務於微服務組合共同提供外部的接口,可以形成更大的服務。
二、構建微服務相關點
上面說到把獨立的業務拆分成不同的微服務,一般表現為下列幾點:
1.身份認證服務(IdentityServer4)
2.服務的注冊和發現(集成Consul)
3.服務之間的通訊和效率(通訊使用HttpWebApi,效率較低,有崩潰的可能性)
4.服務之間的事務性(ACID CAP或者異步通訊和人工干預,比如rebitmq)
5.服務的對外網關(Ocelot)
6.服務間的異步通訊,消息(使用rebitmq組件)
7.服務的日志系統(log4+rebitmq)
8.服務的監控(暫時沒想到)
9.服務部署和彈性伸縮(docker+k8s)
以上這些,我選擇使用asp.net core api方式來構建,因為本人一直從事.net開發,主要是思路,思路才是最值錢的,哈哈哈!
暫時只想到這些,各位博友可以提供一些信息,以上這些都是大型微服務分布式應用的難題,可以一起攻克
三、微服務架構圖(請各位博友和大牛多多指教)
四:微服務總結
上面說所的一系列組件,不一定要非常完美的解決掉上線,可以按照自己的規模和實際技術積累進行優化,在運行和維護時,才能發現問題,一步步解決吧!
微服務應該提早規划好,怎么支持分布式事務,這是重點中的重點!
本人也是第一次學習微服務,全是自己慢慢摸索所得結論,肯定有不合理的地方,希望各位博友多多指導!