成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

技術架構的演進之路:為什么需要微服務?

開發 架構
微服務是指開發一個單個小型的但有業務功能的服務,每個服務都有自己的處理和輕量通訊機制,可以部署在單個或多個服務器上。

[[414950]]

整體發展概覽

服務架構一直處于演變之中,為了適合自己的業務,不斷的去調整。

整體的發展歷程如下:

技術架構的演進之路:為什么需要微服務?

開發者視角

從一個 java 開發者,感受大概經歷了下面幾個歷程:

第一階段:單體架構

早期,大部分IT系統都是單體系統,例如傳統的SSH架構,此時前后端也沒有分離,UI組件也包含在了控制層:

技術架構的演進之路:為什么需要微服務?

這個也就是老馬剛畢業時候的架構,SSH 基本是面試必問。

不過現在這些都發生了一些變化,主流已經變成了 spring mvc + spring contaienr + mybatis。

只能說,spring,java 界永遠的春天!

第二階段:分布式架構

為了方便給系統擴容,以及增加系統的復用性,出現分布式系統。

另一方面,系統模塊快速膨脹,為了降低系統內部的復雜度,于是對系統模塊進行拆解,分不到不同的系統中,降低模塊耦合,加快迭代速度。

ps: 其實主要是降低單個應用的復雜性,讓每一個應用專注于一件事情。這樣可維護成本大大降低,換言之,開發完后以后,可以讓一個剛畢業的新人做運維。把開發者裁掉,降低成本。

主流主要是 SOA 和 MSA 兩種體系。

SOA

早期的分布式系統是基于面向服務的架構SOA。

SOA是微服務的前身,主要是為了擺脫單體應用的問題,達到以下效果:

  1. 充分利用現有的基礎設施;
  2. SOA體系結構依賴于消息傳遞(AMQP,MSMQ)和SOAP作為主要的遠程訪問協議。
  3. 快速響應業務變化;

架構圖如下:

技術架構的演進之路:為什么需要微服務?

異構系統,也可以通過消息中間件的協議轉換進行相互調用。

這個我倒是接觸過一段時間,當時業務系統是 C# 開發,我所在的后端服務使用的是 java 技術開發。當時的協議使用的是 webservice。

但是用起來感覺不是很順暢,主要缺點如下:

(1)WebService中常用的SOAP通信協議,通常使用XML格式進行通信,數據冗余,協議過重

(2)服務治理很不完善。

后來逐漸演變為了現在的 MSA(Micro-Service Archeticture 微服務架構),從而實現了更加松耦合以及更加靈活的系統。

MSA

微服務是一種軟件開發技術——面向服務的體系結構(SOA)體系結構樣式的變體,它將應用程序構造為松散耦合服務的集合。

在微服務體系結構中,服務是細粒度的,協議是輕量級的。

微服務架構圖示

技術架構的演進之路:為什么需要微服務?

優點

微服務架構有很多重要的優點。

首先,它解決了復雜性問題。它將單體應用分解為一組服務。雖然功能總量不變,但應用程序已被分解為可管理的模塊或服務。

這些服務定義了明確的RPC或消息驅動的API邊界。微服務架構強化了應用模塊化的水平,而這通過單體代碼庫很難實現。

因此,微服務開發的速度要快很多,更容易理解和維護。

第三,微服務架構可以使每個微服務獨立部署。

最后,微服務架構使得每個服務都可獨立擴展。

現在這種架構模式已經成為主流,個人感受最深的就是如果你只負責單一服務,你可以把他理解的比較透徹,而且維護起來也沒有那么復雜。如果有功能變更,只上線對應的應用即可。

缺點

微服務的一些想法在實踐上是好的,但當整體實現時也會呈現出其復雜性。

  • 運維開銷及成本增加
  • 必須有堅實的 DevOps 開發運維一體化技能
  • 隱式接口及接口匹配問題
  • 代碼重復
  • 分布式系統的復雜性
  • 異步機制
  • 可測性的挑戰

個人感覺微服務最大的問題在于系統的拆分之后,很難有一個人可以知道系統的全貌,所以定位問題變得非常復雜。

舉個例子,如果交易發生一筆失敗,你可能要從API網關=》業務系統=》交易核心=》支付核心=》風控系統問一遍才能知道原因,最后發現是對底層的系統返回了一個失敗,這里涉及到多個系統的溝通成本,基本上半天的時間就沒了。

