国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Shou.TV 背后基于 Node.js 和 WebSocket 的技術架構

開發 架構
網絡正快速革新,對所有人來講,HTTP是一個更成熟、更容易理解的協議。我們有很多高性能的開源HTTP服務器,比如:nginx,具有非常高的性能且保持高穩定性……

我們使用一個定制的基于WebSocket的協議SLSP來實現廣播和直播。所有組件均由Nginx代理,部署于Ubuntu server上。組件間通過HTTP和JSON通訊。

 

 

技術 

在Shou.TV,我們有如下幾條“軍規”。我們盡***努力,在日常開發中堅守這些規定。

  • 在造輪子之前先選用已有解決方案中***的那一個。工程師們都熱愛自行造輪子。但是為了交付產品,我們需要快速地構建,并確保產品的穩定性。

  • 掌握核心技術。如果在我們的核心架構中引入第三方解決方案,我們應當盡***的努力去理解各個方面。如果我們能力不足以理解該解決方案,或者該解決方案并不值得我們花時間去搞懂,那么就構建我們自己的解決方案。

  • 不要將核心技術綁定在一家供應商上。我們應當確保解決方案可以被移植到任何服務器上。

  • 盡可能快地完成非核心技術。使用任何一個可用的軟件或解決方案。以后有時間的時候在去理解它。

根據這些規定,我們在Shou.TV使用下列技術。

  1. 從不同的供應商處租用VPS,例如EC2、GCE、Linode、Rackspace、DigitalOcean等等。

  2. 使用Ubuntu 14.04 LTS。它擁有***的軟件,并不像CentOS那樣保守。

  3. 對網站、API、聊天室和廣播服務器的所有請求,都經由Nginx,并開啟SSL。

  4. 使用MongoDB作為主數據庫。

  5. 使用Ruby on Rails開發網站和API服務器。

  6. 使用Socket.IO和Redis開發聊天室。

  7. 使用Node.js和FFmpeg開發了基于WebSocket的自定義廣播協議——SLSP。

  8. 使用HLS支撐視頻直播和視頻回放。使用Video.js作為web播放器和Android視頻播放器。

  9. 使用Google云存儲來存檔視頻片段。

  10. 使用Amazon S3存儲小資源,例如用戶頭像。

  11. 使用Git管理代碼。使用Capistrano部署。 

網站和API

我們使用***的Ruby on Rails和Unicorn來開發網站和客戶端API。所有請求都經由Nginx和SSL代理。我們使用越來越多的memcached來應對持續增長的用戶。數據庫是一個MongoDB的集群。

我們還沒有遇到大量的訪問。所以在用戶大量涌入時,我們無法確保可用性。但是我們已經設計了基于AWS Route 53和Elastic Load Balancing或者GCE Network Load Balancing的整套負載均衡架構。   

聊天室

聊天室是一個平衡負載后簡單的Socket.IO服務器集群,它使用redis集群分發郵件和聊天室,使用相同的cookie和會話進行用戶認證的主要網站。

網絡聊天界面是使用Socket.IO的客戶端庫,iScroll.js和簡單的jsrender模板庫。

我們使用AndroidAsync圖書館建立Android的聊天室,有幾個問題,我們已經做了一些補丁。

廣播服務器

我們定義了一個基于WebSocket的自定義直播流媒體協議:SLSP,并只用了大約1000行Node.js和C語言代碼實現。

原因是,RTMP非常舊,而且難于理解及使用大型、可用的HTTP解決方案,相比WebSocket或SLSP而言,它只是個“穩定”的騙局。我在多媒體開發領域有幾年經驗,但在Wowza或任何當前可用的RTMP服務器上,修復這類問題或實現自定義特性仍然感覺困難。

網絡正快速革新,對所有人來講,HTTP是一個更成熟、更容易理解的協議。我們有很多高性能的開源HTTP服務器,比如:nginx,具有非常高的性能且保持高穩定性。

WebSocket是一個長連接協議,適用于視頻流。所有現代瀏覽器都支持WebSocket。WebSocket內置SSL,故而客戶端和服務器端都不需要任何附加代碼。WebSocket使用和HTTPS一樣的443端口,因為可以穿越絕大多數防火墻。

SLSP,簡而言之,如同一個WebSocket聊天室。只需要將服務器部署在Nginx代理之后,一旦WebSocket客戶端向服務器發送持續的視頻流,SLSP就會將視頻流分段成數個HLS TS段,故而任何一個可用的HLS播放器都可以播放視頻流了! 

