精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

馬蜂窩消息總線——面向業務的消息服務設計

開發 開發工具
在消息總線上線前,馬蜂窩大部分業務中的異步需求是通過 Redis 隊列來實現。隨著消息量增加,經常會出現消息積壓、不同消息之間互相影響的問題。為解決這些問題,電商研發團隊開始規劃和設計消息總線。

 我們為什么需要消息總線?

在消息總線上線前,馬蜂窩大部分業務中的異步需求是通過 Redis 隊列來實現。隨著消息量增加,經常會出現消息積壓、不同消息之間互相影響的問題。為解決這些問題,電商研發團隊開始規劃和設計消息總線。

為什么會有消息總線,而不是讓業務系統直接用 PHP 或者其他語言對接 RabbitMQ,Kafka 這樣的消息系統?

「消息總線和直接使用消息系列有什么實際的區別?」,這是很多研發同學一開始不太理解的地方。假如只是為了用一個性能更好的消息系統代替 Redis,確實并不需要消息總線的這個角色。

但當我們從實際業務角度出發,對公司整體技術架構和開發場景的梳理時,發現如果直接讓業務系統對接消息系統,并不是一個很好的方式,并且至少會面臨以下問題:

系統分散。各開發團隊需要維護各自的消息服務,彼此之間相對隔離。

增加開發難度。用戶需要關注具體消息所在消息服務的配置,關注不同業務的消息可能要對接不同種類的消息系統。

維護成本高。用戶需要管理自己消費服務的穩定性,處理各種服務異常,保證消費的可靠性。特別對于 PHP 來說,這個成本還是比較高的。

管理難度大。沒法對業務消息的創建和訂閱關系進行統一管理,也不方便對業務消息中的敏感數據進行權限管理。

不易擴展。無法統一消息系統擴展功能(路由、延時、重試、消費確認等)的使用。

總體來說,直接使用消息系統可以被看成是一個面向技術的接入方式;而消息總線則期望通過隱藏部署、分組和通信等細節,實現一個面向業務的接入方式。

架構設計和技術實現

1. 架構設計

消息總線隱藏了消息發送、路由、分組、存儲、消費負載、通信、高可用等一些列問題。對使用者來說,只需要在發送端調用一個 SDK 消息發送方法,在消費端提供一個 PHP 消費方法即可。

 

圖1 馬蜂窩消息總線架構設計

馬蜂窩消息總線當前使用 RabbitMQ 作為消息引擎,在發送端提供了 SDK,作為消息總線的 Broker 角色,包含了消息路由分組的功能,負責消息的 Publish。

消息的訂閱關系,目前是持久化在 MySQL 中,在消息發送時會根據訂閱關系把消息投遞到對應的業務消費者。

而在消費端,并沒有直接用 PHP 去接入 RabbitMQ,而是使用 Deliver 服務集群 (Golang 服務) 來負責把 AMQP 協議轉為 HTTP 協議,然后通過 PHPService 進行消費 PHP 代碼的執行。

這個方案在設計時,同時考慮到了未來系統規模擴展后的消息分組,以及關鍵環節的可替代性。

  • SDK 充當了消息服務 Broker 的角色,可以控制消息的路由、分組。未來在微服務體系中可以保持整體架構不變,只采用其他方案實現 Broker。
  • 可以根據業務場景對接不同的消息引擎,比如對業務一致性要求高的業務使用 RabbitMQ,而對并發要求較高的可以使用 Kafka。對業務來說是無感知的。
  • Deliver 和 Application Service 之間可擴展更多的通信協議,支持應用更靈活的消費方式,包括支持未來在微服務中的消費服務。

2. 技術實現

1). 減少流轉復雜度

為了保證消息在消息總線內各環節流轉時減少復雜度,能夠被統一處理,消息體被設計為統一的結構。主要分為以下 3 個部分:

 

