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

馬蜂窩搜索基于Golang并發代理的一次架構升級

開發 開發工具
搜索業務是馬蜂窩流量分發的重要入口。很多用戶在使用馬蜂窩時,都會有目的性地主動搜索與自己旅行需求相關的各種信息,衣食住行,事無巨細,從而做出最符合需求的旅行決策。

搜索業務是馬蜂窩流量分發的重要入口。很多用戶在使用馬蜂窩時,都會有目的性地主動搜索與自己旅行需求相關的各種信息,衣食住行,事無巨細,從而做出***需求的旅行決策。

因此在馬蜂窩,搜索業務交互的下游模塊非常多,主要有目的地、POI、熱門景點、美食、商場、酒店、問答、攻略、機票火車票等等,通過實時、精準地返回搜索結果,幫助用戶做出個性化旅行決策。

[[260873]]

面對越來越高的流量,馬蜂窩技術團隊積極嘗試對搜索架構進行優化和升級,來保證搜索業務的穩定和性能。

方案背景

由于歷史原因,優化前的搜索服務與下游模塊交的互方式主要為調用各下游模塊提供的函數,并且采用串行調用。

圖 1: 馬蜂窩搜索業務架構和技術體系

搜索技術體系

  • 存儲——MySQL、Memcache
  • 模塊交互——Function Call
  • 檢索——Elasticsearch

搜索業務架構

我們將搜索業務抽象為三個功能模塊:

1. 決策系統

負責根據用戶意圖、運營策略、點擊日志等數據,結合決策系統相關算法和模型,決策應該展示哪些模塊(游記、商品等)及各模塊展示順序。

2. Agent

負責根據決策系統確定要展示的模塊,從 Elasticsearch 和業務方獲取模塊(如游記、商品等)數據。

3. Format

負責根據不同模塊的 UI 交互定義格式化數據,補充 UI 交互缺失數據。

串行的函數級調用方式,使之前的搜索服務架構存在一系列問題:

  • 業務間耦合度高。隨著交互模塊越來越多,導致搜索服務耗時變得很長,平均達到 400-500 ms;
  • 由于與各業務間交互的方式是 Function Call,使上游很難控制下游模塊阻塞時間;
  • 下游調用增加響應時間相應呈線性增長,使其很難再疊加新的功能,可擴展性差;
  • 如果下游模塊出現故障,會由于接口阻塞引起超時,導致搜索服務整體都受到影響,表現出白頁,用戶體驗嚴重下降。

圖 2:問題分析

因此,我們需要找到一種方式來降低搜索服務對于下游模塊的依賴,以及模塊間的耦合,從而提升架構的整體可用性和性能。

基于 Golang 的并發代理實現

經過調研,我們開發了基于 Golang 協程實現的并發請求代理工具,將之前函數級調用的方式變為基于 TCP/IP 的 HTTP 接口調用來與下游模塊解耦,同時將串行調用變為并發,實現超時控制和異常容錯處理。

主要技術選型——協程(Goroutine)

Goroutine 是 Golang 輕量級線程實現,由 Go runtime 管理。它是 Go 并行設計的核心,也是 Golang 最重要的特性之一,相比于進程、線程任務的搶占式調度,需要頻繁進行上下文信息的內核和用戶空間切換,Goroutine 可以由程序控制,使得它更易用、更高效、更輕便。

Goroutine 維護了一組數據結構和多個線程,任務放在一個待執行隊列中,由 Goroutine 維護的線程來拉取執行。當任務執行了操作系統的 IO 操作等需要等待時,Goroutine 利用 Linux IO 多路復用技術 (Epoll、Select) 進行執行隊列的任務切換來實現并發。

相比于其他語言的線程,其默認占用內存為 2KB, 遠小于其他語言的 M 級別。在性能開銷方面,由于任務調度基本有程序控制,開銷也遠小于線程。

