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

跨公網(wǎng)調(diào)用的大坑與架構(gòu)優(yōu)化方案

開發(fā) 開發(fā)工具
跨公網(wǎng)依賴的第三方服務(wù)掛了,自己的服務(wù)如何能不受影響,下面我們來講一講。

第三方接口掛掉,我們的服務(wù)會受影響么?

一、緣起與大坑

很多時候,業(yè)務(wù)需要跨公網(wǎng)調(diào)用一個第三方服務(wù)提供的接口,為了避免每個調(diào)用方都依賴于第三方服務(wù),往往會抽象一個服務(wù):

  • 解除調(diào)用方與第三方接口的耦合
  • 當(dāng)?shù)谌降慕涌谧儎訒r,只有服務(wù)需要修改,而不是所有調(diào)用方均修改

1. 此時接口調(diào)用流程是什么樣的呢?

接口調(diào)用流程

如上圖所述:

  • 業(yè)務(wù)調(diào)用方調(diào)用內(nèi)部service
  • 內(nèi)部service跨公網(wǎng)調(diào)用第三方接口
  • 第三方接口返回結(jié)果給內(nèi)部service
  • 內(nèi)部service返回結(jié)果給業(yè)務(wù)調(diào)用方

2. 這個過程存在什么潛在的大坑呢?

內(nèi)部服務(wù)可能對上游業(yè)務(wù)提供了很多服務(wù)接口,當(dāng)有一個接口跨公網(wǎng)第三方調(diào)用超時時,可能導(dǎo)致所有接口都不可用,即使大部分接口不依賴于跨公網(wǎng)第三方調(diào)用。

3. 為什么會出現(xiàn)這種情況呢?

內(nèi)部服務(wù)對業(yè)務(wù)方提供的N個接口,會共用服務(wù)容器內(nèi)的工作線程(假設(shè)有100個工作線程)。

假設(shè)這N個接口的某個接口跨公網(wǎng)依賴于第三方的接口,發(fā)生了網(wǎng)絡(luò)抖動,或者接口超時(不妨設(shè)超時時間為5秒)。

潛臺詞是,這個工作線程會被占用5秒鐘,然后超時返回業(yè)務(wù)調(diào)用方。

假設(shè)這個請求的吞吐量為20qps,言下之意,很短的時間內(nèi),所有的100個工作線程都會被卡在這個第三方超時等待上,而其他N-1個原本沒有問題的接口,也得不到工作線程處理。

4. 潛在優(yōu)化方案?

  • 增大工作線程數(shù)(不根本解決問題)
  • 降低超時時間(不根本解決問題)
  • 垂直拆分,N個接口拆分成若干個服務(wù),使得在出問題時,被牽連的接口盡可能少(依舊不根本解決問題,難道一個服務(wù)只提供一個接口嗎?)

跨公網(wǎng)調(diào)用的穩(wěn)定性優(yōu)化,是本文要討論的問題。

二、異步代理法

業(yè)務(wù)場景:通過OpenID實時獲取微信用戶基本信息

解決方案:增加一個代理,向服務(wù)屏蔽究竟是“本地實時”還是“異步遠(yuǎn)程”去獲取返回結(jié)果

異步代理法

本地實時流程如上圖:

(1)業(yè)務(wù)調(diào)用方調(diào)用內(nèi)部service

(2)內(nèi)部service調(diào)用異步代理service

(3)異步代理service通過OpenID在本地拿取數(shù)據(jù)

(4)異步代理service將數(shù)據(jù)返回內(nèi)部service

(5)內(nèi)部service返回結(jié)果給業(yè)務(wù)調(diào)用方

異步遠(yuǎn)程流程如上圖6-8粗箭頭的部分:

(6)異步代理service定期跨公網(wǎng)調(diào)用微信服務(wù)

(7)微信服務(wù)返回數(shù)據(jù)

(8)刷新本地數(shù)據(jù)

優(yōu)點:公網(wǎng)抖動,第三方接口超時,不影響內(nèi)部接口調(diào)用

不足:本地返回的不是***數(shù)據(jù)(很多業(yè)務(wù)可以接受數(shù)據(jù)延時)

有時候,內(nèi)部service和異步代理service可以合成一個service。

三、第三方接口備份與切換法

業(yè)務(wù)場景:調(diào)用第三方短信網(wǎng)關(guān),或者電子合同等

解決方案:同時使用(或者備份)多個第三方服務(wù)

第三方接口備份與切換法

流程如上圖:

(1)業(yè)務(wù)調(diào)用方調(diào)用內(nèi)部service

(2)內(nèi)部service調(diào)用***個三方接口

(3)超時后,調(diào)用第二個備份服務(wù),未來都直接調(diào)用備份服務(wù),直到超時的服務(wù)恢復(fù)

(4)內(nèi)部service返回結(jié)果給業(yè)務(wù)調(diào)用方

