国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?

這篇具有很好參考價(jià)值的文章主要介紹了僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近有個(gè)項(xiàng)目需要本地處理之后,然后調(diào)用第三方接口,本來(lái)開(kāi)始覺(jué)得很簡(jiǎn)單得事情,不就是調(diào)用第三方接口嗎?但是卻一波三折。

初版

首先有了下面的第一版的設(shè)計(jì)。

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?

這個(gè)設(shè)計(jì)很簡(jiǎn)單,也是最容易想到的。主要有下面幾步

1、本地處理;

2、調(diào)用第三方接口;

3、本地日志打印,包括是否調(diào)用成功及失敗原因等;

看似很簡(jiǎn)單的過(guò)程,卻在線上出了問(wèn)題,我們說(shuō)看一個(gè)功能是否穩(wěn)定,不是看99.9%的正常,而是看0.01%的失敗。沒(méi)錯(cuò),線上報(bào)錯(cuò)了,問(wèn)題出現(xiàn)在調(diào)用第三方接口的時(shí)候由于網(wǎng)絡(luò)問(wèn)題,超時(shí)了,真尷尬,

分析這個(gè)方案有以下幾個(gè)不足,

1、沒(méi)有重試功能;

2、調(diào)用接口記錄未持久化;

為此在第一版的基礎(chǔ)上做了修改;

優(yōu)化版本

優(yōu)化版本考慮了上面的兩個(gè)不足之處,對(duì)調(diào)用第三方接口進(jìn)行了重試,且把調(diào)用記錄寫(xiě)進(jìn)本地表;

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?

改進(jìn)方案有幾個(gè)需要注意的地方,

1、重試,由于是第一次調(diào)用失敗便要重試,要注意重試的次數(shù),可以在系統(tǒng)中設(shè)計(jì)一個(gè)最大重試次數(shù)(比如5次),超過(guò)最大重試次數(shù)不再重試,每次的重試可以有一定的間隔,可以采用當(dāng)前線程睡眠的方式,睡眠的時(shí)間可以隨著重試次數(shù)增大二增加;

2、記錄調(diào)用日志,這里調(diào)用日志記錄在mysql中,mysql的表結(jié)構(gòu)可參考,

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?

另外,由于包含重試,對(duì)于調(diào)用日志的話,考慮是否要區(qū)分重試日志;還有一點(diǎn)就是是否需要一個(gè)最終的調(diào)用結(jié)果。

改進(jìn)版上線后,返現(xiàn)確實(shí)線上調(diào)用第三方接口失敗的情況很少了,但是還是存在失敗的情況,由于已經(jīng)把調(diào)用記錄保存在了mysql中,為此針對(duì)重試仍然失敗的情況可以單啟一個(gè)定時(shí)任務(wù),

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?

好了,有了定時(shí)任務(wù),針對(duì)調(diào)用失敗的情況可以進(jìn)行再次執(zhí)行,那么成功的幾率就很高了,換而言之失敗的情況很少了。

如果還是有失敗的情況,那么應(yīng)該從調(diào)用方式、第三方接口是否正常等方面去排查,程序方面很難有所改進(jìn)了。

其實(shí)針對(duì)重試這塊還可以直接使用定時(shí),這種情況對(duì)于實(shí)時(shí)性要求不高的情況完全可以,也就是下面的樣子,

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?

這就是直接定時(shí)掃描調(diào)用記錄表,定時(shí)執(zhí)行。不過(guò),仍然會(huì)出現(xiàn)一直失敗的情況,那就陷入死循環(huán)了,可以針對(duì)掃描范圍作一個(gè)限制,比如最近7天的記錄,超過(guò)這個(gè)時(shí)間即使失敗也不會(huì)再執(zhí)行定時(shí)重調(diào)了。

除了在程序中作重試外還有其他方案嗎?

最優(yōu)版本嗎

日常的開(kāi)發(fā)中肯定都用過(guò)MQ,用來(lái)生產(chǎn)及消費(fèi)消息,那么這里的重試便可以使用MQ,把第一次調(diào)用第三方接口失敗作為消息投遞到MQ,再重啟另外的服務(wù)去消費(fèi)MQ,在消費(fèi)者中進(jìn)行重試。

