您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

02 買粉絲買粉絲無限回調系統(面試官杠上重復消費、消息堆積、消息丟失、順序消息?)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-04 11:21:58【】7人已围观

简介號。我曾經通過Applepay支付25元購買了一個月的情侶空間黃鉆,但是沒有發貨。也許客服工作不僅讓用戶頭疼,也讓他們感到力不從心。2009年,京東。COM的客服中心落戶江蘇省宿遷市。后來當當、小米、

號。

我曾經通過Applepay支付25元購買了一個月的情侶空間黃鉆,但是沒有發貨。

也許客服工作不僅讓用戶頭疼,也讓他們感到力不從心。

2009年,京東。COM的客服中心落戶江蘇省宿遷市。后來當當、小米、途牛等多家互聯網公司也將全國客服中心遷至宿遷,宿遷成為全國最大的商務呼叫中心。但是到現在,這里聚集了這么多互聯網公司的25000名客服人員。

不管3萬客服全部是自營還是外包,每年的工資、設備、培訓等費用都會吞噬掉大量的利潤,但是并不盈利,對于計算互聯網公司來說是非常不劃算的生意。

而且客服這個崗位在企業內部并沒有太大的發展空間,每天還要承受各種各樣的恩怨,工作壓力也是相當大的。

所以客服其實是一個流動性很強的崗位。

智能機器人的大腦是識別和和解。

決用戶問題的數據庫,只要數據在持續積累,模型在持續優化,看似就能實現“動動指尖,問題解決”的美好愿景。

然而,當前的人工智能還處于弱人工智能階段,很多人性化問題是人工智能不能共情的,當智能客服“腦海”中的記錄不夠多,知識面不夠廣,就可能導致識別-推理-檢索-回答中的任何一個環節出問題,稍不注意就開啟無限循環模式,猶如“智障”。

即使年輕人手機玩得溜,也逃不過重重關卡。

當用戶想要快速解決一些緊急問題,例如賬號被盜、錢財損失等問題時,常常是急中風遇上慢郎中,實在束手無策。

比如游戲賬號不能登錄的問題,可能涉及到綁定的QQ或者買粉絲被盜、使用外掛、被誤判為使用外掛、電腦中毒等等,相對應的解決方式也不一樣。

京東和阿里淘寶的客服可能遇到的問題,無非就是退貨、換貨、物流等問題,基本可以形成一個固定的SOP。

同樣,需要向數以千萬、億計的用戶提供服務的,還有國內移動、聯通、電信三大運營商,其主要處理的問題主要就是套餐、寬帶、網絡等問題,相對簡單和固定。

而且,三大運營商的客服也有著銷售的職能,需要圍繞銷售,向用戶去做市場調查、福利積分、年度續約等等,是能盈利的,甚至是其競爭力所在。所以,三大運營商舍得花大量成本去建設萬人以上規模的客服系統。

排隊太多時,要不就是等太久沒有客服,要不就會轉到其他版塊客服,其他板塊的客服很多時候一臉懵,用戶問得很多問題客服根本解決不了。

如果將人工服務業務轉包給第三方,第三方服務人員疏于專業培訓,可能很多問題就更不懂了。

消費者花了大量時間精力,好不容易接通了人工客服,得到的也更多是人工客服機械式的回答和處理,這多半是因為他們也不知道怎么回事,或者沒能力解決一些高級別的問題。

題圖來自Pexels,基于 CC0 協議

相關問答:相關問答:為什么小米商城米家有品沒有人工客服?

客服是有的。

小米商城的客服聯系方式:打開小米商城app→_→我的→_→服務中心,就可以看到了。如下圖:

有品相對而言麻煩點:打開有品app→_→個人→_→我的訂單→_→點進去后在訂單下方有個聯系客服選項。如圖:

如果嫌麻煩的話可以直接打有品的熱線電話:4001001199。

希望我的回答能幫助到你。

面試官杠上重復消費、消息堆積、消息丟失、順序消息?

消息隊列在互聯網技術存儲方面使用如此廣泛,幾乎所有的后端技術面試官都要在消息隊列的使用和原理方面對小伙伴們進行360 的刁難。