選型的過程中,我們對比了 PHP 的 Swoole、Java 多線程并行處理方案,它們的 CPU 和內存消耗比 Golang 的 Goroutine 要高出很多,并且并行請求數量會受到資源的限制,在高并發的情況下如果控制不當會導致服務崩潰。而使用 Goroutine 實現的并發代理,可以輕松支持***別的并發請求。

圖 3:并行與并發

Golang 并發代理實現

代理服務按請求的處理流程,可以劃分為 HTTP Server ——> 參數處理——> 并行請求 (協程調度)——> HTTP 模塊 ——> API 層。目前我們的方案支持 HTTP/HTTPS 協議的請求。

圖 4:并發代理架構圖

各模塊功能概要:

  1. HTTP Sever:使用 Go 語言 httpserver package 實現,用于接收和處理有代理需求的上游模塊的 HTTP 請求;
  2. 參數處理:根據定義好的交互協議,將上游模塊的請求解析為并行請求商品、游記等下游模塊的請求任務;
  3. 協程調度:使用 Go 語言的 Goroutine 實現,負責執行對下游模塊的并發請求任務;
  4. HTTP 模塊:使用 Go 語言的 ioutil/http package 實現,負責與下游 API 模塊以 HTTP 協議形式交互;
  5. API 模塊:將下游模塊的函數調用封裝為 TCP/IP接口,將函數形式交互變為 HTTP 接口形式交互。

搜索業務應用代理后,整體架構變化為:

圖 5:并發代理在搜索業務中的應用

小結與后續規劃

基于 Golang 的并發代理在馬蜂窩搜索業務中已經使用了一段時間,很好地解決了之前存在的一些問題。目前,搜索服務平均耗時已經降低到240ms 左右,架構的可用性和可擴展性也得到很大提升,并且有效提高了系統資源的利用率。

現在并發代理只支持 HTTP,后續會增加 RPC,來更好地支持整體的服務化改造。在推進和實施搜索架構升級的過程中,我們也會把更多的經驗分享出來,希望大家持續關注。

本文作者:王江濤,馬蜂窩搜素推薦研發工程師。

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

 

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

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

2019-02-19 15:20:12

消息總線架構異步

2019-06-11 12:19:10

ABTest分流系統

2019-02-18 15:23:21

馬蜂窩MESLambda

2018-10-29 12:27:20

2019-04-26 15:16:02

馬蜂窩火車票系統

2022-06-20 09:00:00

深度學習人工智能研究

2019-06-11 11:18:40

容災緩存設計

2019-03-25 15:14:19

Flutter馬蜂窩開發

2019-02-27 15:24:54

馬蜂窩游搶單系統

2020-02-21 16:20:37

系統驅動項目管理

2020-01-03 09:53:36

Kafka集群優化

2020-03-22 15:49:27

Kafka馬蜂窩大數據平臺

2019-12-17 14:59:27

數據中臺數據倉庫馬蜂窩

2018-10-26 16:00:39

程序員爬蟲馬蜂窩

2018-08-15 08:52:49

爬蟲出行城市數據

2019-04-12 14:22:40

馬蜂窩機票訂單

2024-04-03 09:00:10

2024-04-02 08:45:08

ChatGPTAI會議人工智能

2022-01-07 11:48:59

RabbitMQGolang 項目

2022-03-23 15:43:26

Android客戶端架構
點贊
收藏

51CTO技術棧公眾號

