虛擬號(hào)在轉(zhuǎn)轉(zhuǎn)實(shí)踐與應(yīng)用
總體來(lái)說(shuō),就是要設(shè)計(jì)并實(shí)施異常處理、超時(shí)設(shè)置、重試機(jī)制、斷路器以及監(jiān)控與報(bào)警等措施。這些措施可以有效地保護(hù)系統(tǒng),避免因不可控因素導(dǎo)致的故障和不穩(wěn)定。
(資料圖片)
1.介紹
虛擬號(hào)是一種基于互聯(lián)網(wǎng)技術(shù)的電話號(hào)碼服務(wù)。它通過(guò)將電話號(hào)碼與用戶的手機(jī)或其他通信設(shè)備綁定,實(shí)現(xiàn)了在不同設(shè)備上接聽(tīng)和撥打電話的便利,保護(hù)用戶號(hào)碼隱私,記錄通話中內(nèi)容及信息等,虛擬號(hào)的主要特點(diǎn)包括以下幾個(gè)方面:
隱私保護(hù):虛擬號(hào)可以作為一個(gè)中間號(hào)碼,將用戶的真實(shí)電話號(hào)碼隱藏起來(lái)。當(dāng)用戶需要提供電話號(hào)碼時(shí),可以使用虛擬號(hào)碼代替,從而保護(hù)個(gè)人隱私。靈活性:虛擬號(hào)可以根據(jù)用戶的需求進(jìn)行設(shè)置和調(diào)整。用戶可以選擇不同的地區(qū)號(hào)碼,甚至可以選擇國(guó)際號(hào)碼,使得自己的電話號(hào)碼更具靈活性和適應(yīng)性。多功能性:虛擬號(hào)不僅可以用于接聽(tīng)和撥打電話,還可以提供一系列增值服務(wù)。例如,用戶可以設(shè)置來(lái)電轉(zhuǎn)接、語(yǔ)音信箱、短信轉(zhuǎn)發(fā)等功能,滿足不同的通信需求。企業(yè)應(yīng)用:虛擬號(hào)在企業(yè)通信中有著廣泛的應(yīng)用。企業(yè)可以通過(guò)虛擬號(hào)為客戶提供更好的服務(wù)體驗(yàn),例如設(shè)置客服熱線、呼叫中心等,提高客戶滿意度和業(yè)務(wù)效率。總之,虛擬號(hào)作為一種創(chuàng)新的電話號(hào)碼服務(wù),為用戶提供了更加靈活、安全和便捷的通信方式。它在個(gè)人和企業(yè)通信中都有著廣泛的應(yīng)用場(chǎng)景。
2.實(shí)踐與應(yīng)用
在門店業(yè)務(wù)的場(chǎng)景下,需要店員/用戶撥打號(hào)碼進(jìn)行售賣/購(gòu)買等信息咨詢,通過(guò)第三方服務(wù)提供的虛擬號(hào)的方式對(duì)雙方手機(jī)號(hào)綁定,通過(guò)虛擬號(hào)來(lái)實(shí)現(xiàn)接聽(tīng)/撥打,有效解決了用戶號(hào)碼隱私保護(hù)的問(wèn)題,以及幫助門店進(jìn)行管理店員話術(shù)監(jiān)控與管理數(shù)據(jù)分析等。
二手交易虛擬號(hào)綁定圖
2.1 名稱解釋
A:用戶手機(jī)號(hào)X:虛擬號(hào)/中間戶B:店員手機(jī)號(hào)第三方:虛擬號(hào)提供服務(wù)方運(yùn)營(yíng)商:電信、聯(lián)通、移動(dòng)各大平臺(tái)2.2 虛擬號(hào)的 XB 模式
XB 模式:指可以將 B(店員手機(jī)號(hào))與 X(虛擬號(hào))進(jìn)行綁定,后續(xù)用戶直接撥打 X(虛擬號(hào))都是由當(dāng)前店員 B 手機(jī)號(hào)進(jìn)行接聽(tīng)。
2.3 虛擬號(hào)的 AXB 模式
AXB 模式:指用戶手機(jī)號(hào) A 與店員手機(jī)號(hào) B,同時(shí)綁定虛擬號(hào)碼 X,后續(xù) A 撥打 X號(hào)碼,B 會(huì)看到 X 號(hào)碼打過(guò)來(lái);同理 B 撥打 X號(hào)碼,A 會(huì)看到X 號(hào)碼打過(guò)來(lái)。
2.4 虛擬號(hào)呼叫流程圖
呼叫流程圖
3. 與第三方交互的版本演進(jìn)
與第三方進(jìn)行交互的過(guò)程中,隨著時(shí)間的推移,業(yè)務(wù)不斷的發(fā)展,服務(wù)方與第三方的交互流程也會(huì)不斷的改版。下面會(huì)說(shuō)明歷史版本與第三方交互中的一些問(wèn)題。
3.1 初始版本綁定流程
圖片
在最初的版本中,交互流程相對(duì)簡(jiǎn)單,只包含基本的綁定和解綁操作。在正常情況下,這種簡(jiǎn)單的交互是沒(méi)有問(wèn)題的。然而,在線上出現(xiàn)最多的情況就是超時(shí)、超時(shí)、還是超時(shí),因?yàn)楹偷谌浇换ザ际腔贖TTP方式進(jìn)行交互,對(duì)于第三方的響應(yīng)時(shí)間是不可控的。一旦響應(yīng)超過(guò)了APP的請(qǐng)求時(shí)間,就會(huì)熔斷請(qǐng)求,導(dǎo)致請(qǐng)求失敗。
3.2 最新版本交互流程
為了保證服務(wù)的可靠性,在最新版本中做了以下優(yōu)化措施:
圖片
優(yōu)化概念模型圖
超時(shí)處理機(jī)制:提供一個(gè)查詢綁定狀態(tài)的接口,APP 不斷輪詢獲取綁定狀態(tài)。前置校驗(yàn)代碼同步,將與第三方綁定/解綁接口進(jìn)行異步化處理。//開(kāi)啟異步線程,執(zhí)行重試方法,進(jìn)行與第三方接口綁定。ThreadUtil.executor.submit(() -> { try { log.info("act=AppOperationHandler type=retryBindXb_retryBindAxb_start"); pstnRetryService.retryBindXb(appOpnParam); } catch (Exception e) { log.error("act=AppOperationHandler type=retryBindXb_retryBindAxb_fail", e);}});
并發(fā)處理機(jī)制:基于樂(lè)觀鎖的方式加鎖實(shí)現(xiàn)避免并發(fā)問(wèn)題。將綁定狀態(tài)添加了一個(gè)操作中的中間態(tài)。NOT_BIND(1, "未綁定"), BIND(2, "已綁定"), OPERATION(3, "操作中");
異常處理機(jī)制:在綁定過(guò)程中,及時(shí)捕獲并處理異常情況,例如調(diào)用第三方接口超時(shí)、服務(wù)端錯(cuò)誤異常等等,通過(guò)重試方式來(lái)保證操作的完整性和一致性。重試基于注解AOP攔截,通過(guò)MQ消息的方式實(shí)現(xiàn)重試。@Override@ZZMQRetry(errorHandler = "onErrorMsgPcBindXb", firstSyncCall = true)public void retryBindXb(PstnBindParam pstnBindParam) { //調(diào)用第三方接口進(jìn)行綁定 String bindId = bindVirtualNumber(pstnBindParam); Boolean executeResult = transactionTemplate.execute(status -> { try { //創(chuàng)建綁定記錄 pstnBindRecordService.insertBindRecord(bindId, pstnBindParam); //狀態(tài)流轉(zhuǎn)至已綁定 return this.xbOpnStateToBind(pstnBindParam.getAssignVirtualNum()); } catch (Exception e) { status.setRollbackOnly(); return Boolean.FALSE; } }); if (Objects.isNull(executeResult) || !executeResult) { throw new BusinessException("修改狀態(tài)異常進(jìn)行重試"); } }
告警處理機(jī)制:在發(fā)生嚴(yán)重異常、或者重試到一定次數(shù)之后任然沒(méi)有成功,發(fā)送告警進(jìn)行通知。public void onErrorMsgPcBindXb(PstnBindParam param) { int retryCount = RetryContext.getRetryCount(); log.info("act=PcOperationHandler type=onErrorMsgPcBindXb retryCount={} ", retryCount); if (retryCount >= RETRY_MAX_NUM) { WxMsgUtil.sendMsg(GROUP, "綁定XB重試"+ retryCount + "次,仍未成功請(qǐng)排查,虛擬號(hào):"+ param.getVirtualNum()); } }
通過(guò)以上優(yōu)化措施,可以提高交互流程的穩(wěn)定性和可靠性,減少業(yè)務(wù)方與服務(wù)方的異常、超時(shí)以及綁定狀態(tài)不一致的情況,從而確保虛擬號(hào)的正常使用,提升系統(tǒng)的穩(wěn)定性和店員使用體驗(yàn)。
axb綁定流程
以上優(yōu)化后的店員撥打電話AXB綁定的流程,在與第三方交互綁定時(shí),開(kāi)啟了一個(gè)新的線程進(jìn)行處理任務(wù),并且在這個(gè)線程中有出現(xiàn)錯(cuò)誤或異常時(shí)就會(huì)重新回到線程入口重新執(zhí)行。通過(guò)異步和循環(huán)查詢狀態(tài)的方式解決了與第三方交互耗時(shí)高的問(wèn)題,有效提高了流程以及使用體驗(yàn)。同時(shí),通過(guò)重試的方式保證了流程的一致性和完整性,避免了因網(wǎng)絡(luò)波動(dòng)或其他異常情況導(dǎo)致的狀態(tài)數(shù)據(jù)不一致問(wèn)題。此外,通過(guò)監(jiān)控告警可以實(shí)時(shí)監(jiān)控系統(tǒng)應(yīng)用的運(yùn)行狀態(tài),并在出現(xiàn)異?;蚬收蠒r(shí)及時(shí)發(fā)出警報(bào)通知,幫助店員及時(shí)處理問(wèn)題,提高整個(gè)流程的可靠性和穩(wěn)定性。
這個(gè)流程只是業(yè)務(wù)中的其中一環(huán),在線上使用還有更復(fù)雜的場(chǎng)景比如同時(shí)綁定xb、axb兩個(gè)場(chǎng)景,怎么能保證都能成功、怎么能保證不超時(shí)、怎么能保證狀態(tài)都一致?
確保流程成功、避免超時(shí)和保持狀態(tài)一致,可以通過(guò)以下步驟來(lái)優(yōu)化:
增加狀態(tài)值:在庫(kù)表中添加兩個(gè)狀態(tài)值,一個(gè)用于XB的綁定狀態(tài),另一個(gè)用于AXB的綁定狀態(tài)。使用樂(lè)觀鎖:在業(yè)務(wù)檢查完成后,以樂(lè)觀鎖的方式同時(shí)更新這兩個(gè)狀態(tài)值。創(chuàng)建線程:創(chuàng)建兩個(gè)線程來(lái)處理XB和AXB的綁定流程,這樣可以保證兩個(gè)流程相互不影響。狀態(tài)流轉(zhuǎn):在流程結(jié)束后,將這兩個(gè)狀態(tài)值流轉(zhuǎn)至已綁定的狀態(tài)。輪詢接口:提供一個(gè)單獨(dú)獲取綁定狀態(tài)的接口,供端輪詢查詢使用,優(yōu)化店員使用體驗(yàn)。通過(guò)以上步驟,可以有效地優(yōu)化流程,確保其成功、避免超時(shí)并保持狀態(tài)一致。
4.上線方案
在進(jìn)行版本優(yōu)化時(shí),盡量保持入口不變,底層改變。這樣可以使得灰度測(cè)試更加容易進(jìn)行。通過(guò)保持入口不變,可以確保用戶在升級(jí)版本時(shí)不會(huì)遇到任何新的障礙或問(wèn)題。
/** * 是否為灰度虛擬號(hào)碼 * * @param grayVirtualNumber * @return */ public boolean isGrayVirtualNumber(String grayVirtualNumber) { return flag || grayVirtualNumberList.contains(grayVirtualNumber); }
根據(jù)阿波羅配置,我們將某個(gè)城市的虛擬號(hào)碼設(shè)置為線上灰度測(cè)試。其他虛擬號(hào)碼仍將使用老版本的服務(wù)接口。在測(cè)試沒(méi)有問(wèn)題后,將直接開(kāi)啟全量即可。
5.重試組件
我們對(duì)添加了@ZZMQRetry的函數(shù)增加了AOP攔截,請(qǐng)求將不會(huì)真正同步執(zhí)行重試函數(shù),而是發(fā)送一條MQ消息;同時(shí)會(huì)自動(dòng)start一個(gè)消費(fèi)組,消費(fèi)函數(shù)為@ZZMQRetry函數(shù)。
圖片
6.總結(jié)
在與第三方服務(wù)的接口交互中,不可控因素是不可避免的。為了確保系統(tǒng)的穩(wěn)定性和可靠性,重要的是采取預(yù)防措施??傮w來(lái)說(shuō),就是要設(shè)計(jì)并實(shí)施異常處理、超時(shí)設(shè)置、重試機(jī)制、斷路器以及監(jiān)控與報(bào)警等措施。這些措施可以有效地保護(hù)系統(tǒng),避免因不可控因素導(dǎo)致的故障和不穩(wěn)定。
關(guān)于作者
徐鑫輝,轉(zhuǎn)轉(zhuǎn)門店技術(shù)部后端研發(fā)工程師
關(guān)鍵詞:
您可能也感興趣:
今日熱點(diǎn)
為您推薦
敘俄軍隊(duì)聯(lián)手打擊,目標(biāo)是
賽微電子:接受華安證券等機(jī)構(gòu)調(diào)研
北京:9月1日起二環(huán)主路全線取消公交專用道
更多
- 珠海一樓盤(pán)5折售賣?珠海住建局:不屬實(shí)
- 核污染水排海掀動(dòng)蝴蝶翅膀!日料店老板:客流量銳減50%,正在...
- 國(guó)內(nèi)沿海港口最大的單體油品庫(kù)區(qū)在山東青島投產(chǎn)運(yùn)營(yíng)
- 芯??萍糃PW6410獲得UFCS融合快充認(rèn)證
- 女子網(wǎng)上曬單位處長(zhǎng)送情趣內(nèi)衣做禮物,官方回應(yīng):已有相關(guān)部...
- OPPO智行助力上汽飛凡打造巴赫座艙數(shù)字生態(tài),構(gòu)建無(wú)縫融合智...
- 生產(chǎn)偽劣化肥罪既遂如何處罰,具體規(guī)定有哪些
- 三星手機(jī)輸入法怎么設(shè)置拼音(三星手機(jī)輸入法怎么設(shè)置)
排行
- 今日建龍集團(tuán)張偉祥和張志祥(建龍老總張志祥是什么背景)
- 成都市行政區(qū)域內(nèi)租房提取住房公積金將執(zhí)行新政
- 創(chuàng)新政策支持不斷 大量租賃房源逐步入市
- 住房公積金各項(xiàng)業(yè)務(wù)運(yùn)行總體平穩(wěn) 資金總體安全
- 【環(huán)球播資訊】領(lǐng)智金融(08163.HK)完成發(fā)行9100萬(wàn)港元的可換股債券
- 中國(guó)石化兩天市值蒸發(fā)681億 子公司交易損失云遮霧罩
- 因事故隱患突出,河南100家道路運(yùn)輸企業(yè)被約談
- 鄢陵縣精城建材有限公司不執(zhí)行重污染天氣管控措施違規(guī)生產(chǎn)
- 工商銀行:通過(guò)“環(huán)球撮合薈”助力海南自貿(mào)港貿(mào)易投資對(duì)接
- 第十九批河南省示范幼兒園名單公布 新批20所16所被摘牌
最近更新
- 虛擬號(hào)在轉(zhuǎn)轉(zhuǎn)實(shí)踐與應(yīng)用
- 成都出讓15宗宅地成交金額95億元,2宗地塊觸頂搖號(hào)
- 19.6億起五塊地,新城市場(chǎng)迎來(lái)年度最大規(guī)模土拍!
- 張良點(diǎn)金:晚間原油現(xiàn)價(jià)80.26多!
- “中東”土豪,難救恒大汽車
- mg25805加墨(mg2580s墨盒加墨)
- 王傳福 投了“天才少年”
- 制造業(yè)服務(wù)業(yè)均萎縮 歐洲經(jīng)濟(jì)下行風(fēng)險(xiǎn)加大
- 《中國(guó)財(cái)富管理能力評(píng)價(jià)報(bào)告(2023上)》發(fā)布:我國(guó)財(cái)富管理...
- 1批次“明君泉”包裝飲用水檢出銅綠假單胞菌
- 鋰電新能源產(chǎn)業(yè)發(fā)展迎來(lái)大機(jī)遇
- 到2025年,長(zhǎng)株潭地區(qū)生產(chǎn)總值或?qū)⑼黄?.5萬(wàn)億元
- 牛肉丸怎么單獨(dú)炒好吃
- 游客突發(fā)心臟“交感電風(fēng)暴”,多方接力展開(kāi)生死急救
- 濟(jì)南103歲老人骨折入院手術(shù) 成為國(guó)內(nèi)骨科機(jī)器人手術(shù)年齡最大...
- 大連4.6級(jí)地震 親歷網(wǎng)友熱議:市民稱震感強(qiáng)烈晃到頭暈 鼠標(biāo)...
- 首批澳門輸內(nèi)地肉制品經(jīng)港珠澳大橋順利通關(guān)
- 7只股票型ETF成交量超1000萬(wàn)手 華夏上證科創(chuàng)板50成份ETF成交3646.98萬(wàn)手
- 機(jī)動(dòng)車年檢新規(guī)2020年新規(guī)定 車輛年檢最新規(guī)2020年新規(guī)定
- 中文翻譯韓文轉(zhuǎn)換器(韓文翻譯器在線轉(zhuǎn)換器)
- 今日建龍集團(tuán)張偉祥和張志祥(建龍老總張志祥是什么背景)
- 投資參股盛行 農(nóng)商行緣何頻頻入手同業(yè)股權(quán)
- 聽(tīng)我說(shuō),夏天裙子一定要“肥一點(diǎn)”,慵懶舒適還顯瘦,別提多美了
- 美國(guó)黑人男子被警察從背后槍殺 當(dāng)?shù)厣鐓^(qū)呼吁展開(kāi)獨(dú)立調(diào)查
- [快訊]成科機(jī)電公布2023年半年度分紅方案預(yù)案
- 珠海一樓盤(pán)5折售賣?珠海住建局:不屬實(shí)
- 富家公子電視劇韓劇 富家公子
- 美媒:政府救災(zāi)不力 夏威夷州居民寒心
- 新一輪棚改,輪到廣州了?
今日要聞
- 今日建龍集團(tuán)張偉祥和張志祥(建龍老總張志祥是什么背景)
- 神馳機(jī)電:上半年凈利潤(rùn)1.32億元,同比增長(zhǎng)53.96%
- 美媒:政府救災(zāi)不力 夏威夷州居民寒心
- 來(lái)電歸屬地顯示查詢(來(lái)電歸屬地顯示)
- 閨蜜頭像兩人一人一張 可愛(ài) 呆萌動(dòng)漫(閨蜜頭像一對(duì)兩張動(dòng)漫可愛(ài))
- 虛擬號(hào)在轉(zhuǎn)轉(zhuǎn)實(shí)踐與應(yīng)用
- 珠海一樓盤(pán)5折售賣?珠海住建局:不屬實(shí)
- 深度解讀:2023年度 CCTV-2《民族品牌》首個(gè)果汁品牌,緣何是葡口
- 多箭齊發(fā)!穩(wěn)信心舉措再加碼,五糧液等多家公司“承諾不減持”
- 慢霧:Magnate Finance已被竊取約640萬(wàn)美元