从一个极简的微服务架构开始
生活随笔
收集整理的這篇文章主要介紹了
从一个极简的微服务架构开始
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們可以通過一個簡單的微服務架構圖,來認識微服務,這里就涉及到了幾個比較重要的幾個概念和組件,首先從右邊看,看到了服務網關,然后是服務注冊和發現,那下邊是一個前端服務,可以看出前端服務和后端服務,都是可以集群化的,我就畫了多個,服務注冊發現也是,前端服務和后端你看,下面我來具體說說這幾個部分的含義,和他們的作用
我們之前有說到微服務的定義,它是由一系列微小的服務組成的,所以可以想象,服務間必然要通過某些機制,進行通信,由此你應該可以想到,必須需要服務注冊與發現,這么一個組件,也就是說,服務提供方,你可能要注冊上來,并且把自己的地址,一些信息告訴一下,然后服務的調用方,從這個組件上才能正確的發現,接著微服務內部,相互調用和通信之外呢,他必然還要讓外界訪問的到,比如手機啊,或者是瀏覽器之類的,所以他要通過一種方式,將自己的服務暴露出去,這就涉及到服務的前端路由,對應的服務呢是服務網關,服務網關是連接內外的大門,主要有以下幾種,網關會對外屏蔽,后端的一些細節,比如我后臺的程序要升級,或者有一些變化,但是堆用戶是無感知的,他還有一個路由的功能,可以將外部的請求反向到內部的微服務里去,還可以做一些限流和容錯的功能,因為所有的請求都會經過網關,你可以在這控制流量,監控和日志也可以在這一塊做好,要做好微服務的安全性,可少不了服務網關,因為所有的請求都會經過這,所以網關可以對請求進行幾種控制,比如用戶的認證,授權,爬蟲等等,所以服務網關的作用非常之巨大,要看公司系統好不好呢,基本上只要看一下服務網關就行了,還有什么關鍵的組件呢,后端通用服務,也稱為中間層服務,還有對應的前端服務,也可以稱為邊緣服務,我習慣性稱為前端服務,那這兩者有什么關系呢,后端服務在啟動的時候,會將地址信息注冊到注冊表里面,而前端服務就可以發現和調用后端服務,前端服務的作用是什么呢,他主要是對后端服務做聚合,暴露給外邊的設備,有小伙伴對聚合和裁剪,這兩個概念可能不是很理解,我解釋一下,聚合是比如對多個API邏輯進行聚合,從而減少客戶端的請求數,合二為一嗎,比如客戶端要請求兩個API,一個接口獲取的是用戶的信息,基本信息,身高,年齡,體重這些信息,那另一個用戶獲取的是用戶的地址,那這兩個服務都是由后端來提供的,如果客戶端直接來調的話要調兩次,這個時候前端服務可以來做一個聚合,把這兩個即可合二為一,作為一個接口提供出去,那這個時候只需要調用前端服務的一個接口,這就是聚合,裁剪剛好跟他相反,不同的需求返回不同的數據,比如都是商品詳情的接口,如果PC端請求過來的話,詳情的內容盡量的返回的詳細一些,那你如果是手機端過來的話,我可能詳情就沒有那么詳細,這一點大家在淘寶的時候呢,應該非常有感觸,你在電腦上看到的詳情和手機上看到的詳情明顯是不一樣的,又或者電腦上返回的是HTML,那手機上返回的可能是JSON的報文,這個時候也是由前端服務,做了一個裁剪的操作,聚合和裁剪都是由前端服務來做的,大家應該能夠分辨這兩者的職責了
我們來觀察一下這兩幅圖,先從右邊這幅圖看起,右圖,Vue WEB APP,原來是需要和SpringBoot后端服務進行通信,所以他沒有服務注冊和發現,那么我們現在加上服務注冊和發現,和服務網關,這兩個給他加上,Vue WEB APP對應這邊的前端服務,SpringBoot后端服務呢,對應這邊后端通用服務,我們會發現,這里又直接套上微服務的架構了,只是這兩個組件在正常的微服務看來,顯得比較胖,那怎么樣胖子給他減肥呢,同時我們還會加上相應的組件,國內治療這種肥胖呢,有兩大手段和途徑,就從實現架構層面來說,他不一定是要SpringCloud的
就從實現架構層面來說,他不一定是要SpringCloud的,一種是阿里系,那另外一種就是我們要講的SpringCloud棧,如果用阿里系的配方,核心就是Dubbo,一般會用Dubbo做服務化治理,使用Zookeeper做服務注冊中心,大概在17年的7/8月,Dubbo死而復生之后呢,就開始瘋狂的更新,據說Dubbo3.0已經開始提上了日程,由于國內很過公司原始的業務,就是依托Dubbo做服務化治理的,加上現在Dubbo的社區氣候回暖,生命力還是很強的,另外一派就是SpringCloud,全家桶系列了,我們先了解一下SpringCloud是什么
SpringCloud它是一個集合,它是一個開發工具集,集合了眾多的開源框架,注意他不是自己造輪子,他吸收了很多優秀的開源框架,SpringCloud利用SpringBoot開發的便利性,實現了很多功能,諸如服務注冊,服務注冊與發現,負載均衡,數據監控,Rest API發布方式等等,基本囊括了分布式框架,所需要的所有功能,在整合課程中呢,最主要的是對于Netflix開源組件的進一步的封裝,國內喜歡看美劇的給他起了一個中文名,它是美國一家在線視頻網站,有點類似于國內的愛奇藝之類的網站,微服務的翹楚就是Netflix,它是最杰出的實驗者,經過多年的實戰驗證,所以SpringCloud很多組件都是基于Netflix,開源組建的進一步封裝,然后我們來看一下SpringCloud的作用
在看來他就是簡化了分布式開發,極大的降低了分布式開發的門檻,也正因為如此,我認為掌握SpringCloud相關組件,怎么用這些都是其次的,我們應更理解分布式的特點,各種架構的特點,這樣才能更好的用好相關組件,這是最重要的
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的从一个极简的微服务架构开始的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微服务和其他常见架构
- 下一篇: Sping Cloud Eureka