什么,這么多問題啊!別慌,現在就來找找解決方案。

一、 重復消費

現在消息隊列一般都能保證at least once的,也就是消息至少一次投遞。 在這種情況為什么會出現重復消費的問題呢?通常都是由于網絡原因造成的 ,原因如下:通常消息被成功消費后消費者都會發送一個成功標志給MQ,MQ收到這個標志就表示消息已經成功消費了,就不會再發送給其他消費者了。但是如果因為網絡這個標志沒有送到MQ就丟失了,MQ就認為這個消息沒有被成功消費,就會再次發送給其他消費者消費,就造成重復了。

這時我們看這個問題就變成了我們怎么保證消費端的冪等性。

冪等性 是指一個操作其執行任意多次所產生的影響均與一次執行的影響相同,大白話就是你同樣的參數調用我這個接口,調用多少次結果都相同。

怎么保證消息隊列消費的冪等性

其實還是得結合業務來思考,我在這里給出幾個解決方案:

1. 分布式鎖 。生產者發送每條數據的時候,里面加一個全局唯一的 id,類似訂單 id 之類的東西,然后你這里消費到了之后,先根據這個 id 去比如 Redis 里查一下,之前消費過嗎?如果沒有消費過,你就處理,然后就是這個 id 寫 Redis。如果消費過了,那你就別處理了,保證別重復處理相同的消息即可。

2.唯一鍵防重 。基于數據庫的唯一鍵來保證重復數據不會重復插入多條。因為有唯一鍵約束了,重復數據插入只會報錯,不會導致數據庫中出現臟數據。

3.先查后寫。 要寫數據庫前,先根據主鍵查一下,如果這數據都有了,你就別插入了,update一下好了。

4. 關閉重試機制 。如果把重試機制關掉的話不顯示,雖然解決了重復消費的問題,但是可能會造成丟失消息,不建議這么做。

不同的業務可以選擇不同的方案,如果服務的并發量不高,可以考慮唯一鍵防重或者先查后寫的方案;如果并發量較高,追求性能,沐子推薦采用分布式鎖實現冪等性(本公司目前采用的方案)

二、 消息堆積

1. 消息堆積的產生原因

消息堆積的原因主要在于兩方面,其一為消費的太慢或消費方出現異常,其二為生產方生產的太快,總的來說就是 消息的速度趕不上生產的速度,生產和消費速度不匹配造成的 。

2. 消息堆積的解決方案

1)生產端:一般當生產端發生積壓(Broker正常的情況下)就要查看你的業務邏輯是否有異常的耗時步驟導致的,是否需要改并行化操作等。

Broker端:當Broker端發生積壓我們首先要查看,消息隊列內存使用情況, 如果有分區的的話還得看每個分區積壓的消息數量差異。當每個分區的消息積壓數據量相對均勻的話,我們大致可以認為是流量激增。需要在消費端做優化,或者同時需要增加Broker節點(相當于存儲擴容),如果分區加壓消息數量差異很大的話(有的隊列滿了,有的隊列可能還是空閑狀態),我們這時候就要檢查我們的路由轉發規則是否合理。

2) 增加消費者 ,多部署幾臺消費者機器(橫向擴展),提升消費者的消費能力。

3)此種情況可以將這些 消費不成功的消息轉發到其它隊列里去(類似死信隊列) ,后面再慢慢分析死信隊列里的消息處理問題。

4) mq 中的消息過期失效了。可以采取一個方案,就是批量重導 ,這個我們之前線上也有類似的場景干過。就是大量積壓的時候,我們當時就直接丟棄數據了,然后等過了高峰期以后,將丟失的那批數據,寫個臨時程序,一點一點的查出來,然后重新灌入 mq 里面去,把白天丟的數據給他補回來。

