色情业是个大行业。互联网上没有多少网站的流量能和最大的色情网站相匹敌。

要搞定这巨大的流量很难。更困难的是,在色情网站上提供的很多内容都是低延迟的实时流媒体而不是简单的静态视频。但是对于所有碰到过的挑战,我很少看到有搞定过它们的开发人员写的东西。所以我决定把自己在这方面的经验写出来。

问题是什么?

几年前,我正在为当时全世界访问量排名26的网站工作 — 这里不是说的色情网站排名,而是全世界排名。

当时,该网站通过RTMP(Real Time Messaging protocol)协议响应对色情流媒体的请求。更具体地说,它使用了Adobe的FMS(Flash Media Server)技术为用户提供实时流媒体。基本过程是这样的:

  1. 用户请求访问某个实时流媒体
  2. 服务器通过一个RTMP session响应,播放请求的视频片段

因为某些原因,FMS对我们并不是一个好的选择,首先是它的成本,包括了购买以下两者:

  1. 为每一台运行FMS的服务器购买Windows的版权
  2. 大约4000美元一个的FMS特定版权,由于我们的规模,我们必须购买的版权量数以百计,而且每天都在增加。

所有这些费用开始不断累积。撇开成本不提,FMS也是一个比较挫的产品,特别是在它的功能方面(我过一会再详细说这个问题)。所以我决定抛弃FMS,自己从头开始写一个自己的RTMP解析器。

最后,我终于把我们的服务效率提升了大约20倍。

开始

这里涉及到两个核心问题:首先,RTMP和其他的Adobe协议及格式都不是开放的,这就很难使用它们。要是对文件格式都一无所知,你如何能对它进行反向工程或者解析它呢?幸运的是,有一些反向工程的尝试已经在公开领域出现了(并不是Adobe出品的,而是osflash.org,它破解了一些协议),我们的工作就是基于这些成果。

注:Adobe后来发布了所谓的“规格说明书”,比起在非Adobe提供的反向工程wiki和文档中披露的内容,这个说明书里也没有啥新东西。他们给的规格说明书的质量之低劣达到了荒谬的境地,近乎不可能通过该说明书来使用它们的库。而且,协议本身看起来常常也是有意做成具有误导性的。例如:

  1. 他们使用29字节的整形数。
  2. 他们在协议头上所有地方都采用低地址存放最高有效字节(big endian)的格式,除了在某一个字段(而且未标明)上采用低地址存放最低有效字节(little endian)的格式。
  3. 他们在传输9K的视频时,不惜耗费计算能力去压缩数据减少空间,这基本上是没意义的,因为他们这么折腾一次也就是减少几位或几个字节,对这样的一个文件大小可以忽略不计了。

还有,RTMP是高度以session为导向的,这使得它基本上不可能对流进行组播。理想状态下,如果多个用户要求观看同一个实时视频流,我们可以直接向他们传回指向单个session的指针,在该session里传输这个视频流(这就是组播的概念)。但是用RTMP的话,我们必须为每一个要求访问特定流的用户创建全新的一个实例。这是完全的浪费。

