當前位置:首頁 » 網頁前端 » 前端微服務化
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端微服務化

發布時間: 2022-05-14 22:15:43

『壹』 微服務准備的內容

本文為大家介紹了5個遷移到微服務架構所需做的准備步驟,包括如何劃分微服務,微服務和組織結構間的誤解,如何劃分組織架構,以及在實現微服務架構中需要盡早考慮的一些問題,值得大家參考

時至今日,微服務相關的話題不勝枚舉,上百次的會議,在線討論以及相關文章。你可以假設大家已經認識到其優點以及與之俱來的風險。然而,有很多組織沒有事先准備就邁入這個潮流了。自然,這也就導致了在架構實現過程中的失敗。

有一位智者曾經說過,「對於商業中所應用的任何技術而言,有2條規則,其一,將自動化應用於高效的運維上才能增加效率;其二,將自動化應用於低效的運維反而會降低效率。」我認為這種哲學對微服務而言亦行之有效。如果你的組織沒有為此准備就貿然遷移,很可能會招致失敗。以上就是本文的出發點,我將為大家帶來在實現微服務架構前需要准備的5個關鍵步驟。

從繪圖入手

在開發特定的微服務時,許多開發者都會犯同一個錯誤:直接寫代碼。或許,這可能就是你能夠犯的最嚴重的錯誤了。誠然,對於一個服務而言,你可能會獲得成功,但是隨著服務數量的上升,所有事情都會變得一團亂。

和其它產品一樣,它也需要被創造,需要以設計作為初始步驟。將團隊匯聚到桌子周圍,自由地在紙上(或者白板)繪制服務。首先,找出你所構建的應用的main函數。然後,自頂向下地將它分解成最小單元。最後,找出不同單元的互聯通性。這些功能將會成為你的微服務。

比如,在一款圖書預覽應用中,其主要的功能就是比較不同的圖書。然而,也有許多其他功能需要開發,例如創建用戶履歷,評分,評論,圖書資料庫等。識別每個功能,是將它們轉為微服務的關鍵。

整個過程將會持續超過一天時間,並且需要多次迭代直至完美。當然,你將需要從許多不同部門的人員手中獲得輸入,以確保能夠知曉其視角和觀點,並確保你不會遺漏任何系統功能。

微服務並不是組織結構

根據你所在公司的組織結構定義微服務,這似乎是很自然的。如果你正在構建單體(monolithic)應用,這或許真是一個恰當的解決方案。但是,在實現微服務架構時,它可能就是一個錯誤的決定了。

也許,這對於銷售部門或客戶服務是可行的,但是許多組織只有一個部門處理所有的資料庫。因此,為所有資料庫創建一個微服務將會導致單點故障。而沒有單點故障,則是微服務的關鍵特性之一。

你希望通過服務實現的一些功能可能會涉及幾個組織部門,或者,你可能將會需要為一個部門構建許多微服務。總結一下,你需要將架構聚焦於你想要提供的服務,而非你們公司的組織結構。

創建合適的組織結構

轉變到一個全然不同的組織架構,能夠滿足公司在管控活動上變化的需要。之前2個步驟關注於應用的設計,以便能夠為最終用戶提供正確的功能。現在,是時候確保對於新的架構而言,你擁有恰當的運維支持了。

你將不得不放棄原有的部門結構,並使團隊關注於某個微服務。這意味著這些團隊將由擁有不同技能的成員組成,如系統分析師、UX/UI設計師、後端工程師、前端工程師等。如此一來,團隊就能夠徹底負責它們的項目(微服務)——從開發部署到運維、監控和管理。反過來,由於團隊覺得自己擁有這個產品,因此將提升其創建產品的積極性。

團隊的規模視公司/項目的總體人數而定;當然,根據專家的建議,比較理想的規模是每個團隊8-10人。和單體架構不同,微服務架構使得你能夠根據業務的增長來擴展團隊規模。

當然,所有團隊將會(需要)積極配合,以最終促成整個項目。這便是這種結構的主要好處,使我們能夠盡可能快地向市場交付產品。

性能和可靠性同樣重要

切換到微服務架構的整體想法,便是使得創建的最終產品相比於單體應用而言擁有更好的性能,更佳的穩定性(例如,更低的下線風險),同時可以更快地交付市場。