圖2 消息體的定義

  • Parameter——參數部分包含消息 ID,來源,時間等參數。
  • Conetent——消息內容,在 PHP 中使用者可以把消費方法的輸入參數放入 Content 中。
  • Receiver——標注了消息的接收者 (PHP 中為消費者的方法)。

2). 在線服務異步

點對點模式是業務中常用的一種異步模式,

 

圖3 點對點消息模式

業務應用把不需要在同步請求中執行的邏輯放到異步去執行。發送消息的業務需要明確處理消息的接收者 (消費的 PHP 方法)。消息在發送時需要明確指定唯一的一個 Receiver。

當前通過消息總線 SDK 提供的 invoke 方法可以指定消費的應用方法。

 

3). 解耦

消息的發布訂閱模式,是一個標準的業務解耦模式。

 

圖4 發布訂閱(廣播)

App 1 的應用只負責發出消息,至于什么業務需要關注,下游業務應用自己訂閱該消息就可以。很大程度上減少了上游業務和下游業務的耦合程度和開發調試成本。

消息總線使用 DB 來進行消息訂閱關系的存儲,上游業務的消息經過消息總線 Broker 時會根據訂閱關系,裂變為 Receiver 是訂閱應用的多條消息。這樣的消息裂變方式使消息后續在消息總線流轉時目標明確,在進行消費負載,消費確認,失敗重試等場景時可以按照 Receiver 進行隔離。

同樣調用方可以使用 SDK 提供的 pub 方法進行消息的發送,訂閱方通過消息管理系統進行消息訂閱的申請。

 

4). 防消息干擾

很多使用消息總線的同學比較關心不同消息之間是否會相互干擾,比如由于某個消息短時間內大量涌入是否會造成其他消息被阻塞。

通過前面架構的介紹,可以看到所有的消息經過 Broker 時可以進行路由、分組。消息總線未來會根據業務和消息量來做一些物理隔離,保障業務之間不會相互影響。

而在一個分組內,消息總線也有一些機制保障分組內的不同消息不會相互影響。

 

圖5 防消息干擾機制

消息經過 Broker 默認會進入一個 Online Queue 的隊列中,Deliver 集群中會有多個 Deliver 監聽 Online Queue。在 Deliver 服務內,通過 Dispatcher 來控制消息總并發消費量,以及同類型消息的并發消費量。當某種類型的并發消息數量超過閾值時,就會被轉發到 Offline Queue,避免消費 Worker 都被同一個類型的消息占用。而 Offline Queue 會被獨立的 Deliver 服務監聽進行消費,不影響 Online Queue 的消費。

5). 消費服務高可用

為了保證消費時的高可用,Deliever 群在負責進行消費協議轉換之外,也做了一些策略來保證消費端的高可用。

  • 熔斷

在消息一段時間內失敗數量超過閾值時,停止對隊列的消費,避免由于服務抖動和線上故障引起的大面積消息。

  • 消費失敗

熔斷后,Deliver 服務會對后端應用服務健康度進行監控,在服務恢復后可自動恢復消費。

  • 系統失敗重試

消息總線服務發生故障時,可對期間的失敗消息采用重試策略進行重試,避免由于基礎服務問題造成的消費失敗。

  • 業務失敗重試

在業務應用消費時產生業務異常,可在訂閱消息時指定是否進行重試。消息總線會對需要失敗的消息按照一定的時間周期進行多次重試。

  • Graceful 重啟

Deliver 實現了 Graceful 重啟和退出,保障當前正在消費的消息都處理完成后才會進程退出。

未來規劃

 

圖7 未來演進方向

1. 產品化

當前消息總線在功能上經過近一年的迭代,已經基本穩定。但在消息管理,監控,統計等環節對開發者來說還不夠友好,接下來一段時間會著重優化系統的易用性。

目前已經在規劃以下方向的優化改進:

