• 网络课程学习


    redis、skynet、nginx、memcached网络模块对比分析

    1. 阻塞io、非阻塞io、异步io、同步io、io多路复用;
    2. select、epoll精讲;
    3. 几种开源框架reactor实现比较;
    上课讲师:mark老师
    上课时间:2020/12/30 20:00
    上课地址:https://ke.qq.com/course/417774?flowToken=1018091

    1. 阻塞IO和非阻塞IO的区别在于数据准备阶段是否阻塞,因为数据从内核态拷贝到用户态肯定是阻塞的

     四个步骤:

      数据没准备好

      数据准备好了

      数组在内核态

      数据在用户态

    2. IO多路复用

     2.0 解决了什么问题?

      帮我们得到可操作的fd,不需要我们一直轮询

     2.1 复用什么?复用一个线程

     2.2 多路是什么?多个网络请求

    3. epoll 水平触发和边缘触发

    边缘: 只能用非阻塞IO

     3.1 读: 由socket 读缓冲区空转为非空 的时候触发

     3.2 写: 写缓冲区满转为不满 的时候触发

    水平: 阻塞IO和非阻塞都可以

     3.1 读: socket读缓冲区有数据就会通知

     3.2 写: socket写缓冲区 有空间写就会触发

    nginx: 边缘触发

    redis(reactor模型), skynet, memcached: 水平触发

    nginx用来做什么?静态web服务器,数据量大,希望把数据及时在用户态就读完减少系统调用

    reactor = 非阻塞IO + IO多路复用

    redis, skynet是单reactor模型,网络和业务都是在一个线程,不能处理网络密集型业务

    nginx是多reactor模型,利用多进程做的

    今日和你聊聊RTSP/RTMP推流那些坑

    1.推流架构分析
    2.推流缓存队列的设计
    3.FFmpeg函数阻塞问题分析
    上课讲师:darren老师
    上课时间:2021/01/05 20:00
    上课地址:https://ke.qq.com/course/417774?flowToken=1018091

    1. 音视频都需要时间戳, 假如370KB的图片,需要在40ms发出去,带框需要 370 * (1 << 10) * 8 / 0.04 = 70Mb带框

    2. 直播服务分为,RTMP协议

        2.1 推流

        2.2 流媒体缓存

        2.3 拉流

    3. 假如有延迟,做法

        3.1 推流drop数据

        3.2 客户端变速或者客户端drop掉非I帧

  • 相关阅读:
    kafka学习笔记(六)kafka的controller模块
    腾讯蓝鲸使用笔记
    kafka学习笔记(五)kafka的请求处理模块
    kafka学习笔记(四)kafka的日志模块
    kafka学习笔记(三)kafka的使用技巧
    kafka学习笔记(二)kafka的基本使用
    kafka学习笔记(一)消息队列和kafka入门
    大数据安全与RANGER学习和使用
    10-Linux 基本指令
    09-迭代器、模块
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/14213348.html
Copyright © 2020-2023  润新知