服务器关于数据流转方式
Posted 月疯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器关于数据流转方式相关的知识,希望对你有一定的参考价值。
在做数据产品设计时,整个关注两个重点,数据的流转,业务逻辑;
数据怎么流转,数据流转方法,可以根据数据量的大小和使用时效性要求,有三种数据流转的方案;
1、实时大数据量、秒级、可异步;
业务要求:峰值数据量大,数据处理有一定时效性要求准实时(分钟级或秒级),业务逻辑可以分割异步操作,不影响需求实现以及客户体验;
实现方案:使用消息队列组件进行数据数据缓存和数据流转
业内一直使用不同的MQ组件,包含redis也有类似的消息组件的功能;
常见的有Kafka、ActiveMQ、RabbitMQ、RocketMQ 具体使用哪个,可以看下面的文章来选择;https://mp.weixin.qq.com/s/3GMs3ae7ffDFgia9VSDMEg ,这些组件的作用:
削峰:某个时间点的数据写入量超过了系统可承受的极限,则通过以时间换空间的思维,把数据写入和处理分割开,大量的数据写入到消息队列中,后端根据可处理的能力,读取数据进行处理。
分布式/解耦:解耦的意思是把数据读写拆分成不同的服务实现,同时数据在写入时不考虑读取,在读取时只从消息队列读数据,不依赖写入方;分布式,可以多个数据写入方,同时多个数据读取方,做到数据写入和读取的负载工作;
异步:能解耦的前提就是异步,使用消息队列的前提,业务场景中,数据处理流程独立,两个模块间不相互依赖返回状态,对数据时效性要求为准实时(分钟级),才推荐使用消息中间件,异步也是为了更好的提升业务体验;(具体可以看上面文章中对消息队列的介绍)
2、批量数据量、分钟级/小时/天,可异步;
业务要求,数据批量产生,数据时效性要求为(天/小时),业务逻辑可以分割异步操作。
实现方案:由于上游数据以批量文件生成,所以只能以批量处理的方式实现;
3、实时数据、毫秒级,同步处理;
业务要求:数据要求实时获取/处理(ms级),处理时效性高(实时请求返回结果),数据量较小;
实现方案:通过接口实现数据交互,在接口前通过所有接口注册在公共负载均衡服务器(F5/Apache/nginx)协助实现服务的高可用,实现请求的集中管理、流控、隔离、监控;
以上是关于服务器关于数据流转方式的主要内容,如果未能解决你的问题,请参考以下文章
EasyRTSPLive摄像机NVR录像机RTSP协议实时流转RTMP协议直播流推送之搭建EasyRTMPLive拉RTSP流转RTMP测试环境的方法解析
EasyRTMP实现内网摄像头RTSP拉流转码RTMP推流到RTMP服务器EasyRTMP-Android视频采集流程是什么?