网易视频云:专注于技术服务——异步通知系统

随着互联网技术的发展,云计算在资源层面竞争已经进入白热化的阶段,网易视频云定位于PAAS层面,从各个技术领域进行技术钻研以提供给用户更高效、更稳定、更便捷的视频直播技术服务;notify系统作为网易视频云对外技术服务的一员,提供面向海量用户的高可用异步回调服务。
  目前直播平台大多采用以下架构(图一):客户通过推拉流SDK或软件直接与直播/点播平台进行推拉流/转码交互,这样的架构下客户企业应用中对直播/点播状态及数据的管理增加了更多条件限制,客户企业应用服务器在维护直播/点播数据信息需要考虑各种复杂场景因素:一、推流端非正常退出时客户企业应用服务器无法感知用户真实的流状态;二、客户企业应用无法感知推流用户使用第三方技术进行推拉流等。
  [img]http://ww2.sinaimg.cn/mw690/7c1f0b7fjw1f9dige6fupj20ou0dewfh.jpg[/img] 
  因此为了让客户能更准确高效的获取实时直播数据,网易视频云提供了一套高效稳定的异步回调服务机制(图二),给用户提供实时高效的数据服务。
  [img]http://ww2.sinaimg.cn/mw690/7c1f0b7fjw1f9digelmukj20h40c974v.jpg[/img] 
  与内部服务系统相比,外部异步通知不仅需要考虑海量数据处理的性能同时还需要考虑不同接收方网络环境、数据处理耗时差异的影响。因此如何在负责环境下,给用户提供可靠通知服务是首要解决问题。
  系统设计
  [img]http://ww3.sinaimg.cn/mw690/7c1f0b7fjw1f9digezvh7j20ku07fmxo.jpg[/img]
  通知系统作为网易视频云通用化海量通知发送平台为设计目标并不关心具体业务场景(图三),接入方只需要根据自己的业务状态将发送目标地址、发送内容进行通知注册,通知系统即可根据相关用户配置信息进行高容错发送,在流程上尽可能提高发送方的业务处理效率;为更好支持业务通知系统还提供了提交、回滚可选项二阶段注册方式。 
  通知客户端/api:提供给业务接入方进行通知注册、查询、提交、回滚功能的高可用RPC接口。
  通知恢复处理器:用于触发指定时间点的通知进行重发处理,对重发任务进行恢复调度。
  消息通道:可根据不同业务或用户配置不同的消息通道(图四),一个通道被堵不会影响其他通道,一部分用户处理缓慢不会影响全部客户,从而起到故障隔离的目的。 
  [img]http://ww4.sinaimg.cn/mw690/7c1f0b7fjw1f9digfiug3j20cw059gls.jpg[/img]
  通知协议处理器:真正执行通知发送的组件,不同的接收方往往基于自己的技术使用不同的协议,如:http、https或其他协议,协议处理器按用户配置选择指定的协议进行通知处理,插拔式功能模块更方便支持业务拓展。
  决策器:决策处理器根据协议处理器处理结果和用户的通知发送配置信息进行重试调度、消息降级、丢弃、归档处理;第一次通知发送往往是业务最关心的即时信息,因此具有通道中最高优先调度权,正常情况下第一次发送失败后则会立即进行重发尝试,否则根据策略进行消息降级处理,对于发送失败越高的通知调度的优先级越低。 
  monitor:监控实时系统状态,监控通知积压情况。
  通知系统内部采用注册和发送分离的方案,面向接入业务提供高tps数据写入,让业务处理更纯粹,更效率;通知内部基于通道、协议及决策器协同处理设计方案从细节上提高海量数据处理能力,使通知系统具备资源合理分配、故障隔离、优先调度调控的能力,为通知发送发和接收方提供更高的质量保障;同时通知集群采用高可用分布式服务框架,通知业务接入方和通知服务端采用点对点的调用方式,支持对业务透明的动态扩容方案。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SV小项目-异步FIFO是一个简单的项目,旨在让学生理解FIFO缓存的原理和实现方式。 FIFO缓存是一种常用的数据存储方式,可以用于解决数据传输时的不匹配问题。在异步FIFO中,数据的写入和读取是异步的,意味着数据可以在任何时候写入或读取。这种异步的方式可以增加FIFO的灵活性,并且允许数据的写入和读取在不同的时钟域上应用。 这个小项目的主要目标是实现一个基于Verilog的异步FIFO模块,包括以下功能: 1. 内部缓存的储存和检索 2. 空和满指示器的生成 3. 数据的写入和读取 对于写入操作,当FIFO未满时,它将数据存储在内部缓存中,并更新其指针以指向下一个空位置。当缓存已满时,写入操作将被忽略,并且FIFO满指示器将被设置为高电平。同样,读取操作从内部缓存中检索数据,并将其指针更新以指向下一个位置。当缓存为空时,读操作将被忽略,并且FIFO空指示器将被设置为高电平。 在设计过程中,需要考虑解决的问题包括时序和异步信号的同步。时序问题可以通过FIFO指针和状态机解决,而异步信号可以通过信号同步器进行同步。此外,还需要考虑FIFO的读写顺序和存储器的尺寸,并确保FIFO模块的有效性和可靠性。 总之,通过实现SV异步FIFO项目,学生可以加深对FIFO缓存的理解,并学习基于Verilog的设计和实现。此外,学生还可以通过在项目中遇到的挑战来提高他们的编程和设计技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值