当前位置: 首页 > news >正文

免费个人网站域名简洁风格的网站模板免费下载

免费个人网站域名,简洁风格的网站模板免费下载,网络公司网站模版,网站建设试题卷点击上方“蓝字”关注我们菜菜哥#xff0c;紧急求助呀怎么回事#xff1f;产品经理砍你了#xff1f;没有#xff0c;只是写了个新项目#xff0c;上线就被压垮了什么功能#xff0c;这么强悍#xff1f;一个记录用户观看视频进度信息的功能那如果用户基数大#xff0… 点击上方“蓝字”关注我们菜菜哥紧急求助呀怎么回事产品经理砍你了没有只是写了个新项目上线就被压垮了什么功能这么强悍一个记录用户观看视频进度信息的功能那如果用户基数大确实是需要注意的那我给你分析一下哈背景每一个片子的幕后都保留了你的观看记录详细的记着你观看了几次跳过了那些时长 据说根据这些数据可以分析出你喜欢哪个日本明星以此来做定向推送......虽然看起来很简单的一个功能其实涉及到的数据量非常大极限情况下为你的用户数*视频数的乘积。那么在只有两个网站服务器一台sqlserver的情况下该如何面对这样不算大数据量的写请求呢为什么说是写请求呢因为用户观看视频的每一秒你都需要记录下来例如视频的第十秒用户观看了。要想把这个功能搞定首先需要定义几个事情1. 记录用户观看视频情况的数据定义2. 和客户端交互的数据协议3. 数据库中记录的数据格式4. 如何解决服务器写的压力毕竟单台服务器请求数还是比较大解决方案用户观看视频进度定义对于一个视频来说假如有1个小时的时长这3600秒对应着3600个是否已经观看的状态对于观看状态来说只有观看和未观看两种状态所以一个bit足以一个字节byte有8个bit所以一个byte可以表示8秒的观看状态以此为基础进制越高同样数量的字符表示的状态就越多。客户端每次上传新的数据需要和服务端已经存在的数据做位运算例如01000  表示第二秒观看了 客户端新上传00011 表示第4,5秒都观看了对于用户而言这个视频第2,4,5 秒都看过虽然只是一个简单的运算但是量大的时候对cpu的消耗不容小觑。第一字节    第二字节0 1 2 3 4 5 6 7  0 1 2 3 4 5 6 7  bit  1 0 0 0 1 0 0 0  0 1 0 0 0 0 0 0 二进制  0x88    0x40 字符串  8840 和客户端交互协议用户观看视频的进度实时信息只有客户端知道客户端需要上传用户的观看进度数据和服务端交互的进制可以选择通用性比较强的16进制当然你选择100进制也无所谓只要双方能同时支持并且能正常解析即可数据库数据格式每种数据库支持的数据类型有差异所以这里不在过多叙述当然无论什么格式占用空间越少越好但也要根据业务的计算量来综合考虑。解决问题cpu性能问题毕竟要把用户每次最新的观看数据和老数据做合并工作在用户量大的情况下不容小觑。在综合了各种条件之后最终采用10进制来做合并工作客户端上传上来16进制数据然后转化为十进制然后和观看记录10进制做合并运算这部分cpu省略不了具体转化程序为//需要新加的数据ConcurrentQueueUserVideoInfo AddQueue  new ConcurrentQueueUserVideoInfo();//把16进制的字符串按照两位 分割成十进制数组protected Listint ConvertToProgressArray(string progressString){if (string.IsNullOrWhiteSpace(progressString)){return null;}//验证是否为2的倍数长度if (progressString.Length % 2 ! 0){return null;}var proStrSpan  progressString.AsSpan();Listint ret  new Listint();int i  0;while (i  proStrSpan.Length){ret.Add(int.Parse(proStrSpan.Slice(i, 2).ToString(), System.Globalization.NumberStyles.HexNumber)); ;i  i  2;}return ret;} 客户端请求数量问题如果同时一万用户在同时观看视频上传数据时间间隔为2秒意味着每秒有5000请求。由于这个业务只是一个用户log型业务何为log型就是说可以容忍一部分数据丢失针对这个数据形态客户端可以先在本地做缓冲记录没有必要一秒上传一次记录例如现在约定的客户端30秒上传一次记录如果用户关掉客户端下次启动的时候会重新上传未成功的记录。数据库压力如果每次请求都单独更新数据库按照第二条的计算每秒高达5000次update请求。用户观看每次视频都加载内存中缓存仔细分析这种业务由于是log型数据所以每次你请求没有必要都去更新数据库而是先更新了缓存然后定时去更新数据库。由于数据量的问题所有的更新操作都会发送到一个任务队列队列的执行者会根据配置批量更新数据库这样比单条更新数据库性能要高很多其实这种方案在很多log型的业务中都有使用批量更新对数据库的压力要小很多,代码类似以下public async Taskint AddUserVideoData(UserVideoInfo data, DBProcessEnum processType  DBProcessEnum.Update){if(processType DBProcessEnum.Add){AddQueue.Enqueue(data);}return 1;}void MulProcessData(){//每次更新的条数int maxNumber  50;ListUserVideoInfo data  new ListUserVideoInfo();while (true){if (data  null){data  new ListUserVideoInfo();}try{                   if (!AddQueue.Any()  !UpdateQueue.Any()){System.Threading.Thread.Sleep(500);}                   else{//先处理 需要更新的data.Clear();while (data.Count  maxNumber  AddQueue.Any()){if (!AddQueue.TryDequeue(out UserVideoInfo value)){                                continue;}//判断是否有重复对象if (data.Any(s  s.UserId  value.UserId  s.VideoId  value.VideoId)){var exsitItem  data.First(s  s.UserId  value.UserId  s.VideoId  value.VideoId);exsitItem  value;}else{data.Add(value);}}if (data ! null  data.Any()){var ret  UserVideoProgressProxy.Add(data);}}}catch (Exception err){}}} 写在最后其实这种高IO的操作用sqlserver这种关系型数据库反而不好Nosql在这种简单高IO的情境下要很多改天可以改为redis试一试估计会比sqlserver要好很多。完●程序员修神之路--为什么我会了SOA你们还要逼我学微服务●程序员过关斩将--数据库的乐观锁和悲观锁并非真实的锁●程序员修神之路--设计一套RPC框架并非易事●程序员过关斩将--要想获取我的用户信息就得按照规矩来●程序员过关斩将--更加优雅的Token认证方式JWT●程序员过关斩将--cookie和session的关系其实很简单●程序员修神之路--用NOSql给高并发系统加速●程序员修神之路--高并发系统设计负载均衡架构●程序员过关斩将--你为什么还在用存储过程●程序员修神之路--问世间异步为何物●程序员修神之路--提高网站的吞吐长按添加菜菜好友关注后回复“大礼包”和“福利”领取惊喜点亮在看你最好看
http://www.yutouwan.com/news/419989/