將改進性能作為設計的一部分是很重要的,這將確保潛在問題能夠盡早被考慮。通常,(性能)問題都源自微服務設計主要考慮功能。然而,如果在更大的服務下,服務崩潰或者變得很慢,那麼它就沒什麼用了。每個服務應該擁有2-3個替代機制,當下層資源失敗時,它便可以繼續運作。當其中一個機制無法在可接受時間窗口內響應時,服務也需要做到快速切換。

在前期考慮讓服務支持更大的負載變動,你的應用將能夠應對實際挑戰,你將領先市場,當然這也是你在第一時間考慮切換到微服務的主要原因!

變更先行

忽略應用的變化是不切實際的。開發者一直在增加和移除功能,變更代碼,替換應用的核心元素等,這在微服務應用中更甚。更確切地說,微服務就是持續演進的。

當你每天需要處理多次代碼升級時,最好接受一個觀點:變更是持續的,而非對於穩定狀態的一次偶然性中斷。一旦你認知到這一點,你將意識到一開始便整合變更的靈活性需求的重要性。確保應用一直正常工作的一種方式便是准備服務API,這樣微服務間便可繼續通信,即使它們已被改變。另外,你還需要引入版本控制,以允許服務同時開放新舊介面。

另一方面,數據存儲的演進是一個更大的挑戰。改進資料庫模式(schema),使其支持新的功能,傳統觀點中,這是應用升級時最難處理的部分,微服務並不會使其變得更加簡單。然而,單就增加新的域且不破壞現有結構這一點而言,Nosql資料庫會更加靈活。如果你希望你的數據存儲需求持續演進(誰不希望呢?),那麼你應該將可演化的數據存儲作為微服務設計的努力方向之一。

在遷移到微服務架構時,做適當的准備是整個項目成功的關鍵因素,這一點我們可以認同。只有經過仔細的准備,創新設計思維,並且具備合適的運維和管理結構,你才能收獲微服務帶來的所有好處!

『貳』 SOA和微服務架構的區別

如果一句話來談SOA和微服務的區別,即微服務不再強調傳統SOA架構裡面比較重的ESB企業服務匯流排,同時SOA的思想進入到單個業務系統內部實現真正的組件化。

微服務架構強調的第一個重點就是業務系統需要徹底的組件化和服務化,原有的單個業務系統會拆分為多個可以獨立開發,設計,運行和運維的小應用。這些小應用之間通過服務完成交互和集成。每個小應用從前端web ui,到控制層,邏輯層,資料庫訪問,資料庫都完全是獨立的一套。在這里我們不用組件而用小應用這個詞更加合適,每個小應用除了完成自身本身的業務功能外,重點就是還需要消費外部其它應用暴露的服務,同時自身也將自身的能力朝外部發布為服務。

『叄』 自學前端能找到工作嗎發展前景如何

關於自學前端好找工作嗎?

自學前端,很多人學不好的,還沒學到找工作的階段,在學習的階段很多同學就已經放棄了。而且我們發現一個問題,很多自學出來的學生,前端的開發水平是很弱的,知識點掌握不扎實,也缺乏前端思維,沒有對這方面的深入理解和思考,缺乏與時俱進的東西,有一種思維被框限的感覺。靠自學即便找到工作,由於水平不高,也很容易造成工資不高,在公司里和專業的出來的有差距,後期晉升也不是太容易。

你必須知道的學好前端的六點建議。

(1)夯實基礎。

要成為一名年薪30W的前端工程師,基礎一定要掌握牢固,基礎知識一問三不知,豈不是要貽笑大方。css,js基礎知識一定要掌握得很熟練,你能使用css實現斑馬條紋背景,毛玻璃效果嗎?能給圖片實現濾鏡效果,能實現所有自適應布局效果嗎?原型,原型鏈,閉包是實現設計模式的必備知識,你真的弄懂了嗎?閉包導致內存泄漏的原因是什麼,你弄明白了嗎?ajax跨域的解決方案你可以說幾種?你還是只告訴我jsonp嗎?http協議有了解過嗎?如何在http協議中實現不緩存靜態資源?

不要說這些問題老掉牙了。可是我要告訴你的是,掌握好這些老掉牙的基礎,就是很重要。上層的技術可以變更的很快,基礎變動很慢,投入時間學好基礎,性價比很高。

(2)深究原理。