這種方案適合調(diào)用第三方接口較多,而且對(duì)主程序性能要求較高的情況,把重試從主程序中分離開(kāi),可以避免重試成為影響程序性能的瓶頸。

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?

這個(gè)方案的優(yōu)點(diǎn)是將重試和主程序分割開(kāi)來(lái),起到了解耦的作用??赡苡胁簧贂?huì)問(wèn)消費(fèi)MQ如果第一次執(zhí)行失敗怎么辦,MQ已經(jīng)考慮到這個(gè)問(wèn)題了,MQ可以重發(fā),感興趣的小伙伴可以了解下哦。

?

總結(jié),通過(guò)上邊的幾種方案,可以看到調(diào)用第三方接口看似簡(jiǎn)單,其實(shí)內(nèi)含玄機(jī)。到底采用哪種方案要根據(jù)實(shí)際情況而定,不要因?yàn)橄胧褂檬裁醇夹g(shù)而去采取相應(yīng)的方案,只有適合的才是最好的??梢詮南旅鎺讉€(gè)方面考慮,

1、系統(tǒng)性能;

2、實(shí)時(shí)性;

3、系統(tǒng)調(diào)用量;

好了,讀到這里的小伙伴,不知道對(duì)于調(diào)用第三方接口,有沒(méi)有其他的想法,歡迎交流哦。

僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-462516.html

