精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美a级片免费看| 欧美色图色综合| www.四虎在线观看| 亚洲欧美日韩综合国产aⅴ| 亚洲人成在线一二| 精品久久久99| 天堂av中文在线观看| 国产精品成人免费精品自在线观看| 亚洲最大的av网站| 日韩熟女一区二区| 欧美69wwwcom| 亚洲一区二区黄| 中国男女全黄大片| 欧美黑粗硬大| 欧美日韩中文字幕综合视频| 福利网在线观看| 毛片网站在线| 粉嫩高潮美女一区二区三区 | missav|免费高清av在线看| 国产蜜臀97一区二区三区 | 亚洲乱码精品久久久久..| 日韩电影在线一区二区三区| 欧美极品少妇xxxxⅹ喷水| 无码人妻丰满熟妇啪啪欧美| 欧美美女啪啪| 精品日韩一区二区| www.色欧美| 国产精品99久久久久久董美香 | 国产又粗又长视频| 水蜜桃久久夜色精品一区的特点| 久久久久国产精品免费| 日本少妇高清视频| 91精品综合久久久久久久久久久 | 另类激情亚洲| 色综合五月天导航| 欧美一级片在线视频| 午夜精品福利影院| 亚洲国产精品小视频| 老司机av网站| 一区二区三区四区高清视频| 51精品秘密在线观看| 9久久婷婷国产综合精品性色| 国产免费拔擦拔擦8x在线播放 | 97久久精品| 91精品黄色片免费大全| xxxx在线免费观看| 欧美成a人片免费观看久久五月天| 色老汉av一区二区三区| 免费观看精品视频| 日本蜜桃在线观看视频| 午夜欧美视频在线观看| 国内少妇毛片视频| 啦啦啦中文在线观看日本| 亚洲人成7777| 大陆极品少妇内射aaaaaa| av在线播放观看| 亚洲三级在线免费观看| 中文字幕日韩一区二区三区不卡 | 日韩爱爱小视频| av免费在线一区| 欧美日韩一级视频| 亚洲精品手机在线观看| 亚洲欧美一级| 91精品国产一区二区三区蜜臀| 亚洲一区精品视频在线观看| 91精品亚洲一区在线观看| 在线播放国产精品二区一二区四区| 91女神在线观看| 秋霞影院一区| 精品久久久久久综合日本欧美| 免费啪视频在线观看| 久久午夜影院| 亚洲欧美国产日韩天堂区| 一本加勒比北条麻妃| 日韩电影免费网站| 欧美成人免费在线观看| 国产真实乱偷精品视频| 美女国产一区| 成人网在线免费观看| 亚洲av无码国产精品永久一区| 成人动漫精品一区二区| 欧美成熟毛茸茸复古| 成人免费高清在线播放| 亚洲色图另类专区| 日韩av三级在线| 日本综合视频| 日韩欧美一级二级三级| 黄色短视频在线观看| 欧美国产偷国产精品三区| 欧美精品免费播放| 91精品国产高清一区二区三密臀| 日本va欧美va瓶| 99久久久精品免费观看国产| 香蕉久久国产av一区二区| 2020国产精品| 中国黄色录像片| 一区二区电影免费观看| 欧美二区乱c少妇| av在线播放网址| 日韩精品午夜| 91国在线精品国内播放| 中文字幕永久在线视频| 成人精品视频一区二区三区| 日韩色妇久久av| 欧美6一10sex性hd| 欧美日韩一区二区欧美激情| 日韩aaaaa| 中文字幕一区二区三区乱码图片| 欧美尤物巨大精品爽| 国产欧美熟妇另类久久久| 91浏览器在线视频| 18禁裸男晨勃露j毛免费观看 | 91国在线观看| 亚洲色图欧美日韩| 国产精品99视频| 欧美最近摘花xxxx摘花| 精品国产无码一区二区| 日本一区二区三区dvd视频在线| 伊人久久在线观看| 国产极品嫩模在线观看91精品| 亚洲国产欧美自拍| 成人免费视频国产免费观看| 巨乳诱惑日韩免费av| 国产精品免费一区二区三区观看| 91最新在线| 日韩欧美在线免费| 97人妻精品一区二区三区免费| 国产精品久久占久久| 国产精品久久av| 四虎影视精品成人| 欧美jjzz| 国产精品久久久久国产a级| 亚洲av电影一区| 亚洲线精品一区二区三区八戒| 亚洲精品第三页| 日韩电影一区| 国产精品网站大全| 国产原创av在线| 日韩欧美精品在线观看| 国产性生活毛片| 亚洲黄色免费| 国产乱码精品一区二区三区不卡| 污网站在线免费看| 欧美mv和日韩mv的网站| 一区二区视频免费看| 国模娜娜一区二区三区| 亚洲一卡二卡区| 动漫一区二区三区| 久久精品小视频| 国产精品一区二区人人爽| 亚洲欧洲日韩综合一区二区| 亚洲高清免费在线观看| 99视频精品全部免费在线视频| 国产精品久久久久久婷婷天堂| 九色网友自拍视频手机在线| 91黄色免费网站| 美国一级黄色录像| 精品无人码麻豆乱码1区2区| 一区二区三区av在线| 高清不卡一区| 欧美黄色片在线观看| 熟妇人妻系列aⅴ无码专区友真希| 亚洲大片一区二区三区| 18禁一区二区三区| 一本久道久久综合婷婷鲸鱼| 久久免费99精品久久久久久| 欧美动物xxx| 日韩在线精品视频| 国产欧美日韩成人| 亚洲成av人片在线| 丝袜美腿中文字幕| 免费看黄色91| 免费看黄色a级片| 国内视频在线精品| 欧美在线视频免费| jizz在线观看| 日韩视频一区二区三区| 成年人午夜视频| 欧美国产在线观看| 亚洲五月激情网| 国产精品亚洲综合久久| 性刺激综合网| 日韩精品视频中文字幕| 77777亚洲午夜久久多人| 大乳在线免费观看| 欧美xfplay| 黄色大全在线观看| 亚洲黄色av一区| 无码人妻精品一区二区三区温州| 麻豆一区二区99久久久久| 欧美这里只有精品| 狠狠做深爱婷婷综合一区| 5g国产欧美日韩视频| 自拍视频在线看| 成人444kkkk在线观看| 日韩av资源| 日韩一区二区三区电影在线观看| 日韩黄色一级大片| 国产精品免费免费| 日韩无码精品一区二区| 精品制服美女久久| 成人免费在线小视频| 亚洲激情中文在线| 欧美精品尤物在线| 成人18夜夜网深夜福利网| 国产精品av电影| 不卡一本毛片| 久久精品国产69国产精品亚洲| 五月天婷婷社区| 91精品婷婷国产综合久久竹菊| 国产精品视频久久久久久久| 亚洲日本青草视频在线怡红院| 免费看污黄网站在线观看| 国产精品18久久久久久久久| 50路60路老熟妇啪啪| 亚洲国产日韩欧美一区二区三区| 色一情一乱一伦一区二区三区| 99这里只有精品视频| 91精品久久久久久久久青青 | aaaaaav| 国产精品911| 亚欧激情乱码久久久久久久久| 午夜综合激情| 亚洲熟妇无码一区二区三区| 欧美日韩爆操| 中文字幕在线乱| 日韩专区精品| 水蜜桃亚洲精品| 免费一区二区三区视频导航| 国产伦精品一区二区三区照片| 在线精品国产亚洲| 1卡2卡3卡精品视频| 精品国产18久久久久久二百| 国产精品影片在线观看 | 99九九视频| 亚洲日韩中文字幕一区| 国产精品欧美激情| 影视一区二区三区| 国产精品777| 大胆人体一区| 热99在线视频| 第84页国产精品| 国产成人精品免高潮费视频| 日韩不卡免费高清视频| 欧美专区国产专区| 二区三区不卡| 国产精品成人在线| 精品免费av一区二区三区| 国产精品都在这里| 成人午夜亚洲| 成人免费视频网址| 精品中文字幕一区二区三区| 96精品久久久久中文字幕| 亚洲午夜国产成人| 亚洲精品日韩av| 一区二区视频| 激情伦成人综合小说| 免费看成人吃奶视频在线| 欧美一区二区在线| 日韩免费看片| 青青在线视频免费观看| 亚洲成色精品| 日韩精品一区二区三区色欲av| 天堂资源在线中文精品| gogogo高清免费观看在线视频| 国内精品伊人久久久久影院对白| 国产精品嫩草影视| eeuss鲁片一区二区三区在线观看| 国产高清自拍视频| 国产欧美日韩久久| 四虎884aa成人精品| 亚洲一区二区三区三| 五月婷婷视频在线| 欧美日韩一区小说| 精品人妻aV中文字幕乱码色欲| 精品剧情v国产在线观看在线| 色网站在线免费观看| 夜夜躁日日躁狠狠久久88av| 国产在线观看av| 久久人人看视频| 日韩三区免费| 亚洲最大福利视频| 欧美美乳视频| 国产资源第一页| 久久久成人网| 美女日批在线观看| 国产色综合一区| 久久久久久久福利| 日本韩国一区二区| 成人1区2区3区| 亚洲日韩中文字幕在线播放| 伊人电影在线观看| 丁香5月婷婷久久| 99视频免费观看| 亚洲宅男一区| 国产内射老熟女aaaa| 亚洲综合国产激情另类一区| 久久精品国产露脸对白| www久久久久| 污污的视频在线免费观看| 狠狠躁天天躁日日躁欧美| 一级黄色录像大片| 日韩精品一区二区三区三区免费| 久久久资源网| 欧美激情免费视频| 欧美天堂一区二区| 久久久影院一区二区三区| 欧美.www| 欧美成人三级在线播放| 91污片在线观看| 日本精品二区| 97国产成人高清在线观看| 日本韩国欧美在线观看| 激情六月婷婷综合| 亚洲天堂久久新| 亚洲图片自拍偷拍| 国产精品无码在线播放| 亚洲天堂视频在线观看| 超碰在线网站| 亚洲在线视频福利| 欧美色图国产精品| 黄www在线观看| 成人午夜电影久久影院| 久久国产高清视频| 欧美性受xxxx| 青青青免费视频在线2| 欧美激情久久久| 日韩欧美中文字幕一区二区三区| 五月天国产一区| 视频一区二区欧美| 色噜噜在线观看| 偷拍与自拍一区| 亚洲精品国产手机| 超碰91人人草人人干| 玖玖精品在线| 亚洲国产一区二区精品视频 | 欧美大片va欧美在线播放| 黄色成人小视频| 亚洲欧美日韩精品在线| 日韩在线观看一区二区| 无码h肉动漫在线观看| 欧美日韩亚洲高清| 天堂成人在线| 2021久久精品国产99国产精品| 成人动态视频| 麻豆tv在线播放| 成人免费va视频| 日本少妇在线观看| 亚洲黄色在线看| 97超碰免费在线| 久久精品一二三区| 久久精品免费| 在线小视频你懂的| 欧美综合欧美视频| 国产精品一二三区视频| 国产精品久久久久久久久久久久久| 国产成人3p视频免费观看| 欧美二区在线视频| 久久婷婷久久一区二区三区| 91在线视频在线观看| 亚洲天堂网站在线观看视频| aaaa欧美| 亚洲激情免费视频| 不卡一区二区在线| 九九热精品视频在线| 日韩不卡在线观看| 日韩欧美另类一区二区| 亚洲v国产v| 国产传媒久久文化传媒| 国产精品自拍视频一区| 亚洲精品永久免费精品| 综合在线影院| 青春草在线视频免费观看| 高潮精品一区videoshd| 日韩欧美视频在线免费观看| 国产午夜精品一区二区三区| 亚洲成人a级片| 国产欧美精品aaaaaa片| 91在线观看下载| 亚洲视屏在线观看| 免费91麻豆精品国产自产在线观看| 视频欧美一区| 日韩中文字幕二区| 国产精品的网站| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 国产91精品高潮白浆喷水| 久久国产亚洲| 亚洲日本久久久| 欧美午夜精品电影| 日本性爱视频在线观看| 免费国产一区二区| 国产在线播放一区| 日韩中文字幕在线观看视频| www.美女亚洲精品| 欧美一性一交| av中文字幕网址| 色综合一区二区三区| 91极品在线| 日韩亚洲一区在线播放| 高清不卡一二三区|