Angular,React,Vue框架和腳手架的普及,越來越多的前端工程師浮於表面,調用框架的API完成任務就完事。要成為一名優秀的前端,絕不能成為單純的"API調用工程師",一定要掌握框架背後的原理性知識。

Virtual DOM diff演算法,雙向綁定原理等等框架背後的機制都值得我們去學習。框架API可以更新很快,而他們背後的原理都是相似的,學好原理既可以讓我們對框架底層了解更深入,又可以使我們迅速掌握不斷更新的框架表層。只會用框架永遠也成不了大神。

(3)注重細節。

在工作中,做事得過且過的人往往難堪大任,作為前端工程師,亦不例外。"代碼能用就行"的認識往往是初級程序員的通病。作為有在技術道路上有理想的工程師,一定要對自己的代碼嚴格要求,精益求精。

比如HTML一定要注意語義化以方便SEO優化,該用<section>,<head>,<foot>的地方不能一股腦兒用<div>完事;css中編寫樣式時不能頁面上樣式是有了,類名和屬性排序寫得一塌糊塗,建議大家按照BEM規范編寫風格良好的代碼;js中變數命名隨意是很常見的不規范行為,一個不直觀的變數名往往使同事看了腦袋大。

「代碼千萬行,注釋第一行。命名不規范,同事兩行淚。「一首流行詩,飽含了多少程序員的血與淚。

(4)登高見遠.

前端經歷了這么多年的飛速發展,早已成為浩瀚的大海。如果悶著頭獨自鑽研苦學,那無疑是很慢的。

如果我們直接去跟隨大神學習,那將會使我們快速成長。github上有很多優秀的前端項目,仔細研讀這些項目的代碼,在commit記錄中查看編程思想和邏輯的進化過程,就是一場與大神直接的面對面交流,是一場絕妙的學習之旅。

現在網路課程也十分豐富,有很多技術大牛的課程讓我們直接通過視頻生動的講解快速地學習技術,這何嘗不是一種向大神快速學習的方式呢。

(5)良書益友。

雖然現在網路上各種文檔、博客文章已經很豐富了,但是對工作經驗不足,基礎薄弱的同學來說,隨手拿起書,時時能學習也是一種很好的方法,查漏補缺,完整地夯實基礎。

(6)緊跟潮流。

現在的前端技術體系更新十分迅速,想著要不要嘗試用下Vue的事彷彿還在昨天,今天一覺醒來就看到尤雨溪宣布要開發Vue3.0了。

前端體系中這兩年SPA已經不是新名詞,PWA,SSR,小程序愈發流行,前端微服務化的趨勢也應運而生,RN,electron在移動端,桌面端的使用也越來越多,ES10標準的發布也沒幾個月了。所以最重要的是突破當前崗位需求的設限,對各種技術融會貫通,創造新的技術框架,做技術的領頭羊,適應時代發展。技術人成長不能再單打獨斗,要學會與人交流,學會將別人的知識為自己所用。

對前端開發感興趣嗎?不知道該如何學習前端知識?點擊這里:http://www.bjsxt.com/,海量視頻教程隨你挑!

『肆』 剛剛進入前端工作,很迷茫怎麼辦

第一 學習前端這一塊,找工作怎麼樣?

目前前端這一塊市場需求還是很大的,薪資待遇水平也很不錯的,最後涉及到找工作這一塊,有些同學會說,為什麼學前端工作不好找呢?首先對於這個問題,根據相關數據調查顯示,這個問題不僅僅是前端行業有這個問題,各行各業都有這個問題,很多人其實對前端都是一知半解,僅僅學習了一個皮毛,基本什麼也不會,連個像樣的小項目都做不出來,你們覺得這樣的水平好找工作嗎?換做是你當老闆,你會樂意僱傭什麼也不會的員工嗎?

企業需要的是召之即來,來之能用的人才,而不是一半瓶子不滿,半瓶子晃悠的人。反觀我們看一下那些真正有前端技術的同學,很多企業都是搶著要,把自己做的項目,放那一演示,證明自己很牛,公司的求著找你,你的境遇由你的實力決定,不要把自己的無能怪罪於前端這個行業怎麼樣,任何行業都是一樣的,有本事的人才能走的更遠,當然那些前端水平一般的同學,不要糾結,盡管你現在的前端水平有點差,但是你可以通過不斷的學習,來提升自己的水平啊,水平是動態的,是可以不斷的變化的,學習可以改變一切。