相关文章:

  • 网站图片用什么做建设银行跨行转账网站
  • 网站建设项目心得体会邢台视频优化排名
  • 东莞网站制作十强绵阳网站建设100jv
  • 网站流程图制作软件注册自己的网站需要多少钱
  • 网站建设公司能赚钱吗岳麓区营销型网站建设定制
  • 深圳网站建设seo优化wordpress开源可视化编辑
  • wordpress百度站内搜索优化设计
  • 网站商城建设合同免费下载微信社群营销怎么做
  • 长沙市住房与城乡建设厅网站杨凌做网站的公司
  • iis能建设网站吗python小程序代码
  • 做单页面网站营销策划公司
  • 长沙seo网站排名网页设置背景颜色
  • 有关企业电子网站建设论文网站程序和seo的关系
  • 手机网站制作时应该注意的问题营销型网站建设-深圳信科
  • 长春建筑网站东莞新感染一例阳性
  • 成品网站nike源码免费深圳网站建设网站设计软文推广
  • 易语言可以做网站么甘南北京网站建设
  • 房地产交易网站google本地搜索
  • 河南网站平台建设公司it培训机构招生
  • 南宁网站建设技术支持合肥在线设计
  • 图书馆网站建设工作企业网站的设计论文
  • 在线拍卖网站源码静态网站数据库
  • 查询企业信息的网站企业宣传册范例
  • 做绿色软件的网站知乎做金融平台网站需要多少钱
  • 怎样做同城配送网站中国城乡建设网
  • 郑州网站建设小程序固戍网站建设
  • 什么是搜索引擎优化?广州市口碑seo推广外包
  • 东莞网站建设功能做网站的机构
  • 腾讯云域名如何建设网站花蝴蝶免费视频直播高清版
  • 哪个网站diy做宝宝衣服商城网站建设所必备的四大功能是哪些