到了這里,關(guān)于僅僅是調(diào)用第三方接口那么簡(jiǎn)單嗎?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 借助HttpWebRequest 調(diào)用第三方接口,獲取Token和數(shù)據(jù)

    1、傳入語(yǔ)句獲取數(shù)據(jù) 2、獲取token 3、獲取設(shè)置身份認(rèn)證及請(qǐng)求超時(shí)時(shí)間 4、在我使用的時(shí)候出現(xiàn)了下面的錯(cuò)誤,通過(guò)查找是證書(shū)的問(wèn)題,因?yàn)榭蛻舻膚eb訪問(wèn)使用的IP地址訪問(wèn),所以在代碼中要加入跳過(guò)ssl驗(yàn)證的一行代碼

    2024年03月18日
    瀏覽(25)
  • SAP PO 接口配置1:連通WebService-通過(guò)PO調(diào)用第三方接口

    SAP PO 接口配置1:連通WebService-通過(guò)PO調(diào)用第三方接口

    SAP 通過(guò) PO 中間件進(jìn)行接口調(diào)用,調(diào)用外部接口。 外部接口可以用任意方式生成,常見(jiàn)的REST類型接口即可,關(guān)于如何使用python生成接口,其他章節(jié)另述。 本教程的前置條件,PO中已配置Business Systems,并與SAP環(huán)境連通。 這里以常見(jiàn)的post接口做示例,如有其他類型接口,需要每

    2024年02月05日
    瀏覽(93)
  • SpringBoot調(diào)用第三方WebService接口的兩種實(shí)現(xiàn)方式

    SpringBoot調(diào)用第三方WebService接口的兩種實(shí)現(xiàn)方式

    WebService接口的發(fā)布通常一般都是使用WSDL(web service descriptive language)文件的樣式來(lái)發(fā)布的,該文檔包含了請(qǐng)求的參數(shù)信息,返回的結(jié)果信息,我們需要根據(jù)WSDL文檔的信息來(lái)編寫(xiě)相關(guān)的代碼進(jìn)行調(diào)用WebService接口。接下來(lái)我將采用常見(jiàn)的兩種方式調(diào)用WebService接口。 目前我需要

    2024年02月12日
    瀏覽(19)
  • JAVA調(diào)用第三方接口的GET/POST/PUT請(qǐng)求方式

    GET請(qǐng)求 POST請(qǐng)求 POST請(qǐng)求(JSON傳參) PUT請(qǐng)求(傳TOKEN)

    2024年02月03日
    瀏覽(26)
  • Java以form-data(表單)的形式調(diào)用第三方接口

    Java以form-data(表單)的形式調(diào)用第三方接口

    之前寫(xiě)的調(diào)用第三方接口: Java使用原生API調(diào)用第三方接口 但是其中只包含了簡(jiǎn)單的接口(傳遞數(shù)據(jù)為JSON)調(diào)用。也就是 Content-Type 的值是設(shè)置成: 當(dāng)?shù)谌浇涌谛枰?文件 類型的參數(shù),我們要設(shè)置成以 表單形式 提交,就要那么該屬性就應(yīng)該設(shè)置成 表示是以 表單形式

    2024年02月02日
    瀏覽(19)
  • Springboot實(shí)現(xiàn)上傳文件,并實(shí)現(xiàn)調(diào)用第三方接口post請(qǐng)求多文件上傳文件

    項(xiàng)目過(guò)程中,經(jīng)常會(huì)有和第三方接口打交道的過(guò)程,今天實(shí)現(xiàn)調(diào)用第三方上傳文件的接口??! 通常拿到第三方的接口文檔的時(shí)候,不是第一時(shí)間先寫(xiě)代碼,而是詳細(xì)閱讀接口文檔。若接口需要第三方提供的基本參數(shù),例如signkey, secrect等,也可以是其他的,查看文檔里是否提

    2024年02月16日
    瀏覽(19)
  • 【Springboot系列】Springboot系列-調(diào)用第三方接口的五種方式匯總,代碼實(shí)例

    在開(kāi)發(fā)中,經(jīng)常需要調(diào)用第三方接口或者其他的應(yīng)用接口來(lái)完成業(yè)務(wù)需求。今天分享下Spring Boot中調(diào)用第三方接口的多種方式。 1、使用OpenFeign進(jìn)行調(diào)用(推薦) 2、使用原始httpClient請(qǐng)求 3、使用RestTemplate方法 4、使用hutool.httputil 5、使用OkHttp3 Feign是一個(gè)聲明式的Web Service客戶端

    2024年02月11日
    瀏覽(26)
  • feign自定義第三方接口;配置化Feign接口URL;調(diào)用指定IP的feign服務(wù)

    最近接手一個(gè)項(xiàng)目,各子工程之間通過(guò)feign調(diào)用;各服務(wù)部署在K8S上,通過(guò)nacos管理配置;由于服務(wù)部署的機(jī)器無(wú)法開(kāi)放端口等原因,導(dǎo)致本機(jī)服務(wù)與測(cè)試環(huán)境網(wǎng)絡(luò)端口無(wú)法互通,故需要重寫(xiě)feign的調(diào)用地址;個(gè)人總結(jié)的方法有以下幾種: 目錄 ?第一種:feignclient配置URL 第二種

    2024年02月04日
    瀏覽(23)
  • 從頭開(kāi)始用JAVA創(chuàng)建一個(gè)自己的簡(jiǎn)單API并實(shí)現(xiàn)第三方調(diào)用

    從頭開(kāi)始用JAVA創(chuàng)建一個(gè)自己的簡(jiǎn)單API并實(shí)現(xiàn)第三方調(diào)用

    ????????相信大家對(duì)這個(gè)詞匯并不陌生,通俗來(lái)說(shuō)API就是程序之間的接口,在學(xué)習(xí)和工作中經(jīng)常會(huì)調(diào)用別人的API,那么如果我們要做一個(gè)自己的API,要如何下手呢。本文將用Spring+JAVA編寫(xiě)一個(gè)簡(jiǎn)單的API,過(guò)程可供初學(xué)者參考。 ? ? ? ? 為了顧及完全沒(méi)有經(jīng)驗(yàn)的小白(比如我

    2024年02月10日
    瀏覽(20)
  • 萬(wàn)字長(zhǎng)文講解調(diào)用第三方接口,RestTemplate,urlConnection使用詳解,java代碼模擬postman發(fā)送請(qǐng)求

    萬(wàn)字長(zhǎng)文講解調(diào)用第三方接口,RestTemplate,urlConnection使用詳解,java代碼模擬postman發(fā)送請(qǐng)求

    業(yè)務(wù)場(chǎng)景 :在日常開(kāi)發(fā)中,經(jīng)常需要調(diào)用第三方接口,例如調(diào)用物流接口,此時(shí)需要利用urlConnection或者restTemplate模擬postman發(fā)送請(qǐng)求,請(qǐng)求支持加header ,設(shè)置content-type支持傳遞json;請(qǐng)求方式get,post,也可以需要傳遞文件,或者傳遞文件流; 下面這個(gè)例子就包含日常開(kāi)發(fā)中大

    2024年02月05日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包