第二 別把自己停留在對前端的迷茫上,學習,提升,才是硬道理。

很多想學前端的同學,總是停留在一個徘徊觀望的層面,內心充滿了糾結和迷茫,覺得選這行對嗎?怎麼才能一步登天呢?我想說的是,任何一個行業都不容易,都需要你付出努力用心思考堅持,吃苦耐勞才能贏得未來,不要總想走捷徑,沒有,也別把自己當成時代的幸運兒,用一顆平常心,踏踏實實學習,踏踏實實提升自己,才是王道。

一些同學會問我,想學前端,但是不知道應該從哪裡入手?老話說的好,只有站在巨人的肩膀上,才能看的更高更遠,聰明的同學永遠都知道,借鑒別人的精華,迅速的提升自己,所以好的開始,就是跟前端高手學習,因為他們有經驗,有實力,怎麼學,怎麼提升,他們很有經驗,我認識一位前端高手,他每天都在網上做前端免費直播課,我也經常去聽,學到很多東西,講的給人一種醍醐灌頂的感覺,別自己摸索學習強多了,學習前端不僅僅是知識層面的提升,還有思維層面的提升,所以想聽這位前端高手課程的同學,請加他的前端教程資料裙 :首先位於開頭的一組數字是:655,其次處於中間地帶的一組數字是:567,最後位於尾部的一組數字是:613,把以上三組數字按照先手順序組合起來即可。希望同學們做一個聰明的人,一個善於學習的人,一個懂得如何不斷強大自己在這個現實的社會中生存的更好的人,只有你自己的努力才能給自己更強大的未來,而不是抱怨等待猶豫,這只是墮落者的表現。

『伍』 前端開發好找工作嗎

好不好找工作,自然是跟自己的能力分不開的。但是就前端開發這個行業本身來說,它的就業前景還是相當不錯的。

隨著互聯網的迅猛發展,各種互聯網項目也不斷興起,隨著谷歌、FireFox等大型企業紛紛將視線轉向HTML5,前端開發已經進入HTML5時代,所以,Web前端在今後十年仍有很大的發展空間,學習Web前端的就業面很廣,選擇的崗位有:前端開發工程師、資深前端開發工程師、網站重構工程師、前端架構師等等。在未來,互聯網還有太多的工作需要前端完成,H5或許會代替flash,復雜應用,慢慢會從桌面程序演化為Web,擁有大量原生APP功能的APP成為互聯網新趨勢。

由此看來,前端開發還有很大的發展空間,如此一來,也誕生了一大批相關就業崗位,而這些崗位,當然是給那些有準備的人的。如果你技藝不精,能力不夠強,那自然會時代淘汰。

『陸』 微服務架構下,進行前後端分離,前端怎麼寫

分離後的前端,不再是一個簡單的HTML文件,已經是一個獨立的應用系統。除了要考慮頁面的數據渲染展示,還要用工程化的思想來考慮前端的架構,前後端的交互和數據安全等事情。

RESTful介面交互
前後端分離之後,更多的是採用RESTful風格的介面與後端進行數據交互。

REST是「呈現狀態轉移(REpresentational State Transfer)」的縮寫,一種API的架構風格,在客戶端和服務端之間通過呈現狀態的轉移來驅動應用狀態的演進。

在 REST 樣式的 Web 服務中,每個資源都有一個地址。資源本身都是方法調用的目標,方法列表對所有資源都是一樣的。這些方法都是標准方法,包括 HTTP GET、POST、PUT、DELETE,還可能包括 HEADER 和 OPTIONS。
RESTful的API設計,使得後端通過介面向前端傳遞數據,數據的格式通常是JSON這種通用的格式。對前端來說,只要後端返回過來的是RESTful的數據就行,不管後端是用Java寫,還是用python或PHP,拜託對後端的依賴,做到前端系統的獨立。

工程化構建

Nodejs不止可以用來做前端伺服器,在開發階段,它也能發揮很大的作用。

前端生態的發展,是圍繞著Nodejs進行的。用npm來管理項目依賴,可以很好的維護和運行在Nodejs環境上。

打包工具grunt、gulp、webpack和rollup等,都是運行在nodejs上,再結合語法編譯、打包部署等插件,將應用輸入成一個完整的應用。

如果你使用了Angular、React或Vue框架,或者你使用瀏覽器暫時還不兼容的ES6語法,還需要在應用打包前用babel將語法編譯成瀏覽器可識別的ES5的語法。