SOA vs 微服務

挑戰

微服務的挑戰可以概述如下:

  • API Gateway
  • 服務間調用
  • 服務發現
  • 服務容錯
  • 服務部署
  • 數據調用

不過幸運的是,很多成熟的中間件,已經為我們解決了這些問題。

第一代微服務框架

dubbo 的架構

Dubbo 的架構如下:

技術架構的演進之路:為什么需要微服務?

dubbo 針對 rpc 這部分做的很好,單也僅此而已。

但是為什么還是會這么火爆呢?

很多架構的升級都會有歷史包袱,除非你是一家新公司,全新的應用。

大部分的應用都是 spring 或者 springboot 的,所以現在大部分公司都是 springboot + dubbo 的技術選型方案,這樣可以讓架構的平滑的遷移。

如果你們公司是全新的技術選型,可以考慮 spring cloud。

spring cloud 架構

你會發現 spring cloud 可以說是 java 技術棧中,比較完善的微服務框架。

當然,spring 再牛,負責的聲明周期也只是 jvm 之內,應用的部署運維也是需要考慮的。

每一項技術都有其優勢和局限性,所以需要結合使用。

推薦閱讀:

Microservice Architectures With Spring Cloud and Docker

目前 docker 虛擬化技術如日中天,結合 k8s 掌托。

我選稱這盛世為,喝不起咖啡的打工人,在春天的貨船上,996 搬磚!

下一代微服務:Service Mesh?

Service Mesh 也是目前比較火爆的技術,我們后續進行詳解。

個人感悟

技術架構的演進和生物的進化是類似的,物競天擇,適者生存。

學習技術也不能只局限于現在這一刻,要學會去回顧技術的歷史,知道為什么是這樣?如果有能力,也可以引領技術的未來,為什么不是這樣呢?

我覺得自己很幸運,最初接觸的是單體應用,是 spring xml 配置的時代。

我覺得自己很不幸,框架層出不窮,技術日新月異,如果不持續學習,不出 5 年,就會被徹底淘汰。

為了不被那么快淘汰,本系列將從微服務的發展歷史,理論知識,入門使用,應用實戰,實現原理,重復造輪子等方面,逐漸理解微服務。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2016-01-20 09:54:51

微服務架構設計SOA

2024-06-03 10:19:05

2020-11-25 09:56:48

架構運維技術

2023-12-30 08:27:13

2023-01-11 16:22:07

2024-06-05 12:03:43

微服務架構場景

2022-05-25 08:00:00

開發微服務企業

2023-10-11 07:29:21

2023-09-15 12:30:06

微服務架構管理

2020-07-10 15:18:12

微服務設計模型

2020-02-04 14:41:37

微服務設計DDD

2017-03-06 17:30:11

微服務架構系統

2024-04-24 07:00:00

Redis架構數據持久化

2024-05-16 07:51:55

分布式系統架構

2023-11-21 08:37:09

2020-09-01 10:46:55

微服務架構服務器

2020-07-10 08:27:55

王者榮耀微服務架構

2016-03-15 16:24:47

集群調度框架演進

2024-07-17 11:40:58

2022-03-02 09:31:42

Serverless微服務架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草电影网 | 国产精品视频一 | 老司机免费视频 | av黄色片| 国产三级国产精品 | 日本淫视频 | 欧美日韩久久精品 | 久久www免费人成看片高清 | 黄色国产大片 | 91新视频 | 欧美a免费 | 欧美一级特黄aaa大片在线观看 | 久久久久久成人 | 91在线一区 | 日韩中出| 日本激情一区二区 | 精品久久久久久久久久久久久 | 国产精品久久久久久久久久久免费看 | 欧美一区二区三区在线免费观看 | 韩日精品视频 | 日本久草 | 成人性视频免费网站 | 亚洲欧美日韩精品久久亚洲区 | a黄视频| 亚洲国产一区二区在线 | 天天操天天天干 | 99视频在线| 亚洲精品自在在线观看 | 日韩精品视频在线观看一区二区三区 | 国产精品视频一区二区三区不卡 | 国产精品一区二区无线 | 日韩a视频| 国产精品亚洲一区二区三区在线 | 成人精品系列 | 亚洲香蕉在线视频 | 久久综合伊人 | 不卡一区| 大象视频一区二区 | japanhdxxxx裸体 | 欧美亚洲视频在线观看 | www精品美女久久久tv |