日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

surging 基于流媒体服务如何集群分流

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 surging 基于流媒体服务如何集群分流 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

購(gòu)物返利 https://www.cpa5.cn/

最近幾年微服務(wù)可謂是大火,大家忙著建設(shè)微服務(wù),學(xué)習(xí)微服務(wù)如何搭建,微服務(wù)技術(shù)體系的演變也使得企業(yè)公司能支持起靈活,多樣化的業(yè)務(wù)需求和越來(lái)越多的訪問(wèn)量,有很多企業(yè)用戶正在朝著業(yè)務(wù)中臺(tái),SAAS云平臺(tái)進(jìn)行發(fā)展,并能與時(shí)俱進(jìn)跟上技術(shù)時(shí)代的腳步。而這篇文章呢,主要是講解一下流媒體服務(wù)如何集群分流,附帶講解一下surging 特有的一些功能。

?

微服務(wù)特點(diǎn)

?

?

6個(gè)典型特點(diǎn)

1.高內(nèi)聚,低耦合:程序模塊的可重用性、移植性大大增強(qiáng),針對(duì)于接口和業(yè)務(wù)模塊的不同部署就能做到本地和遠(yuǎn)程調(diào)用;

2.單一職責(zé):只負(fù)責(zé)某一業(yè)務(wù)功能;

3.獨(dú)立:每個(gè)服務(wù)可以獨(dú)立的開(kāi)發(fā)、測(cè)試、構(gòu)建、部署;

4. 靈活性:小而靈活可以滿足開(kāi)發(fā)不同類(lèi)型的業(yè)務(wù)模塊。

5.進(jìn)程隔離:可以通過(guò)隔離,發(fā)生熔斷,雪崩而不會(huì)影響其它服務(wù)調(diào)用和運(yùn)行

6.多樣性: 針對(duì)于協(xié)議的擴(kuò)展可以支持多樣化業(yè)務(wù)場(chǎng)景的解決方案。

部件和功能

通過(guò)上圖發(fā)現(xiàn),surging 可以支持以下功能:

1.可以支持web,移動(dòng)端,物聯(lián)網(wǎng)和流媒體等業(yè)務(wù)場(chǎng)景

2.可以支持rtmp ,http-flv,thrift,mqtt,ws,http,grpc 多種協(xié)議以滿足不同業(yè)務(wù)的場(chǎng)景的需要

3,可以支持服務(wù)之間調(diào)用的鏈路追蹤。

4.可以支持掃描模塊引擎,cli 工具,任務(wù)調(diào)度服務(wù),日志,swagger 文檔,服務(wù)注冊(cè),服務(wù)發(fā)現(xiàn),協(xié)議主機(jī),緩存中間件,事件總線等功能。

實(shí)例

?

?

?

下面以上圖流媒體集群分流的例子,看看是如何研發(fā)運(yùn)行的。

?以部署兩臺(tái)服務(wù)提供者為例,服務(wù)A,通過(guò)下載surging企業(yè)版(非商業(yè)用戶不能用于商業(yè),只能用于學(xué)習(xí)),通過(guò)以下配置來(lái)修改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", //直播服務(wù)路由規(guī)則名稱,可以根據(jù)規(guī)則設(shè)置,比如集群節(jié)點(diǎn)2,可以設(shè)置live2, 集群節(jié)點(diǎn)3,可以設(shè)置live3"ClusterNode": 2 //集群節(jié)點(diǎn)數(shù)里,會(huì)根據(jù)routetemplate 轉(zhuǎn)推流 } }

?

服務(wù)B,通過(guò)以下配置來(lái)修改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", //直播服務(wù)路由規(guī)則名稱,可以根據(jù)規(guī)則設(shè)置,比如集群節(jié)點(diǎn)2,可以設(shè)置live2, 集群節(jié)點(diǎn)3,可以設(shè)置live3"ClusterNode": 2 //集群節(jié)點(diǎn)數(shù)里,會(huì)根據(jù)routetemplate 轉(zhuǎn)推流 } }

然后可以通過(guò)ffmpeg或者obs進(jìn)行推流,以ffmpeg 工具為例,可以輸入以下命令

ffmpeg -re -i D:/大H包.HDTC1280高清國(guó)語(yǔ)中字版.mp4 -c copy -f flv rtmp://127.0.0.1:76/live1/livestream2

通過(guò)以下代碼我們創(chuàng)建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('是否支持點(diǎn)播視頻:' + 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>

然后就可以通過(guò)打開(kāi)創(chuàng)建的html文件,運(yùn)行效果如下圖

?

?通過(guò)potplay 配置服務(wù)A,鏈接為:rtmp://127.0.0.1:77/live1/livestream2,然后如下圖所示:

?

?

?可以通過(guò)potplay 配置服務(wù)B,鏈接為:rtmp://127.0.0.1:76/live1/livestream2,然后如下圖所示:

?結(jié)尾

通過(guò)此篇文章我們了解surging ,也了解如何播放httpflv ,如何針對(duì)于rtmp 推流轉(zhuǎn)推到其它服務(wù)上進(jìn)行訂閱播放,后期計(jì)劃打算支持rtsp 協(xié)議,也請(qǐng)各大用戶和企業(yè)用戶多多關(guān)注。

總結(jié)

以上是生活随笔為你收集整理的surging 基于流媒体服务如何集群分流的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。