優(yōu)點:公網(wǎng)抖動,第三方接口超時,不影響內(nèi)部接口調(diào)用(初期少數(shù)幾個請求會超時)

不足:不是所有公網(wǎng)調(diào)用都能夠像短息網(wǎng)關(guān),電子合同服務(wù)一樣有備份接口的,像微信、支付寶等就只此一家

四、異步調(diào)用法

業(yè)務(wù)場景:本地結(jié)果,同步第三方服務(wù),例如用戶在58到家平臺下單,58到家平臺需要通知平臺商家為用戶提供服務(wù)

解決方案:本地調(diào)用成功就返回成功,異步調(diào)用第三方接口同步數(shù)據(jù)(和異步代理有微小差別)

本地流程如上圖:

(1)業(yè)務(wù)調(diào)用方調(diào)用內(nèi)部service

(2)內(nèi)部service寫本地數(shù)據(jù)

(3)內(nèi)部service返回結(jié)果給業(yè)務(wù)調(diào)用方成功

異步流程如上圖4-5粗箭頭的部分:

(4)異步service定期將本地數(shù)據(jù)取出(或者通知也行,實時性好)

(5)異步調(diào)用第三方接口同步數(shù)據(jù)

優(yōu)點:公網(wǎng)抖動,第三方接口超時,不影響內(nèi)部接口調(diào)用

不足:不是所有業(yè)務(wù)場景都可以異步同步數(shù)據(jù)

五、總結(jié)

跨公網(wǎng)調(diào)用第三方,可能存在的問題:

  • 公網(wǎng)抖動,第三方服務(wù)不穩(wěn)定,影響自身服務(wù)
  • 一個接口超時,占住工作線程,影響其他接口

降低影響的優(yōu)化方案:

  • 增大工作線程數(shù)
  • 降低超時時間
  • 服務(wù)垂直拆分

業(yè)務(wù)需求決定技術(shù)方案,結(jié)合業(yè)務(wù)的解決方案:

  • 業(yè)務(wù)能接受舊數(shù)據(jù):讀取本地數(shù)據(jù),異步代理定期更新數(shù)據(jù)
  • 有多個第三方服務(wù)提供商:多個第三方互備
  • 向第三方同步數(shù)據(jù):本地寫成功就算成功,異步向第三方同步數(shù)據(jù)

希望第三方的服務(wù)掛掉,不再影響大家的服務(wù)。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2016-06-17 13:43:15

OpenStackSwift跨地域存儲集群

2011-07-06 14:12:20

MySQLPercona

2022-03-15 17:35:20

電商系統(tǒng)架構(gòu)

2011-07-06 10:49:50

MySQL優(yōu)化

2021-05-27 05:22:28

前端引擎平臺

2023-11-18 19:46:07

GPU架構(gòu)

2018-07-06 15:04:24

緩存token線程

2023-11-17 09:38:21

2023-09-14 10:55:16

2015-05-25 19:15:39

2015-04-14 10:03:10

iOS應(yīng)用架構(gòu)

2015-05-27 09:57:28

2010-05-21 14:01:23

MySQL數(shù)據(jù)庫

2010-06-04 11:28:05

MySQL數(shù)據(jù)庫

2018-04-08 16:51:41

解決方案架構(gòu)師

2013-11-26 13:23:14

WAN優(yōu)化Riverbed

2017-05-23 16:26:26

MySQL優(yōu)化處理

2010-02-01 10:10:41

Oracle數(shù)據(jù)庫優(yōu)化

2023-04-16 19:34:01

2013-09-17 10:17:39

Android布局
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品欧美在线观看 | 日韩亚洲一区二区 | a级性视频| 91大片| 国产精品免费一区二区三区四区 | 91久久国产综合久久91精品网站 | 亚洲成av片人久久久 | 国外成人在线视频网站 | 久久精品一级 | 免费高清av | 羞羞视频在线网站观看 | 久久精品免费观看 | 夜夜精品浪潮av一区二区三区 | 日本欧美国产在线 | 久久精品国产一区二区电影 | 亚洲欧美日韩一区 | 日韩1区 | 欧美一区二区三区久久精品 | 日韩在线看片 | 欧美日韩国产一区二区三区 | 亚洲成人中文字幕 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | yiren22 亚洲综合 | 国产亚洲精品精品国产亚洲综合 | 欧美天堂 | 久久久久亚洲精品 | 黑人精品欧美一区二区蜜桃 | 中文字幕一区在线观看视频 | 中文字幕第十页 | 五月婷婷视频 | 欧美白人做受xxxx视频 | 欧美不卡一区二区三区 | 国产成人在线一区 | 成人欧美一区二区三区在线播放 | 激情五月婷婷在线 | 91精品国产综合久久久久久 | 亚洲男女激情 | 国产欧美精品区一区二区三区 | 亚洲精品久久久蜜桃 | 五月网婷婷 | 亚洲天堂中文字幕 |