在之前的博客< EasyDarwin幼教云视频平台在幼教平台领域大放异彩!>中我们也介绍到,EasyCMS+EasyDarwin+redis形成的EasyDarwin云平台方案,在幼教平台领域中稳定运营,收到了用户的良好口碑: 随着幼儿园平台用户和接入幼儿园的数量不断增加,EasyCMS的redis操作也越来越频繁,我们在运维中发现EasyCMS的cpu占用非常高,通过线程分析,发现大家都在等待一个redis操作对象,redis操作对象锁造成了资源竞争,于是,我们决定采用redis操作池,我们…
一.IM 系统的高并发场景 IM 系统中,高并发多见于直播互动场景.比如直播间,在直播过程中,观众会给主播打赏.送礼.发送弹幕等,尤其是明星直播间,几十万.上百万人的规模一点也不稀奇.近期随着武汉新型肺炎疫情的蔓延,很多教育机构也提供了"停课不停学"的在线直播教学服务,也是一大直播互动场景. 直播互动场景具有这样的特点:流量峰值具有"短时间快速聚集"的突发性.流量随着开播和结束而剧烈波动,因而会带来很大的高并发压力. 二.IM 系统的高并发解决方案 1.网关全量转发…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx里SystemReset不复位的GPR寄存器的小妙用. 我们知道稍大规模的项目代码设计一般都是多人协作完成的,在项目开始阶段的总体设计时,项目组长通常会将代码按功能进行划分,每个功能块代码之间尽量做到耦合度低.互不依赖.互不影响,这样各功能可以独立进行单元测试,项目得以并行开发,后期通过事先定义好的接口/协议进行功能块集成即可. 但上述方法在嵌入式软件项目里有时候会遇到功能块集成后互相干扰的问题,因为嵌入式项目很…
在基于Vue的工作流项目模块中,我们在查看表单明细的时候,需要包含公用表单信息,特定表单信息两部分内容.前者表单数据可以统一呈现,而后者则是不同业务的表单数据不同.为了实现更好的维护性,把它们分开作为两部分处理,但是页面入口设计为统一的呈现页面,这里介绍使用动态组件的方式统一呈现不同表单数据的处理方式. 1.表单数据分类 刚才提到,表单数据按内容区分分为了两类:通用业务表单.特定业务表单 如果我们要把两者统一在一个通用页面中进行展示,就需要根据不同表单名称,动态加载属于特定表单的展示模块,也就是…
一.方案介绍 1.1.方案背景 在2016年10月25日至28日的安博会上,我们看到了不少的幼教平台厂商,我们注意到大部分的幼教平台,为了追求极佳的用户体验,在微信或者APP端能够做到极快的打开速度,具备秒开画面的功能,采用的是摄像机长期推流,公网的HLS流媒体服务器长期切片的方案,在跟有一部分厂家进行交流的过程中发现,他们对其带宽资源非常自信,他们基本都是租用百兆阿里云主机.百兆腾讯云主机等云主机.这里,我们不得不深入探讨一下长期不间断推送和进行HLS切片会产生的几个问题: 从终端视频采集设备…
当今,视频直播技术和实时音视频技术已经是很多行业必备,典型的应用场景有教育直播.远程视频会议.互联网娱乐等.在移动端发起直播,其画面源的种类是十分有限的,无非是取摄像头.截屏等.PC端由于其系统资源充足,应用程序丰富,画面源种类多样,更适合作为主播程序运行的平台.在实际应用中,经常有一些场景是需要将不同的画面源合在一起,然后推流出去的.本文粗浅介绍一些网易云信在开发过程中总结的一些获取不同画面源的画面并将其合并的方法. 相关阅读推荐 <如何快速实现移动端短视频功能?> <视频私有云实战:…
po模型设计思想 Page Object 模式主要是将每个页面设计为一个class,其中包含页面中的需要测试的元素(按钮,输入框,标题等),这样在Selenium测试页面中可以通过调取页面类来获取页面元素,这样避免当页面元素id或者位置变化后,需要改测试代码.当元素ID变化时,只需要改测试页面Class中的页面属性即可.将页面定位与和业务分开,分离测试对象(元素对象)和测试脚本(用例脚本),提高可维护性. Page Object模式是一种自动化测试设计模式,将页面定位和业务操作分开,分离测试对象…
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我们介绍了2种网关配置信息更新的方法和扩展Mysql存储,本篇我们将介绍如何使用Redis来实现网关的所有缓存功能,用到的文档及源码将会在GitHub上开源,每篇的源代码我将用分支的方式管理,本篇使用的分支为course3. 附文档及源码下载地址:[https://github.com/jinyancao/CtrAuthPlatform/tree/course3] 一.缓存介绍及选型 网关的一个重要的功能就是缓存,可以对一些不常…
前言   Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用方式也很简单,可本人在工作中除此以外还用到第三种更方便灵活的分页方式,在这里一同分享给大家. 使用 主要分为SpringDataJPA分页.MyBatis分页.Hutools工具类分页几个部分 1.SpringDataJPA分页 1).引入依赖 <dependency> <groupId&g…
在了解了上面的gulp(一)(二)以后,我们就可以开始在项目中具体使用了,具体使用流程如下: 1. 创建一个project文件夹,然后里面首先创建一个src文件夹,里面放置开发要用到的文件夹: 2. 在project下打开git命令窗口(也可以windows自带的命令行): 3. 输入命令: npm install -g gulp --registry=https://registry.npm.taobao.org 实现全局安装gulp;( 只需要执行一次,如果已经执行过了,就不需要再去执行.G…