成人网站性能提升20倍之经验谈相关推荐

  1. 本周AI热点回顾:百度推出全球首个mRNA疫苗不稳定性解决方案、性能提升20倍:英伟达GPU旗舰A100

    01 百度推出全球首个mRNA疫苗不稳定性解决方案LinearDesign 新冠疫情爆发后,RNA设计领域世界知名专家.斯坦福大学生物化学系Rhiju Das教授关注到疫苗研发存在的一个非常棘手的问题 ...

  2. AI算力霸主诞生!英伟达发布首款安培架构GPU,性能提升20倍

    来源:雷锋网 由于疫情缘故,本该在今年3月英伟达(NVIDIA)GTC 2020上发布的安培(Ampere)架构曝光多次却一直未发布. 5月15日,英伟达CEO黄仁勋发布了英伟达新一代GPU架构安培, ...

  3. 电脑CPU依然得看英特尔酷睿:新一代性能提升20%,AI能力翻5倍;网友:感谢AMD...

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 英特尔第十一代「酷睿家族」终于登场了! 代号Tiger Lake,10nm SuperFin 工艺,针对移动平台,英特尔还放话: 世界上最好 ...

  4. Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外

    来源 | 阿里巴巴云原生公众号 3 月 20 日,Nacos 2.0 正式发布.Nacos 是阿里巴巴在 2018 年开源的一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台,也可以理解为 ...

  5. 腾讯云数据库开源再突破:TDSQL PG版查询性能提升百倍

    日前,腾讯云数据库开源产品TDSQL PG版(开源代号TBase)宣布推出重磅升级--经过一年半的打磨,上万张表访问场景下,内存占用节省60%:查询性能提升百倍:SQL语句兼容性增强.同时,大力提升原 ...

  6. 英伟达发布ChatGPT专用GPU,性能提升10倍,还推出云服务,普通企业也能训练LLM...

    Pine 发自 凹非寺 量子位 | 公众号 QbitAI "AI的iPhone时刻已至",英伟达或成最大赢家. 在GTC2023大会上,黄仁勋接连放出大招: 不仅发布了ChatGP ...

  7. 性能提升10倍以上:阿里达摩院成功研发新型存算一体芯片

    清华大数据软件团队官方微信公众号来源:机器之心 本文约1700字,建议阅读5分钟 人脑的特性就是存算一体,神经元在处理任务时具有极高的并行度,并且功耗极低. 近期,阿里巴巴达摩院宣布成功研发新型存算一 ...

  8. seo优化-SEO实战密码—60天网站流量提高20倍

    seo优化-SEO实战密码-60天网站流量提高20倍 编辑推荐 Zac告诉你他所知道的关于SEO的一切 大名鼎鼎的Google反垃圾组负责人Matt Cutts为之作序 技术.原理.策略.分析.实例: ...

  9. 记一次Java调优,性能提高20倍

    记一次Java调优,性能提高20倍 背景 最近我们接入网关OpenAccess服务增加了流量监控(阿里的Sentinel),进入测试环境,用20个线程并发测试后发现性能问题很严重,响应时间到达了100 ...

最新文章

  1. 上机7 java异常处理,Java之异常处理【7】
  2. css盒子模型、边框border、外边距margin、填充padding、轮廓outline
  3. windows清理_Windows系统高级清理工具,实力吊打360!
  4. 2021年结婚登记创36年新低,六大原因值得注意
  5. Struts2学习第七课 ActionSupport
  6. 超有用的 java面试题
  7. 互联网晚报 | 3月26日 星期六 |​ 竞拍规则优化,部分城市土地市场有所回暖;​​武汉房贷利率下调...
  8. Hive之安装 部署
  9. 来,说说什么是运维人的情怀?
  10. WPF DataGrid使用 后台界面修改前台不刷新问题
  11. 嵌入式linux中文语言支持,嵌入式linux无法显示中文问题
  12. Win7更改SATA模式为AHCI
  13. Cocos2d-x2.0 各种粒子效果详解
  14. IPv6安装及使用手册
  15. 分享Windows Server2003 防木马权限设置IIS服务器安全配置整理 002
  16. GitLab -- 简单使用CICD功能
  17. 解决TinyMCE富文本编辑器上传视频后在编辑区域内不能预览视频,被替换成img标签的问题
  18. 走进JavaWeb技术世界3:JDBC的进化与连接池技术
  19. ECharts加载省份地图
  20. android 简单名称混淆,android 混淆基本知识(示例代码)

热门文章

  1. 融云IM SDK web 端集成 — 表情采坑篇
  2. dpi和ppi换算_DPI 和 PPI 的区别是什么?
  3. 计算几何课堂:DCEL(双向边链表)
  4. FoMo3D key价格增长的算法
  5. 梯形图中常闭常开触点的选择
  6. TOP1 TOP5
  7. arguments.callee的用法
  8. 【python 图片相似度】直方图计算图片相似度
  9. Java解析eml文件工具类
  10. C#读取Excel的方法