1. 程式人生 > 程式設計 >微服務入門篇: 發展和入門介紹

微服務入門篇: 發展和入門介紹

大家也知道大型網站為了應付海量的使用者的高併發、大流量、高可用和海量資料等所引起的各種問題,從而網站慢慢演變成了現在的微服務。給大家介紹一下他的演變過程:

傳統的單體架構------>面向服務(SOA)架構------>微服務架構

一、傳統單體架構

       其實大型網站也是由小型網站演變而來的,一開始並沒有多少人訪問,只需要一臺伺服器就足夠了。而對於網站架構也是一樣的,本人花了一個傳統的架構的簡單的草圖:


      我介紹一下這三層(這個剛入門初級的可以看下):

             控制層:  其實就是我們後臺java處理業務程式碼(MVC)。

             檢視:使用者所操作的頁面。

             資料庫:使用者操作頁面或資料進行儲存的地方。

      傳統單體架構的流程

             比如一個使用者在某商城購買充電寶。

            第一步:他先找到這個商城充電寶的頁面,這也就是我們上面的檢視(view)層

            第二步:他點選進行購買的時候,這時候會進入到後臺進行購買的業務進行處理。(這                            也是上面提到的控制層,也是業務處理層)

            第三步:走到第二步的時候,處理業務的時候,會把此使用者購買了一個充電寶的記錄                             存入 資料庫。存入成功後,會把資料返回給檢視層進行展示,顯示他已經購                             買成功,這時候會有相關提示給淘寶後臺進行處理此條訂單給此使用者傳送充電                           寶。

       傳統單體架構的優缺點:

                優點:使用者量較少時,單一程式碼塊、容易部署、開發模式簡單、技術棧單一

                缺點:使用者太多和業務複雜的時候,會出現龐大的業務,這時候就會有龐大的程式碼                              庫,錯綜複雜。從而出現大量的問題,會導致交付週期長,維護成本也會大                             量的增加。並且在引入新技術的時候會出現各種問題。

二、面向服務(SOA)架構

       在越來越多使用者量訪問的網站的時候,會導致網站的效能會越來越差。一臺伺服器很容易就宕機,崩潰。這時候就需要更強大的CPU、快速磁碟檢索、資料快取等。從而把應用和資料進行隔離,也就把上面的三個分成三個伺服器,一樣草圖見證:


             SOA簡介:

                      在傳統單體架構中,也就是我們常用的SSM、SSH等,把相關的配置和執行都                      放在一個JVM鍾執行,無法滿足海量使用者發起的高併發請求。還有比如某個介面因                    為需求而要發生改變或者增加引進新技術的時候整合發生各種問題,這就表示單一                   程式已經無法滿足我們的需求了,擴充套件能力也有限。這時候就有了SOA,把介面進                   行介面進行服務化單獨隔離,需要哪一個介面就通過網路協議呼叫哪一個介面。

                 目的: 把相關的配置、介面、資料等放在不同的伺服器,然後通過網路                                              通訊協議呼叫,解決海量使用者所引發的高併發、大流量、海量數                                              據所引發的問題。                  

             SOA特點

                    1、定義良好的服務介面,通過網路協議對外提供服務,服務間變現為鬆耦性。

                    2、在我們寫程式碼時,有一個服務介面因為需求而要改變介面時,我們只需要改                              變這個介面即可,不會影響其他的介面對外提供服務。

                    3、SOA通訊格式在之前是使用XML,但是因為XML在高併發、大規模的情況會                           導致冗餘,所以後來被JSON所代替

                    4、SOA定義對外介面時,可以同時呼叫此介面,增加了服務的重用性。

  三、微服務架構

             簡介:上面也介紹了一下SOA服務,其實微服務就是在SOA的基礎上更粒度化。比如         淘寶商城,SOA就是把介面進行服務化,把相關的程式放在一個JVM裡面執行,而對於微         服務就是把這個後臺程式碼再次進行拆分,比如拆分成支付寶服務、積分服務、訂單服務等         等。就相當於拆分几几個JVM執行。這樣可以大大的解決高併發的問題。

      下面介紹一下優缺點:

            優點: 1、易於擴充套件

                       2、可以用不同的語言開發

                      3、易於擴充套件,有利於新技術的融合

                      4、微服務是業務邏輯程式碼,不會與前端相混合

                      5、每個服務都是單獨部署在單獨的伺服器

             缺點:

                      1、服務比較多的時候,管理起來比較麻煩,並且運維人員壓力也在增加

                      2、系統整合測試比較困難

                      3、保證資料的一致性

                      4、服務之間的通訊成本也在增加

                      5、服務之間的監控技術也變得複雜

其實微服務也就是為瞭解決海量人群訪問然後遇到的各種問題,比如高併發、分散式事務、資料一致性等等問題。解決方法也有很多種,我寫的比較簡單,如果有想深入學習或者真的想學習微服務的朋友,可以群652288416,直接聯絡我群主就好,不管是工作的問題還是你想知道技術,免費給大家解答。