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

微服務什么情況下用Http協議通信,什么時候要用Lrpc?

網絡 網絡管理
哪怕是微服務模塊間交互用http協議,其實性能不慢,能應對大多數項目的需求,而且開發起來相當便利,所以很多小公司在做利潤一般的項目時,優先考慮用基于http的組件。

先說如下的結論。

1 Spring cloud微服務,以及第二代微服務,spring cloud alibaba,可以用openfeign來調用,即走的是http或https協議,也可以通過dubbo,dubbo就是所謂的rpc,rpc叫遠程方法調用,是一種實現方式,底層實現一般是得靠tcp或udp等通訊協議。

2 http協議由于會包含請求頭之類的信息,所以效率相對tcp協議來說有些慢,但如果并發量不高,http所謂的低效可以忽略不計,而https協議由于多了基于SSL的安全驗證動作,所以通訊效率比http還略低,但如果并發量不高的話,這也是可以接受的。

3 在微服務架構,也可以用resttemplate的方式來遠程調用,或者是用restful的方式,但restful也是調用方式,底層實現是用http或https。

4 可以這樣說,在大多數的場景,尤其是中小公司所開發的項目場景,用spring cloud+http協議,足以應對項目的并發請求。而且一旦并發量高的話,可以通過基于nacos的擴容和基于redis的緩存等手段來應對,如果再要進一步挖掘性能潛力,那么再用基于tcp的通訊協議,比如用dubbo或netty,但這對程序員就有要求,而用spring cloud+基于http的openfeign,基本上大多數初級開發也能用。

如下具體展開說明。

1 各微服務模塊間交互,當下一般是基于http協議,或者是rpc(tcp),比如是dubbo,但兩者的性能差別不大,再者比如要應對高并發,比如是支付場景,一般是啟3個實例,用nacos管理,外面再用gateway等網關來做負載均衡。

這樣的話,2個實例(熱備,避免單點失效),應對個一秒幾百并發量問題不大,事實上大多數項目,真達不到一秒100的并發量。換句話說,spring cloud alibaba+nacos+gateway+2個實例,哪怕用http協議,甚至再引入有ssl安全性驗證的https,真能滿足大多數項目的并發需求。

2 如果想要性能調優,比如要達到一秒2k甚至更高的并發量,最直接的方法就是用機器疊, 比如把一個實例部署多個機器上,一個機器應對一秒500的并發量,那么就部個4臺機器。一般有高并發需求的項目或者公司都不怎么差錢,部署4個實例也是常事。

而且應對高并發,其實更在于數據庫層面和業務交互層面,如果在項目里引入redis或者redis集群,或者分庫組件,或者再引入kafka做業務異步處理,外帶3,4個實例,哪怕用的是基于http協議的openfeign,應對個2,3k并發量沒太大問題。

3 還有一點大家需要注意,spring cloud alibaba組件是開箱即用的,所以用基于http協議的openfeign實現組件間的調用,一般有半年項目經驗的初級開發都能做到,或者再引入SSL,用https協議通訊,開發難度也不大。

4 微服務模塊間通訊,除了http,其實也可以用tcp,tcp的效率是要高于http,本人之前在高并發項目里做過這方面的調優,同等條件,用tcp協議通訊,效率一般比https和http協議高出大概1/3。

但是如果用tcp交互,雖然不用在通訊過程中傳輸業務無關的http請求頭和返回頭信息,但開發交互過程中,得自己確保數據的完整性,比如用md5,得自己編寫數據報文的協議,一般還需要用netty或其它組件的線程模型來處理高并發情況下的tcp請求,這些工作的難度就不是初級開發能做的。

所以,哪怕是微服務模塊間交互用http協議,其實性能不慢,能應對大多數項目的需求,而且開發起來相當便利,所以很多小公司在做利潤一般的項目時,優先考慮用基于http的組件。

當然如果對性能有更高要求的話,其實要在協議層做改進,比如用tcp,這已經是很后面的事情了,一定是在窮盡擴容,引入redis和kafka等組件的措施之后再用tcp等協議,但這對程序員的要求就比較高了。

如果有人面試時說,自己用http或rpc,其實問題都不大,但大多數人一般僅限于是使用api,比如dubbo或openfeign或resttemplate的api。再要進一步,可以說,用到http或rpc,但通過性能測試,發現要在項目里再引入redis等組件來確保業務所需的并發量。

再高級一些的話,可以是結合dubbo或netty底層,說rpc的細節,這還不算,更可以結合自身項目的調優場景說rpc的細節,比如實現tcp通訊的流程或者解決過的問題。

責任編輯:武曉燕 來源: 老胡聊Java
相關推薦

2020-09-24 09:43:59

Http協議options請求

2010-07-13 16:07:26

SQL Server行

2023-11-23 23:52:06

options請求瀏覽器

2013-07-29 14:50:43

API

2013-09-12 10:41:39

VDI部署

2015-06-01 06:39:18

JavaJava比C++

2020-11-18 09:26:52

@property裝飾器代碼

2023-03-29 15:01:43

微服務開發

2022-09-27 15:06:07

微服務架構開發

2022-08-29 10:35:42

微服務架構單體應用

2015-07-08 15:55:01

NSStringcopystrong

2013-09-23 10:05:50

2023-05-18 08:38:13

Java鎖機制

2015-06-29 14:23:13

JavaC++慢很多

2014-11-03 09:52:25

DNSUDPTCP

2024-01-09 11:39:47

數字化轉型數字優先企業

2009-03-05 10:55:00

企業無線Wi-Fi

2021-06-04 09:17:13

JavaScriptBoolean函數

2012-04-25 09:24:40

Android

2021-09-14 07:26:25

雪花算法ID
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色偷偷噜噜噜亚洲男人 | 一级毛片视频 | 亚洲最新在线 | 精品一区二区三区不卡 | 男人的天堂久久 | 紧缚调教一区二区三区视频 | 日韩av一区二区在线观看 | 色婷婷av久久久久久久 | 国产一区二区三区免费 | 91在线网 | 国产精品久久9 | av中文字幕网站 | 国产精品99久久久久久宅男 | 999热视频 | 国产精品女人久久久 | 欧美一区视频 | www.亚洲视频.com | 亚洲综合网站 | www.一级片 | 一区二区视频在线 | 国产精品久久久久久久久久免费看 | 亚洲成人精品国产 | 免费久久久久久 | 国产片网站 | 欧美一级免费 | 色久伊人 | 国精产品一品二品国精在线观看 | 欧美在线高清 | 免费国产一区二区 | 亚洲高清一区二区三区 | 精品伊人 | 欧美激情国产精品 | 日韩电影一区 | 亚洲成人中文字幕 | 一区二区三区久久久 | 国产情品 | 国产成年人视频 | 欧美一区成人 | 国产精品久久7777777 | 国产精品精品视频一区二区三区 | 免费久|