zoukankan      html  css  js  c++  java
  • 视频直播点播平台EasyDSS如何进行集群?

    集群需求

    为了应对越来越多的大流量、大并发的应用场景,TSINGSEE的各款产品都需要具备有集群部署的框架思路,所谓集群化,需要达到的一个最基础的目标是,假设弹性扩容100台主机,如何能够通过简单的主机开通和接口配置,即可达到集群化调度与服务。

    EasyDSS集群

    由于我们的产品众多,本文就拿EasyDSS视频直播点播平台来举例,当然我们其他的流媒体服务器集群的思路也大抵如此,如果之后有机会,我也将和大家系统性的介绍我们产品的集群方向。

    集群目标

    当EasyDSS为单服务运行时,只需要读取本地db数据库及维护内存临时数据即可,包括设备信息、视频信息、用户信息、token信息等,当EasyDSS启用集群,则需要向整个集群共享EasyDSS的所有设备信息、视频信息、用户信息、token信息以及服务本身的IP/Port/负载/能力等信息,方便整个集群可以按照约定的算法进行流量的调度;

    集群思路

    整个EasyDSS集群采用redis进行数据共享的方法,EasyDSS划分类型,例如:源站服务类型、边缘服务类型、中心服务类型,源站类型主要用来接收直播推流、文件上传、视频资源输入,边缘服务类型为直接面向客户端的分发节点,视频数据均是从中心节点或者源站节点拉取或者转推而来,具体可研究一下CDN的源站和边缘设计方法,早期也可简化方案,只需要2种服务类型,源站和边缘分发。

    • 各个服务将点播、直播等信息共享到redis,任何边缘服务都可以获取到集群全局的点播和直播资源;
    • 可采用智能域名解析,单个域名根据不同区域解析得到不同的ip结果,访问对应的集群边缘服务;
    • 在部署集群时,只需要启用集群,并配置对应的服务类型和共享到的redis地址,即可快速开启集群服务。

    EasyDSS流媒体服务器播放效果:

  • 相关阅读:
    nginx的配置
    laravel入门
    Laravel5.6整合swagger
    安装arcgis10.2 for desktop需要microsoft.net framework 3.5 sp1或等效环境 解决方案
    Python 安装numpy-1.16.6+mkl-cp27-cp27m-win-amd64.whl和
    Leetcode-链表
    Java-排序-leetcode刷题
    async await要点
    nodejs查询数据库时,sql的空格和关键字问题
    输入mysql -u root -p 报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
  • 原文地址:https://www.cnblogs.com/easydss/p/13253894.html
Copyright © 2011-2022 走看看