WebSocket可以使用大量可用的高性能HTTP解決方案。SLSP是基于WebSocket的,理所當然我們也可以構建非常健壯的智能負載均衡方案。如上圖所示,無論何時我們啟動一臺新的SLSP服務器,它都會向負載均衡器注冊自身。每一個SLSP服務器都會持續地向均衡器發送自身的狀態,例如服務器當前負載。 

當一個SLSP客戶端想要去廣播, 它首先要向負載均衡器請求一個SLSP服務器的地址,均衡器會基于潛在的服務器負載,選擇一個最合適的SLSP服務器,然后客戶端會直接發布視頻流到SLSP服務器。

無論什么時候負載均衡器遇到高負載,它都會在幾分鐘內自動建立一個新的SLSP服務器, 并且我們還會進一步改進它。均衡器會移除空閑的SLSP服務器以節省開銷。

廣播結束之后,為了將來可以回放,服務器將會上傳完整的流到Google云。

去更新吧

Shou.TV 仍然是一個很新的項目,它的用戶不多,因此我們還沒有驗證在高負載下的情形。我們將會持續改進和發布更多細節。

英文原文:The Technology Behind Shou.TV

譯文鏈接:http://www.oschina.net/translate/the-technology-behind-shoutv

責任編輯:林師授 來源: 開源中國社區 編譯
相關推薦

2021-12-25 22:29:57

Node.js 微任務處理事件循環

2019-07-09 14:50:15

Node.js前端工具

2022-02-22 11:39:13

WebSocketsNode.js開發

2023-11-16 14:56:13

2022-03-26 16:51:27

Node.jstrace架構

2011-10-18 10:17:13

Node.js

2021-08-24 06:38:37

Node.js COW 文件復制

2013-11-01 09:34:56

Node.js技術

2015-03-10 10:59:18

Node.js開發指南基礎介紹

2011-10-25 09:28:30

Node.js

2020-05-29 15:33:28

Node.js框架JavaScript

2012-02-03 09:25:39

Node.js

2014-02-19 16:28:53

Node.jsWeb工具

2024-09-25 08:04:58

2017-04-20 12:30:57

聲明式爬蟲網絡

2011-09-02 14:47:48

Node

2011-09-09 14:23:13

Node.js

2011-09-08 13:46:14

node.js

2011-11-01 10:30:36

Node.js

2012-10-24 14:56:30

IBMdw
點贊
收藏

51CTO技術棧公眾號