總之,上面說到消息積壓的問題,我們需要查看是否有無限重發的消息或者有進入死鎖的程序等等,當確定是流量激增的話,我們需要評估是否需要增加資源還是通過限流的方式解決,當短時間大量消息需要處理時,在資源允許的情況下,我們可以新啟一批消費者與消息隊列,將原來的消費者中的消息直接作為生產者轉發到臨時應急隊列中,這樣大概率的能夠快速解決消息積壓。與其事后處理不如我們在設計之初就要把積壓考慮進來,對于數據量非常大,但是實時性要求不高的場景,可以設計出批量消息發送,當隊列積累到一定閥值再做批量消費消費,這里需要注意的就是重復消費帶來的影響,設計不好就是一場災難。

三、 消息丟失

一般來講消息丟失的途徑有三個: 生產者弄丟數據、消息隊列弄丟數據、消費者弄丟數據 。

1. 生產者弄丟數據

a、丟失的原因:因為網絡傳輸的不穩定性,當生產者在向MQ發送消息的過程中,MQ沒有成功接收到消息,但是生產者卻以為MQ成功接收到了消息,不會再次重復發送該消息,從而導致消息的丟失。

b、解決辦法:有兩個解決辦法,第一個方法: 向broker發送消息時,如果由于網絡抖動等原因導致消息發送失敗,可以設置 失敗重試次數讓消息重發 。

第二個方法: 事務機制和買粉絲nfirm機制,最常用的是買粉絲nfirm機制 ;

事務機制和 買粉絲nfirm 機制最大的不同在于,事務機制是同步的,你提交一個事務之后會阻塞在那兒,但是 買粉絲nfirm 機制是異步的,你發送個消息之后就可以發送下一個消息,然后那個消息 MQ 接收了之后會異步回調你的一個接口通知你這個消息接收到了。

2. MQ弄丟數據

a、丟失的原因:MQ接收到生產者發送過來的消息,是存在內存中的,如果沒有被消費完,此時MQ宕機了,那么再次啟動的時候,原來內存中的那些消息都丟失了。

b、解決辦法: 開啟MQ的持久化 。結合上面的說到的買粉絲nfirm機制,只有當消息成功持久化磁盤之后,才會回調生產者的接口返回ack消息,否則都算失敗,生產者會重新發送。存入磁盤的消息不會丟失,就算MQ掛掉了,重啟之后,他會讀取磁盤中的消息,不會導致消息的丟失。

注意,哪怕是你給 MQ 開啟了持久化機制,也有一種可能,就是這個消息寫到了MQ 中,但是還沒來得及持久化到磁盤上,結果不巧,此時MQ掛了,就會導致內存里的一點點數據丟失。

所以,持久化可以跟生產者那邊的 買粉絲nfirm 機制配合起來,只有消息被持久化到磁盤之后,才會通知生產者 ack 了,所以哪怕是在持久化到磁盤之前,MQ 掛了,數據丟了,生產者收不到 ack,你也是可以自己重發的。

3. 消費者弄丟數據

a、丟失的原因:如果MQ成功的把消息發送給了消費者,那么MQ的ack機制會自動的返回成功,表明發送消息成功,下次就不會發送這個消息。但如果就在此時,消費者還沒處理完該消息,然后宕機了,那么這個消息就丟失了。

b、解決的辦法:1)簡單來說,就是必須關閉 MQ 的自動提交,把 自動提交改為手動提交 ,也就是說當我消費成功后才會進行提交。

2)消費者端已經正常接收到消息但是在執行后續消息處理時發生了異常,最終返回處理失敗。 重試-進行重新消費問題,如果一直這樣重復消費都持續失敗到一定次數,可以投遞到 DLQ 死信隊列,應用可以監控死信隊列來做人工干預 。

四、 順序消費

比如一個電商的下單操作,下單后先減庫存然后生成訂單,這個操作就需要順序執行的。隊列本身是有順序的,但是為什么還要保證順序消費呢,主要是因為生產環境服務實例一般都是集群,當消費者是多個實例時,隊列中的消息會分發到所有實例進行消費(同一個消息只能發給一個消費者實例),這樣就不能保證消息順序的消費,因為你不能確保哪臺機器執行消費端業務代碼的速度快。

保證每次只有單個消費實例消費

所以對于需要保證順序消費的業務,我們可以只

很赞哦!(243)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:黑龙江省绥化北林区

工作室:小组

Email:[email protected]