SPA
SPA是單頁Web應用(single page web application,SPA)的簡寫,就是只有一張Web頁面的應用,是載入單個HTML 頁面並在用戶與應用程序交互時動態更新該頁面的Web應用程序。

像Angular、React或Vue就是為了SPA而設計的,結合前端路由庫(react-router、vue-router)和狀態熱存儲(rex、vuex)等,可以開發出一個媲美Native APP的Web APP,用戶體驗得到了很大的提升。

當然,SPA也不是完美的,也不是適合所有的web應用,需要結合項目和場景來選擇。

SPA有如下缺點:

  • 初次載入耗時增加。可以通過代碼拆分、懶載入來提升性能,減少初次載入耗時。

  • SEO不友好,現在可以通過Prerender或Server render來解決一部分。

  • 頁面的前進和後端需要開發者自己寫,不過現在一些路由庫已經幫助我們基本解決了。

  • 對開發者要求高,由於做SPA需要了解一整套技術棧,所以,要考慮後期是否有合適的人選進行維護。

『柒』 web前端應屆畢業生不好找工作!

對於這個問題,我想你首先要對自己的能力有個評估。因為畢竟是學校里學的知識,可能由於自身學習的局限性,或者知識的零散,又或者是沒有相關的案例練習,導致自己的能力無法達到企業入職要求。另外,你也要對你想工作的崗位有一個計劃,前端開發可以從事的崗位很廣泛,前端開發工程師、資深前端開發工程師、網站重構工程師、前端架構師等等。都是可以選擇的方向。不過最主要的,決定你工作崗位的還是你的能力。如果你有足夠強的能力,那前端開發其實是一個前景很不錯的行業。前端工程師人員的缺口將達到10多萬,各大企業對前端開發的人員需求量也是相當大。隨著互聯網的迅猛發展,各種互聯網項目也不斷興起,前端在今後十年仍有很大的發展空間。根據某招聘網站上的信息來看,以成都地區為例,前端開發的應屆生或工作一年經驗的工作者平均薪資能夠達到6000+,工作經驗三到五年的工作者薪資能夠達到1w+。

總得來說,前端開發一定是一個前途光明的崗位,關鍵是看你自己的能力能否對的上這份崗位。

『捌』 自學 Web 前端真的很難找到工作嘛

不管你是自學還是培訓,找工作主要看的是技術能力、相關工作經驗、綜合實力及溝通能力等。只是對於自學的小夥伴來說,不知道企業需要哪些技術,並且不知道需要達到什麼樣的技術水平才能就業?所以在學習過程中很迷茫,學了很久之後也可能達不到要求,因此找工作很難。蝸牛學院這里根據行業變化和企業需求整理了一份最新的web前端學習路線,都是企業招聘時所需的技術,希望對自學的小夥伴有所幫助。

第一階段:專業核心基礎

階段目標:

1. 熟練掌握HTML5、CSS3、Less、Sass、響應書布局、移動端開發。

2. 熟練運用HTML+CSS特性完成頁面布局。

4. 熟練應用CSS3技術,動畫、彈性盒模型設計。

5. 熟練完成移動端頁面的設計。

6. 熟練運用所學知識仿製任意Web網站。

7. 能綜合運用所學知識完成網頁設計實戰。

知識點:

1、Web前端開發環境,HTML常用標簽,表單元素,Table布局,CSS樣式表,DIV+CSS布局。熟練運用HTML和CSS樣式屬性完成頁面的布局和美化,能夠仿製任意網站的前端頁面實現。

2、CSS3選擇器、偽類、過渡、變換、動畫、字體圖標、彈性盒模型、響應式布局、移動端。熟練運用CSS3來開發網頁、熟練開發移動端,整理網頁開發技巧。

3、預編譯css技術:less、sass基礎知識、以及插件的運用、BootStrap源碼分析。能夠熟練使用 less、sass完成項目開發,深入了解BootStrap。

4、使用HTML、CSS、LESS、SASS等技術完成網頁項目實戰。通過項目掌握第一階段html、css的內容、完成PC端頁面設計和移動端頁面設計。

第二階段:Web後台技術

階段目標:

1. 了解JavaScript的發展歷史、掌握Node環境搭建及npm使用。

2. 熟練掌握JavaScript的基本數據類型和變數的概念。