開發者可以通過消息管理系統進行新增消息,訂閱消息 (加入權限的審核) 等操作,代替當前手工提 issue 的方式。

開發者可以通過系統關注到自己消息的消費情況,并及時接收到消息處理異常的報警。

完善監控體系,提供更精細維度的系統監控數據。

2. 微服務

關于在微服務架構內提供消息總線服務,也已經在計劃當中。包括在微服務內進行消息發送和使用某個微服務進行消息的消費。未來整個消息總線計劃會往下圖的架構進行演進,增加對多語言和不同架構服務的支持。適應更多的業務開發場景,提供更穩定,友好的消息總線服務。

另外對消息引擎的技術選型,未來也會考慮接入 Kafka,RocketMQ 等其他消息隊列服務。根據不同業務場景的消息特性,在發布時選擇進入不同的消息隊列服務。比如對可靠性,數據安全性要求高的消息會進入 RabbitMQ,而對高吞吐量的消息可以進入 Kafka。但對消息的發送方和訂閱方來說都可以不用關心這些細節,仍然按照統一的方式進行接入。

馬蜂窩消息總線服務當前也在不斷迭代中,在很多地方還有不少沒有考慮到的問題。歡迎大家多提寶貴意見,您可以掃描下方二維碼訂閱「馬蜂窩技術」更多內容。

本文作者:梁亮,馬蜂窩電商研發團隊技術專家。2004 年畢業于西安郵電大學,曾在新浪,開心網,阿里巴巴等公司工作。先后從事搜索,社交,視頻,電商等多個方向的研發工作。于 2017 年加入馬蜂窩,現負責馬蜂窩電商平臺服務系統開發。

【本文是51CTO專欄作者馬蜂窩技術的原創文章,作者微信公眾號馬蜂窩技術(ID:mfwtech)】

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

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2019-06-11 11:18:40

容災緩存設計

2019-06-11 12:19:10

ABTest分流系統

2019-04-26 15:16:02

馬蜂窩火車票系統

2019-02-27 15:24:54

馬蜂窩游搶單系統

2019-02-18 15:23:21

馬蜂窩MESLambda

2022-06-20 09:00:00

深度學習人工智能研究

2019-03-25 15:14:19

Flutter馬蜂窩開發

2019-03-29 08:21:51

馬蜂窩Golang并發代理

2018-10-29 12:27:20

2020-02-21 16:20:37

系統驅動項目管理

2020-03-22 15:49:27

Kafka馬蜂窩大數據平臺

2020-01-03 09:53:36

Kafka集群優化

2018-10-26 16:00:39

程序員爬蟲馬蜂窩

2017-03-20 09:50:35

消息隊列架構消息

2019-12-17 14:59:27

數據中臺數據倉庫馬蜂窩

2022-12-22 10:03:18

消息集成

2018-08-15 08:52:49

爬蟲出行城市數據

2019-04-12 14:22:40

馬蜂窩機票訂單

2025-04-14 05:00:00

2021-05-17 16:24:58

Spring Clou
點贊
收藏

51CTO技術棧公眾號

