surging 基于流媒体服务如何集群分流
前言
購物返利 https://www.cpa5.cn/最近幾年微服務可謂是大火,大家忙著建設微服務,學習微服務如何搭建,微服務技術體系的演變也使得企業公司能支持起靈活,多樣化的業務需求和越來越多的訪問量,有很多企業用戶正在朝著業務中臺,SAAS云平臺進行發展,并能與時俱進跟上技術時代的腳步。而這篇文章呢,主要是講解一下流媒體服務如何集群分流,附帶講解一下surging 特有的一些功能。
?
微服務特點
?
?
6個典型特點
1.高內聚,低耦合:程序模塊的可重用性、移植性大大增強,針對于接口和業務模塊的不同部署就能做到本地和遠程調用;
2.單一職責:只負責某一業務功能;
3.獨立:每個服務可以獨立的開發、測試、構建、部署;
4. 靈活性:小而靈活可以滿足開發不同類型的業務模塊。
5.進程隔離:可以通過隔離,發生熔斷,雪崩而不會影響其它服務調用和運行
6.多樣性: 針對于協議的擴展可以支持多樣化業務場景的解決方案。
部件和功能
通過上圖發現,surging 可以支持以下功能:
1.可以支持web,移動端,物聯網和流媒體等業務場景
2.可以支持rtmp ,http-flv,thrift,mqtt,ws,http,grpc 多種協議以滿足不同業務的場景的需要
3,可以支持服務之間調用的鏈路追蹤。
4.可以支持掃描模塊引擎,cli 工具,任務調度服務,日志,swagger 文檔,服務注冊,服務發現,協議主機,緩存中間件,事件總線等功能。
實例
?
?
?
下面以上圖流媒體集群分流的例子,看看是如何研發運行的。
?以部署兩臺服務提供者為例,服務A,通過下載surging企業版(非商業用戶不能用于商業,只能用于學習),通過以下配置來修改surgingSettings.json文件
{"Surging": {"Port": "${Surging_Server_Port}|81","Ports": {"HttpPort": "${HttpPort}|28","WSPort": "${WSPort}|96","MQTTPort": "${MQTTPort}|97","GrpcPort": "${GrpcPort}|95"},"LiveStream": {"RtmpPort": 77, //rtmp 端口"HttpFlvPort": 8081, //HttpFlv 端口"EnableLog": true, //是否啟用log"EnableHttpFlv": true,"RouteTemplate": "live1", //直播服務路由規則名稱,可以根據規則設置,比如集群節點2,可以設置live2, 集群節點3,可以設置live3"ClusterNode": 2 //集群節點數里,會根據routetemplate 轉推流 } }?
服務B,通過以下配置來修改surgingSettings.json文件
{"Surging": {"Port": "${Surging_Server_Port}|82","Ports": {"HttpPort": "${HttpPort}|281","WSPort": "${WSPort}|961","MQTTPort": "${MQTTPort}|971","GrpcPort": "${GrpcPort}|951"},"LiveStream": {"RtmpPort": 76, //rtmp 端口"HttpFlvPort": 8080, //HttpFlv 端口"EnableLog": true, //是否啟用log"EnableHttpFlv": true,"RouteTemplate": "live1", //直播服務路由規則名稱,可以根據規則設置,比如集群節點2,可以設置live2, 集群節點3,可以設置live3"ClusterNode": 2 //集群節點數里,會根據routetemplate 轉推流 } }然后可以通過ffmpeg或者obs進行推流,以ffmpeg 工具為例,可以輸入以下命令
ffmpeg -re -i D:/大H包.HDTC1280高清國語中字版.mp4 -c copy -f flv rtmp://127.0.0.1:76/live1/livestream2通過以下代碼我們創建httpflv 的html 文件,url配置為:http://127.0.0.1:8080/live1/livestream2?
<!DOCTYPE html> <html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"><title>flv.js demo</title><style>.mainContainer {display: block;width: 1024px;margin-left: auto;margin-right: auto;}.urlInput {display: block;width: 100%;margin-left: auto;margin-right: auto;margin-top: 8px;margin-bottom: 8px;}.centeredVideo {display: block;width: 100%;height: 576px;margin-left: auto;margin-right: auto;margin-bottom: auto;}.controls {display: block;width: 100%;text-align: left;margin-left: auto;margin-right: auto;margin-top: 8px;margin-bottom: 10px;}.logcatBox {border-color: #CCCCCC;font-size: 11px;font-family: Menlo, Consolas, monospace;display: block;width: 100%;text-align: left;margin-left: auto;margin-right: auto;}</style> </head><body><div class="mainContainer"><video name="videoElement" class="centeredVideo" id="videoElement" controls width="1024" height="576" autoplay>Your browser is too old which doesn't support HTML5 video.</video></div><script src="https://cdn.bootcdn.net/ajax/libs/flv.js/1.5.0/flv.min.js"></script><script>(function () {if (flvjs.isSupported()) {startVideo()}function startVideo() {var videoElement = document.getElementById('videoElement');var flvPlayer = flvjs.createPlayer({type: 'flv',isLive: true,hasAudio: true,hasVideo: true,enableStashBuffer: false,url: 'http://127.0.0.1:8080/live1/livestream2'});flvPlayer.attachMediaElement(videoElement);flvPlayer.load();window.setTimeout(function () { flvPlayer.play(); }, 500);}videoElement.addEventListener('click', function () {alert('是否支持點播視頻:' + flvjs.getFeatureList().mseFlvPlayback + ' 是否支持httpflv直播流:' + flvjs.getFeatureList().mseLiveFlvPlayback)})function destoryVideo() {flvPlayer.pause();flvPlayer.unload();flvPlayer.detachMediaElement();flvPlayer.destroy();flvPlayer = null;}function reloadVideo() {destoryVideo()startVideo()}}) (document)</script></body></html>然后就可以通過打開創建的html文件,運行效果如下圖
?
?通過potplay 配置服務A,鏈接為:rtmp://127.0.0.1:77/live1/livestream2,然后如下圖所示:
?
?
?可以通過potplay 配置服務B,鏈接為:rtmp://127.0.0.1:76/live1/livestream2,然后如下圖所示:
?結尾
通過此篇文章我們了解surging ,也了解如何播放httpflv ,如何針對于rtmp 推流轉推到其它服務上進行訂閱播放,后期計劃打算支持rtsp 協議,也請各大用戶和企業用戶多多關注。
總結
以上是生活随笔為你收集整理的surging 基于流媒体服务如何集群分流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7-17 古风排版
- 下一篇: 新智云助力西门子杨浦楼宇能源开放实验室