3. 熟練掌握JavaScript中的運算符使用。

4. 深入理解分之結構語句和循環語句。

5. 熟練使用數組來完成各種練習。

6.熟悉es6的語法、熟練掌握JavaScript面向對象編程。

7.DOM和BOM實戰練習和H5新特性和協議的學習。

知識點:

1、軟體開發流程、演算法、變數、數據類型、分之語句、循環語句、數組和函數。熟練運用JavaScript的知識完成各種練習。

2、JavaScript面向對象基礎、異常處理機制、常見對象api,js的兼容性、ES6新特性。熟練掌握JavaScript面向對象的開發以及掌握es6中的重要內容。

3、BOM操作和DOM操作。熟練使用BOM的各種對象、熟練操作DOM的對象。

4、h5相關api、canvas、ajax、數據模擬、touch事件、mockjs。熟練使用所學知識來完成網站項目開發。

第三階段:資料庫和框架實戰

階段目標:

1. 綜合運用Web前端技術進行頁面布局與美化。

2. 綜合運用Web前端開發框架進行Web系統開發。

3. 熟練掌握Mysql、Mongodb資料庫的發開。

4. 熟練掌握vue.js、webpack、elementui等前端框技術。

5. 熟練運用Node.js開發後台應用程序。

6. 對Restful,Ajax,JSON,開發過程有深入的理解,掌握git的基本技能。

知識點:

1、資料庫知識,範式,MySQL配置,命令,建庫建表,數據的增刪改查,mongodb資料庫。深入理解資料庫管理系統通用知識及MySQL資料庫的使用與管理,為Node.js後台開發打下堅實基礎。

2、模塊系統,函數,路由,全局對象,文件系統,請求處理,Web模塊,Express框架,MySQL資料庫處理,RestfulAPI,文件上傳等。熟練運用Node.js運行環境和後台開發框架完成Web系統的後台開發。

3、vue的組件、生命周期、路由、組件、前端工程化、webpack、elementui框架。Vue.js框架的基本使用有清晰的理解,能夠運用Vue.js完成基礎前端開發、熟練運用Vue.js框架的高級功能完成Web前端開發和組件開發,對MVVM模式有深刻理解。

4、需求分析,資料庫設計,後台開發,使用vue、node完成pc和移動端整站開發。於Node.js+Vue.js+Webpack+Mysql+Mongodb+Git,實現整站項目完整功能並上線發布。

第四階段:移動端和微信實戰

階段目標:

1.熟練掌握React.js框架,熟練使用React.js完成開發。

2.掌握移動端開發原理,理解原生開發和混合開發。

3.熟練使用react-native和Flutter框架完成移動端開發。

4.掌握微信小程序以及了解支付寶小程序的開發。

5.完成大型電商項目開發。

知識點:

1、React面向組件編程、表單數據、組件通信、監聽、聲明周期、路由、Rex基本概念。練使用react完成項目開發、掌握Rex中的非同步解決方案Saga。

2、react-native、開發工具、視圖與渲染、api操作、Flutter環境搭建、路由、ListView組件、網路請求、打包。練掌握react-native和Flutter框架,並分別使用react-native和Flutter分別能開發移動端項目。

3、微信小程序基本介紹、開發工具、視圖與渲染、api操作、支付寶小程序的入門和api學習。掌握微信小程序開發了解支付寶小程序。

4、大型購物網站實戰,整個項目前後端分離開發;整個項目分為四部分:PC端網頁、移動端APP、小程序、後台管理。團隊協作開發,使用git進行版本控制。目期間可以擴展Three.js 、TypeScript。

『玖』 微服務有哪些設計原則

微服務應用4個設計原則:

作為一個原則來講本來應該是個「無狀態通信原則」,在這里我們直接推薦一個實踐優選的Restful 通信風格 ,因為他有很多好處:

  • 無狀態協議HTTP,具備先天優勢,擴展能力很強。例如需要安全加密是,有現成的成熟方案HTTPS可用。

  • JSON 報文序列化,輕量簡單,人與機器均可讀,學習成本低,搜索引擎友好。

  • 語言無關,各大熱門語言都提供成熟的Restful API框架,相對其他的一些RPC框架生態更完善。

  • 當然在有些特殊業務場景下,也需要採用其他的RPC框架,如thrift、avro-rpc、grpc。但絕大多數情況下Restful就足夠用了。