奇米一区二区三区四区久久| 欧美wwwwwww| 91蜜臀精品国产自偷在线| 日韩精品一区在线| 免费a级毛片在线观看| 久久综合九色综合97婷婷女人| 国产chinese精品一区二区| 一道在线中文一区二区三区| 日韩资源在线观看| 黄色成人小视频| 色小说视频一区| 欧美福利在线播放| 这里只有精品久久| 国产综合色激情| 中文字幕精品网| 久久99久久久精品欧美| 在线精品播放av| 久久野战av| 日韩有码在线播放| 欧美电影在线观看一区| 最近的2019中文字幕免费一页| 亚洲精品.com| 久久久国产影院| 亚洲三级av| 欧美一区二区.| 欧美精品乱码| 成人黄色免费看| 欧美成人亚洲| 国产精品久久久久久久久久久久午夜片 | av网站免费线看精品| 亚洲午夜精品久久久中文影院av| 亚洲国产精久久久久久| 日本亚洲欧美天堂免费| 福利一区视频在线观看| 国语自产精品视频在线看一大j8| 亚洲欧美综合国产精品一区| 欧美lavv| 久久精品一区二区| 色婷婷综合网站| 日韩av一级电影| 一卡二卡三卡亚洲| 亚洲女人的天堂| 肉丝袜脚交视频一区二区| 在线人成日本视频| 欧美成人在线直播| 香蕉av一区| 91国偷自产一区二区开放时间| 国产九九在线| 亚洲福利视频免费观看| 国产精品高清乱码在线观看| 欧美激情第6页| 91综合在线| 亚洲欧洲日韩精品| 久久色在线视频| 久久久亚洲精华液精华液精华液 | 亚洲日本护士毛茸茸| 午夜影院观看视频免费| 欧美精品第一页| 亚州精品国产| 国产精品久久国产精品99gif| 狠狠入ady亚洲精品| 在线观看日本一区| 国产精品灌醉下药二区| 亚洲欧美视频一区二区| 伊人久久男人天堂| 一本一道久久a久久精品蜜桃| 一区二区三区的久久的视频| 欧美韩国日本综合| 在线观看免费黄视频| 日韩中文在线不卡| 欧美精品系列| 青青青在线观看视频| 亚洲综合清纯丝袜自拍| 97超碰免费在线| 国产成人精品久久二区二区91| 日本成人在线不卡视频| 在线观看成人影院| 亚洲国产97在线精品一区| 久久动漫网址| 欧美性视频在线播放| 午夜国产不卡在线观看视频| www.com.cn成人| julia一区二区中文久久94| 成人av动漫在线| 成人三级黄色免费网站| 久久久亚洲影院你懂的| 久久精品国产精品亚洲综合| 一区二区电影网| 欧美高清视频免费观看| 久久国产麻豆精品| 亚洲mv在线| 国精产品一区一区三区有限在线| 全部av―极品视觉盛宴亚洲| 中文字幕在线观| 久久久噜噜噜久久中文字免| 久久精品久久综合| 神马久久精品| 欧洲精品在线视频| 99免费精品视频| 波多野结衣乳巨码无在线观看| 国产成人精品久久二区二区91 | 国产欧美一区二区三区在线老狼| 里番在线播放| 97操在线视频| 亚洲码国产岛国毛片在线| 日韩精品第一| 一区二区不卡在线观看| 欧美四级电影在线观看| 欧美精选一区二区三区| 欧美成人黄色网址| xxxxx成人.com| 国产精品一级在线| 国产精品69xx| 欧美激情专区| 91精品欧美综合在线观看最新| 亚洲国产精品91| 一二三中文字幕在线| 国产精品视频在线播放| 亚洲免费大片在线观看| 国产主播性色av福利精品一区| 777精品久无码人妻蜜桃| 日韩精品在线观看一区二区| 首页欧美精品中文字幕| 黄色片网站在线观看| 久久99精品国产99久久| 欧美日韩免费一区二区三区| 国产精品草草| av在线中文| 欧美中日韩免费视频| 欧美一级夜夜爽| 久久精品电影| 波多野结衣中文在线| 亚洲精品在线视频观看| 亚洲国产精品专区久久| 国产一区二区视频在线播放| 2022成人影院| 国产亚洲黄色片| 精品久久国产精品| 久久色.com| 亚洲精品中文字幕99999| av免费播放| 国产精品成人国产乱一区| 亚洲免费观看视频| 91亚洲国产高清| 男人和女人做事情在线视频网站免费观看| 国产精品久久久久久久久久直播| 欧美日韩一二三| 99精品全国免费观看视频软件| 色视频www在线播放国产| 国产有码一区二区| 欧美日产国产精品| 国产乱码精品一区二区三区av | 一本大道香蕉久在线播放29| 91视频免费网站| 欧美日本一区二区在线观看| 欧美亚洲专区| 秋霞国产精品| 五月亚洲综合| 99三级在线| 亚洲精品理论电影| 久久蜜桃av一区二区天堂| 你懂的视频欧美| 蜜桃视频网站在线观看| av影院在线播放| 日韩av手机在线| 91 com成人网| 久久亚洲精品国产精品紫薇| 青青草国产免费一区二区下载| 日本在线观看网站| 福利视频一二区| 国产免费成人av| 精品国产乱码久久久久久蜜臀| 97久久精品人人做人人爽50路| 国产一区二区三区四区五区| 99热国产在线| 日本www高清视频| 国产在线欧美日韩| 精品国产欧美一区二区五十路 | 久久精品影视伊人网| 亚洲福利视频一区二区| 免费亚洲一区| a看欧美黄色女同性恋| 成人福利在线| 国产精品专区在线| 91精品久久久久久久久久久| 亚洲第一二三四五区| 亚洲人成在线观看一区二区| 天堂va蜜桃一区二区三区| 国产精品极品| 久草在线中文最新视频| 中文字幕视频在线| 国产成人无码精品久久久性色| 国产传媒一区| 久久久久久久一区二区| 日韩精品一区二区三区在线播放 | 青青国产91久久久久久| 夜夜躁狠狠躁日日躁2021日韩| 男人天堂手机在线| av手机免费观看| xxxxxx在线观看|