亚洲综合资源| 天堂网2014av| 欧美疯狂party性派对| 欧美精品日韩一本| 老子影院午夜伦不卡大全| 天天射天天色天天干| 日韩国产欧美视频| 久久精品国产96久久久香蕉 | 国产在线视频精品一区| 欧美激情视频一区二区| av小说在线观看| 自拍偷拍欧美日韩| 精品久久久久久中文字幕| 五月天亚洲综合| 免费看国产片在线观看| 日韩制服丝袜先锋影音| 色综合天天综合网国产成人网| 韩国无码一区二区三区精品| 日韩免费在线电影| 欧美午夜无遮挡| 男女h黄动漫啪啪无遮挡软件| 亚欧洲精品视频| 国产麻豆一精品一av一免费| 国产成人精品视频在线观看| 久久97人妻无码一区二区三区| 精品一区二区三| 亚洲精品电影网| 午夜影院免费版| 99re66热这里只有精品4| 亚洲国产综合在线| 欧洲金发美女大战黑人| 日本中文字幕在线观看| 久久久久亚洲综合| 精品国产91亚洲一区二区三区www 精品国产_亚洲人成在线 | 国产精品第四页| 欧美另类一区| 日韩一区二区三区在线观看视频| 久久se精品一区精品二区| 欧美一级电影在线| 日本在线免费观看| 亚洲私拍自拍| 欧美黑人一区二区三区| 成人免费视频国产免费观看| 日韩精品免费| 亚洲欧洲黄色网| 国产精品无码专区| а√中文在线天堂精品| 日韩欧美在线网站| 波多野结衣中文字幕在线播放| 欧美成人家庭影院| 欧美日韩国产欧美日美国产精品| 欧美精品aaaa| 蜜桃精品在线| 欧美性大战久久久久久久蜜臀| 欧美牲交a欧美牲交aⅴ免费下载| 爱福利在线视频| 亚洲一区免费观看| 欧日韩免费视频| av资源中文在线| 欧美日韩国产一区在线| 国产免费观看高清视频| jizzjizz中国精品麻豆| 午夜视频一区二区三区| 老太脱裤子让老头玩xxxxx| 都市激情国产精品| 日韩欧美国产中文字幕| 老熟妇仑乱视频一区二区| 亚洲第一会所001| 欧美日韩国产系列| 91精品人妻一区二区三区蜜桃2 | 国产综合18久久久久久| 天天综合网在线| 久久综合视频网| 色999日韩自偷自拍美女| 在线国产91| 亚洲欧美日韩国产手机在线| 日本成人在线不卡| 爱搞国产精品| 欧美视频一区二区三区在线观看 | 91在线观看视频| 欧美日韩国产精品一区二区| 国产乱理伦片a级在线观看| 国产精品青草久久| 国产精品视频一二三四区| 国内在线视频| 91成人网在线| 日韩高清在线一区二区| 免费看成人人体视频| 亚洲欧美日韩国产中文专区| 青青草华人在线视频| 国产一区二区中文| 国产成人a亚洲精品| 99re只有精品| xfplay精品久久| 最新不卡av| 在线一区av| 制服丝袜中文字幕一区| 亚洲AV无码久久精品国产一区| 欧美五码在线| 久久人人爽人人爽爽久久 | 在线一区二区视频| xxxx国产视频| 欧美日韩国产免费观看视频| 欧美黑人性猛交| 波多野结衣一二区| 国产999精品久久久久久| 欧美视频1区| av影视在线看| 欧美日韩电影一区| 美女久久久久久久久久| 欧美成人tv| 国产精品久久网| 天天操天天干天天舔| 亚洲丝袜另类动漫二区| av免费中文字幕| 福利在线一区| 蜜臀久久99精品久久久无需会员| 麻豆精品久久久久久久99蜜桃| 国产乱码精品一区二区三区五月婷| 欧美动漫一区二区| 欧美videosex性欧美黑吊| 在线视频亚洲一区| 波多野结衣视频播放| 正在播放日韩欧美一页| 国产精品久久一区主播| 天堂在线中文| 日韩美女精品在线| 狠狠热免费视频| 四虎影视精品| 97av视频在线| 天堂av一区二区三区| 一区二区三区四区五区视频在线观看| 天天干天天综合| 少妇精品久久久一区二区| 午夜精品久久久久久久99热浪潮 | 国产精品一区二区三区网站| 日韩区国产区| 日韩伦理三区| 亚洲精选在线观看| 日韩精品在线观看免费| 北岛玲一区二区三区四区| 97超碰国产精品| 色播一区二区| 欧美大尺度激情区在线播放| 国产视频第二页| 亚洲视频资源在线| 国产欧美激情视频| 日产精品一区二区| 国产精品入口尤物| 免费观看在线黄色网| 欧美一级专区| 91久久国产自产拍夜夜嗨| 精品美女在线观看视频在线观看 | 狠狠做六月爱婷婷综合aⅴ| 欧美一区二粉嫩精品国产一线天| 日韩中文字幕免费观看| 亚洲第一激情av| 亚洲观看黄色网| 六月婷婷一区| 四虎影院一区二区三区| yiren22亚洲综合| 日韩在线视频播放| 国产又粗又猛又色又| 日韩毛片在线免费观看| 99久久综合网| 国产欧美日韩一级| 欧美欧美一区二区| 国产一区高清| 欧美成人h版在线观看| 超碰人人人人人人| 激情成人在线视频| 久久久久久成人网| 国产美女视频一区| 欧美亚洲精品一区二区| 精品不卡一区| 91九色国产视频| 牛牛电影国产一区二区| 国产丝袜一区视频在线观看| 天堂免费在线视频| 亚洲欧美激情在线| 特大黑人巨人吊xxxx| 免费日本视频一区| 99精品视频网站| 黄色成人美女网站| 国产精品都在这里| 色呦呦在线观看视频| 日韩精品免费在线视频| 91精品国自产| 午夜精品影院在线观看| 国产在线综合视频| 粉嫩在线一区二区三区视频| 国产91对白刺激露脸在线观看| 欧美人与牛zoz0性行为| 亚洲专区国产精品| 丝袜美腿一区| 欧美激情视频一区| 97人人在线| 亚洲国产精品热久久| 精品黑人一区二区三区| 一区二区三区在线免费| 亚洲av综合一区二区| 国产乱对白刺激视频不卡| 国产素人在线观看| 亚洲精品在线观看91| 欧美日韩一区二区视频在线观看 | 91成人福利视频| 国产亚洲欧洲997久久综合| 色诱av手机版| 久久99九九99精品| 日韩人妻精品无码一区二区三区| 68国产成人综合久久精品| 欧美极品日韩| 国产精品xxx在线观看| 国产在线拍偷自揄拍精品| 色一区二区三区| 免费91在线视频| a√资源在线| 精品一区精品二区| 亚洲精品免费在线观看视频| 欧美日韩亚洲综合一区二区三区| 国产中文字字幕乱码无限| 中文字幕在线播放不卡一区| av女人的天堂| 26uuu亚洲| 中国黄色片视频| 国产在线不卡一区| 日本在线一二三区| 日本成人在线电影网| 欧美日韩亚洲第一| 99国产精品| 又大又硬又爽免费视频| 综合亚洲视频| 做爰高潮hd色即是空| 成人午夜国产| 日本视频精品一区| 免费久久久久久久久| 久久精品成人一区二区三区蜜臀 | 亚洲黄色免费视频| 91美女蜜桃在线| 成人性生活免费看| 成人国产精品免费| 国产二级一片内射视频播放| 福利一区二区在线观看| 久久久精品人妻一区二区三区| 精品在线视频一区| 又色又爽又黄视频| 国产一区二区在线看| aaa一级黄色片| 国产在线视频一区二区三区| 国产精品久久久久野外| 国产精一品亚洲二区在线视频| 91插插插影院| 国产精品资源在线看| 色哟哟网站在线观看| 成人黄色大片在线观看| 一级欧美一级日韩片| 91欧美激情一区二区三区成人| 日本一区二区在线免费观看| 2017欧美狠狠色| 91l九色lporny| 中文字幕欧美激情| 在线免费观看亚洲视频| 性感美女久久精品| 男人天堂2024| 欧美精品1区2区| 成 人 免费 黄 色| 日韩成人av在线| 二区在线观看| 久久最新资源网| 成人黄色动漫| 国产精品久久久久久久久久东京| 日韩精品一级毛片在线播放| 成人影片在线播放| 一道在线中文一区二区三区| 日本一区二区在线视频观看| 五月天激情综合网| 真人抽搐一进一出视频| 日韩国产欧美视频| 日本黄色三级网站| 91农村精品一区二区在线| 影音先锋男人在线| 一区二区三区四区中文字幕| 九九精品免费视频| 337p亚洲精品色噜噜狠狠| 日本精品一二区| 在线观看国产成人av片| 麻豆av在线播放| 国产精品成人va在线观看| 欧美久久亚洲| 欧美lavv| 午夜精品av| 激情五月亚洲色图| 国产成人精品亚洲777人妖| 国产男男chinese网站| 中文字幕一区二区视频| 全部毛片永久免费看| 在线播放亚洲一区| 欧美日韩视频精品二区| 欧美成人全部免费| 777午夜精品电影免费看| 亚洲va码欧洲m码| 妖精一区二区三区精品视频| 欧美日韩亚洲国产成人| 久久亚洲不卡| 丰满少妇xbxb毛片日本| 国产精品欧美一区喷水| 亚洲日本韩国在线| 欧美一区二区美女| av网站无病毒在线| 国产91精品高潮白浆喷水| 国产中文欧美日韩在线| 日韩国产精品一区二区| 99av国产精品欲麻豆| 黑人巨大猛交丰满少妇| 国产精品情趣视频| 波多野结衣高清视频| 亚洲精品电影网在线观看| 曰本三级在线| 国产欧美日韩亚洲精品| 国产欧美日韩精品高清二区综合区| 成年人网站国产| 国产精品一区二区三区99| 五月天免费网站| 在线观看www91| 欧美日韩在线中文字幕| 68精品久久久久久欧美| 第一区第二区在线| 特级西西444| 国产一区二区三区综合| 亚洲少妇xxx| 欧美日本在线视频| 91se在线| 国产精品最新在线观看| 精品国产一区二区三区噜噜噜 | 精品视频一区在线视频| 久久久123| av资源一区二区| 亚洲精品在线观看91| 午夜免费福利网站| 亚洲欧洲成人精品av97| 一区二区三区午夜| 精品国产一区av| 只有精品亚洲| 手机在线视频你懂的| 久久国产精品99久久久久久老狼| 免费一级特黄3大片视频| 欧美日韩一区二区在线视频| 草碰在线视频| 国产欧美日韩综合精品| 99久久九九| 欧美熟妇另类久久久久久多毛| 亚洲激情自拍偷拍| 高h调教冰块play男男双性文| 欧美精品xxx| 老牛精品亚洲成av人片| 春日野结衣av| 国产欧美中文在线| 国产孕妇孕交大片孕| 九色精品免费永久在线| swag国产精品一区二区| 欧美黑人经典片免费观看| 91免费版在线| 亚洲中文无码av在线| 色噜噜狠狠狠综合曰曰曰88av| 91精品福利观看| 久久这里只有精品8| 99视频一区二区| 手机av免费观看| 久久久久www| 韩国精品福利一区二区三区| 国产男女无遮挡| 中文字幕日本不卡| 肥臀熟女一区二区三区| 日本在线观看天堂男亚洲| 婷婷综合久久| 亚洲精品国产成人av在线| 色综合 综合色| 黄色网在线播放| 国产在线一区二区三区欧美| 日本午夜精品视频在线观看| 中国毛片直接看| 亚洲缚视频在线观看| 久久久成人av毛片免费观看| 色中文字幕在线观看| 成人动漫一区二区三区| 免费看一级视频| 欧美成aaa人片免费看| 亚洲深夜福利在线观看| 三区视频在线观看| 欧美视频一区二区三区…| 激情影院在线观看| 久久99精品国产99久久| 久久99精品国产91久久来源| 日韩av在线电影| 久久视频中文字幕| 久操国产精品| 国产高潮视频在线观看| 欧美男男青年gay1069videost| av免费在线视| 最新视频 - x88av|