亚洲人体偷拍| aa在线视频| 日韩成人免费看| 国产午夜精品一区二区三区 | 久久九九99| 日韩中文字幕在线看| 91精品国产高清91久久久久久| yellow在线观看网址| 久久久不卡影院| 亚洲自拍偷拍区| 综合网在线观看| 亚洲色图插插| 国产午夜精品免费一区二区三区| 日本黄色www| 亚洲成人短视频| 亚洲无线码一区二区三区| 亚洲精品日韩在线观看| 天天综合永久入口| 国产盗摄视频一区二区三区| 欧美在线视频网站| 免费毛片在线播放免费| 日韩精品影视| 亚洲欧美色婷婷| 丰满人妻一区二区三区免费视频棣| 97欧美成人| 日韩欧美精品免费在线| 人妻互换免费中文字幕| 国产在线激情| 国产精品免费aⅴ片在线观看| 国产一区二区自拍| 精品女同一区二区三区| 另类的小说在线视频另类成人小视频在线 | 欧美专区一区二区三区| 美日韩精品免费观看视频| 精品无码在线观看| 九九久久婷婷| 亚洲欧美日韩国产成人| 午夜福利三级理论电影| 亚洲精品一区二区三区在线| 69堂精品视频| 日韩高清第一页| 成人黄色免费网站| 欧美综合一区二区三区| 久久久久久久少妇| 中文字幕在线中文字幕在线中三区| 亚洲成av人片| 欧美成人高潮一二区在线看| 日本片在线观看| 一区二区三区在线观看国产| 日本a级片在线观看| 高清免费电影在线观看| 亚洲精品免费一二三区| 女人床在线观看| 伊人春色在线观看| 夜夜夜精品看看| 国产美女在线一区| 超碰在线视屏| 日本高清不卡视频| 亚洲综合在线网站| 欧美成人毛片| 日韩一区二区三区视频| 亚洲天堂网站在线| 日韩精品亚洲专区在线观看| 日韩欧美高清dvd碟片| 欧洲成人午夜精品无码区久久| 香蕉成人app| 日韩成人网免费视频| 在线免费观看成年人视频| 免费视频一区三区| 中文在线不卡视频| 印度午夜性春猛xxx交| 狠狠爱综合网| 欧美一区二区中文字幕| 亚洲自拍偷拍另类| 国产真实乱子伦精品视频| 亚洲在线视频福利| 亚洲精华国产精华精华液网站| 成人小视频在线观看| 久久综合九色综合久99| av在线女优影院| 亚洲欧美日本在线| 久久久久久久中文| 国产精品全国免费观看高清| 91国语精品自产拍在线观看性色| 日韩成人免费观看| 秋霞电影网一区二区| 91麻豆精品秘密入口| 天天干天天爱天天操| 国产色婷婷亚洲99精品小说| 91免费视频黄| 在线最新版中文在线| 欧美特级限制片免费在线观看| 亚洲综合123| 天堂av一区二区三区在线播放| 中文字幕久精品免费视频| 久久久精品视频免费观看| 亚洲欧美日韩一区在线观看| 91久久久久久久一区二区| 亚洲av电影一区| 中文字幕字幕中文在线中不卡视频| 我的公把我弄高潮了视频| 国产综合色在线观看| 精品乱人伦小说| 国产精品1区2区3区4区| 亚洲精品色图| 亚洲jizzjizz日本少妇| 户外极限露出调教在线视频| 亚洲影视在线播放| 天天插天天操天天射| 久草在线综合| 久久资源免费视频| 日韩免费av网站| 不卡的电视剧免费网站有什么| 在线成人性视频| 中老年在线免费视频| 精品日韩一区二区三区免费视频| www.涩涩爱| 天堂影院一区二区| 国产精品有限公司| 91在线中字| 欧美精品v国产精品v日韩精品| www.com日本| 中文字幕免费精品| 国产在线视频2019最新视频| 国产日本在线| 色94色欧美sute亚洲线路一ni | 国产乱理伦片在线观看夜一区| 欧美日韩国产高清视频| 男人天堂视频在线观看| 精品国产乱码久久久久久夜甘婷婷| 日韩三级在线观看视频| 蜜臀av国产精品久久久久| 裸模一区二区三区免费| 电影在线观看一区| 亚洲电影免费观看| 久视频在线观看| 国产福利不卡视频| 青草网在线观看| swag国产精品一区二区| 欧美激情va永久在线播放| 国产成人精品无码高潮| 伊人夜夜躁av伊人久久| 三级黄色片免费观看| 国产精品久久天天影视| 成人黄色影片在线| 免费在线观看黄色| 欧美一区二区女人| 精品深夜av无码一区二区老年| 国产乱子伦一区二区三区国色天香| 在线视频不卡国产| 日韩视频在线直播| 欧美激情精品久久久久久免费印度 | 色婷婷av在线| 亚洲国产精品一区二区久| 日本在线视频免费| 26uuu精品一区二区在线观看| 97xxxxx| 精品视频99| 成人激情视频免费在线| 影音先锋在线视频| 亚洲国产精品999| 成人免费毛片男人用品| 欧美高清在线精品一区| 五月天婷婷影视| 欧美视频久久| 九色综合婷婷综合| 色豆豆成人网| 久久精品夜夜夜夜夜久久| 精品人妻无码一区二区| 色综合色狠狠综合色| 91导航在线观看| 国产精品综合二区| 奇米精品一区二区三区| 日本不卡免费一区| av资源一区二区| 韩日精品一区二区| 久久久成人的性感天堂| 国产综合在线播放| 欧美亚洲一区二区在线| 91porn在线视频| 久久伊99综合婷婷久久伊| 国产无遮挡猛进猛出免费软件 | 国产精品美女久久久久久久久久久| 欧美性猛交xxxx乱大交91| 国产精品一区亚洲| 综合网五月天| 欧美黑白配在线| 国产欧美日韩中文| 在线天堂新版最新版在线8| 精品国产自在精品国产浪潮| 免费观看黄色av| 欧美色国产精品| 精品久久免费视频| 亚洲丝袜制服诱惑| av在线网站观看| 国产精品自拍av| wwwwww.色| 欧美日韩精选| 亚洲一区二区三区乱码| 开心激情综合| 97夜夜澡人人双人人人喊| 欧美不卡高清一区二区三区| 欧美激情视频网址| 亚洲成a人v欧美综合天堂麻豆| 亚洲成人网在线| av中文字幕播放| 欧美日韩国产欧美日美国产精品| 国产精品1234区| 亚洲欧美日韩在线| 快灬快灬一下爽蜜桃在线观看| www.亚洲免费av| 亚洲 自拍 另类 欧美 丝袜| 喷白浆一区二区| 亚洲中文字幕无码中文字| 欧美亚洲不卡| 在线观看免费黄色片| 欧美伦理在线视频| 久久久久网址| 欧美变态挠脚心| 岛国视频一区| 日本一区二区三区播放| 国产一区二区在线免费视频| 97久久网站| 国产精品夜间视频香蕉| 韩国精品主播一区二区在线观看| 国精产品一区一区三区有限在线| 污污在线观看| 欧美成人自拍视频| 污视频在线看网站| 九九久久久久99精品| 色呦呦在线看| 欧美极品美女电影一区| 污视频免费在线观看| 久久99热精品| 日本乱理伦在线| 欧美黄色片视频| 欧美xxxxhdvideosex| 欧美日韩高清区| 欧美韩日亚洲| 久久免费精品日本久久中文字幕| 欧美78videosex性欧美| 欧美激情18p| 91破解版在线观看| 日韩一区二区三区不卡视频| 亚洲淫成人影院| 91爱视频在线| 深夜成人在线| 日本精品视频在线| 天天综合网天天| 国产精品视频26uuu| 久久女人天堂| 亚洲在线视频观看| h视频久久久| 精品国产一区二区三区麻豆免费观看完整版| 国产 日韩 欧美 综合 一区| 国产日韩精品推荐| 亚洲人成亚洲精品| 日韩经典在线视频| 欧美国产美女| 9191国产视频| 亚洲一区区二区| 国产精品99久久免费黑人人妻| 日韩制服丝袜先锋影音| 亚洲涩涩在线观看| 粉嫩高潮美女一区二区三区| 精品无码国产一区二区三区51安| 久久久久久麻豆| 久久av红桃一区二区禁漫| 亚洲免费资源在线播放| 日本熟妇一区二区| 在线观看国产一区二区| 国产毛片久久久久| 亚洲国产精品久久久久久| 欧美一区二区少妇| 精品国偷自产在线| 国模精品视频| 国产裸体写真av一区二区| 日韩成人视屏| 欧美高清一区二区| 欧美在线观看天堂一区二区三区| 狠狠干 狠狠操| 男人的天堂亚洲一区| 一二三区视频在线观看| 久久久另类综合| 五月天丁香激情| 色偷偷成人一区二区三区91 | 热久久免费视频| 亚洲av综合色区无码另类小说| 久久久久国产精品免费免费搜索| 精品国产精品国产精品| 精品欧美激情精品一区| 国产又爽又黄免费软件| 精品夜色国产国偷在线| 国产精品久久久久久福利| 欧美在线视频网| 深夜福利一区| 在线成人性视频| 亚洲一区二区成人| 国产精品欧美性爱| 欧美极品少妇xxxxⅹ高跟鞋 | 成年人免费观看视频网站| 亚洲三级电影网站| 波多野结衣在线电影| 欧美精品一区二区三区高清aⅴ| 91福利在线视频| 欧美一级免费视频| 日韩高清在线观看一区二区| 亚洲草草视频| 亚洲综合国产| 求av网址在线观看| 亚洲人成网站色ww在线| 国产网红在线观看| 国产在线久久久| 西野翔中文久久精品国产| 韩国黄色一级大片| 首页国产欧美日韩丝袜| 中文字幕 日本| 一区二区三区在线免费播放 | 国产啊啊啊视频在线观看| 国产精品高潮视频| 在线日本制服中文欧美| 精品久久久久久无码中文野结衣| 久久久视频6r| 成人福利电影精品一区二区在线观看| 成人在线观看免费高清| 欧美日韩在线一区| 日韩一区二区三区在线观看视频| 久久精品一偷一偷国产| 成人黄色在线| 天堂一区二区三区| 久久天堂精品| 亚洲精品视频久久久| 婷婷国产在线综合| 日本黄色免费视频| 一区二区三区在线播放视频| 色综合天天综合网国产成人综合天| 成人免费一级视频| 久久99国产综合精品女同| 精品国产亚洲日本| 欧美与动交zoz0z| 激情偷乱视频一区二区三区| 免费91在线观看| 欧美日韩免费观看一区三区| 幼a在线观看| 国产在线高清精品| 亚洲精品午夜av福利久久蜜桃| 亚洲免费成人在线视频| 一区二区三区国产| 丰满人妻一区二区三区四区53 | 久久国产三级| 在线观看欧美一区| 国产一区二区在线视频| 2021亚洲天堂| 欧美va在线播放| 女人让男人操自己视频在线观看 | 国产精品日韩欧美大师| 日韩啪啪电影网| 亚洲天堂一区二区在线观看| 夜夜操天天操亚洲| 亚欧洲精品视频| 国产成人精品免费久久久久| 久久伦理在线| wwwxxx色| 日韩欧美中文字幕在线播放| 国产视频精选在线| 91在线播放国产| 亚洲精品乱码久久久久久蜜桃麻豆| 精品久久久久久中文字幕人妻最新| 在线亚洲一区二区| 久久精品视频观看| 国产日本一区二区三区| 免费成人美女在线观看.| 破处女黄色一级片| 日韩电影网在线| 欧美少妇激情| 日韩精品在线中文字幕| 国产欧美一二三区| 性做久久久久久久久久| 日韩av免费在线看| 在线国产一区| 黄色性生活一级片| 欧美精品乱码久久久久久| 成人女同在线观看| 亚洲精品日韩精品| 成人高清伦理免费影院在线观看| 精品无码一区二区三区的天堂| 欧美成人在线影院| 国内精品久久久久久久影视简单 | 国产精品久久久久久久久久久久久久久久久久 | 好吊色视频988gao在线观看| 97精品视频在线观看自产线路二| 亚洲一区在线观| 91成人福利在线| 一本精品一区二区三区| 伊人网伊人影院| 日韩免费电影一区| 国内精品伊人| 日韩精品xxxx| 一区二区三区成人| 9191在线观看|