自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 论坛 (2)
  • 收藏
  • 关注

原创 阿里云直播、直播录制和点播

近来公司有个直播类的项目,让我调研下阿里云直播,花了3、4天调研结束后,做下笔记,一方面自己日后便于查看,另一方面与大家做个交流,有说的不正确的。欢迎指正。需求说明:本项目有三个媒体端,分别是app、微信和pc。下面分别讲述下三个媒体端的场景。 - app端是给讲师直播用的 - 微信端是给学员看直播用的 - pc端是给管理员用的下面介绍下阿里云的直播使用: 1.在app端需要推流到...

2018-03-08 11:16:48 6051 6

原创 大文件分片、并发上传,断点续传,秒传 第二弹

继上次大文件分块上传原理见:http://blog.csdn.net/haohao123nana/article/details/51279098,博主终于有时间来真正的代码实现它。关键部分前端用file.slice()分块前端用FileReader获取每一分块的md5值后端用MultipartFile接受分块文件后端用FileOutputStream拼装分块文件话不多说,直接上代码,我想

2017-01-23 12:01:25 21705 46

原创 redis分布式锁终极代码

博主还有个用于大学生学习英语的项目。其中有个场景是老师和学生不能并发操作的。此时就要使用互斥锁去解决这个问题。因为我们的项目是一个nginx反代5个springboot jar包,所以不能使用synchronized或者Lock。博主选用了redis分布式锁来解决这个问题。但是网上关于redis分布式锁的设计多种多样,纷繁复杂,令人眼花缭乱。最后在参考网站各个大神的资料还有自己压测后,得出了下面的代码。部署上线后,未发现有问题。下面是代码请大家参考指正。redis锁工具代码 :package c

2020-11-11 10:47:07 21

原创 shiro redis获取在线人数超过1W时,造成redis慢查询问题

博主有个springboot项目有个获取在线人数的需求,session使用的是shiro、redis分布式存储。一开始直接用了 Collection sessions = redisSessionDAO.getActiveSessions();这个方法内部是使用了redis命令中的keys *。keys *命令的原理是扫描整个redis里面所有的key,然后根据通配符模糊查找出来,所以他的时间复杂度是O(N)。在匹配key少的话是没问题的。超过1w的情况下,查询时间能达到10S。因为redis是单线程的,

2020-11-11 10:01:14 65

原创 记一次项目cpu100%情况解决过程

下午14:29分,运维突然告知,某项目CPU100%,赶紧找到运维开始排查问题一、通过top命令排查出占用线程,发现占用cpu的线程是GC程序见:https://www.cnblogs.com/maohuidong/p/9313729.html二、通过jstat命令查看内存状态,发现full gc达到150多次。此时仍然无法定位问题。三、通过查看异常时间段nginx日志,发现有个接口传的参数异常,日志如下"49.4.43.25"|"www.wqyunpan.c...

2020-06-11 17:03:53 229

转载 对象池模式

一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。优点复用池中对象,消除创建对象、回收对象 所产生的内存开销、cpu开销以及(若跨网络)产生的网络开销。常见的使用对象池有:在使用socket时(包括各种连接池)、线程、数据库连接池等。缺点现在Java的对象分配操作不比c语言的malloc调用慢, 对于轻中量级的对象, 分配/释放对象的开销可以忽略.

2020-05-27 15:39:08 142

转载 win10下面c语言环境搭建

发现学校使用的还是上古教材,用的是VC++ 6.0。 但是VC++6.0 并不是很适合新手开发(至于为什么这样说后面会给出原因。 所以还是写一下用传统的方法在win下写程序。毕竟重剑无锋大巧不工,打好基础才是最重要的。 而且学会一门语言并不是学习的目标,理解其编程思想才是重点,当你上手另一门同样范式的语言时,也会毫无压力。 开始吧。 首先,打开浏览器,随便打开一个搜索引擎,比如不用百度。 然后就是这个...

2020-05-16 08:50:58 646

转载 Mysql 之 IOPS、QPS、TPS相关问题总结

IOPS:(Input/Output operations Per Second,既每秒处理I/O的请求次数)IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成,这里提到磁盘读写能力,比如它每秒读100M,写50M.这个说明的是数据吞吐量,而IOPS指的则是每秒处理I/O的请求次数.详细展开来说请求次数就是读80M的文件是一次I/O请求,写1K的的数据也是一次I/O请求,那么IOPS的数值越高自然在一定时间内能接受的相应请求就越多,如果你在深入想一下也会发现这只是理论

2020-05-14 10:01:33 101

转载 Mysql 瓶颈优化

Mysql 瓶颈优化假设一个网站从最开始访问量很小做到日pv千万,我们来推测一下它的mysql服务器架构演变过程。1. 第一阶段网站访问量日pv量级在1w以下。单台机器跑web和db,不需要做架构层调优(比如,不需要增加memcached缓存)。此时,数据往往都是每日冷备份的,但有时候如果考虑数据安全性,会搭建一个mysql主从。2. 第二阶段网站访问量日pv达到几万。此时单台机器已经有...

2020-04-16 17:18:12 47

原创 禁用cookie情况下,前端传递当前登录人信息给shiro

有个springboot项目,登录和权限采用shiro管理。某天前端开发人员突然说小程序页面里面无法把cookie 传递给后端, 导致服务器获取登录人信息空指针。百度了一圈不知道怎么搞,最后请教了老大,算是解决了。下面把解决方案记下来前端用问号传参方式传递sessionid后端重写shiro获取sessionid方法原来的 shiro配置DefaultWebSessionManager...

2019-05-15 17:45:37 681 1

原创 优秀博客收藏(不定期更新)

一、java集合,彻头彻尾理解源码 书呆子Rico https://blog.csdn.net/justloveyou_/article/details/62893086二、设计模式 左潇龙 http://www.cnblogs.com/zuoxiaolong/p/pattern1.html三、spring cloud 纯洁的微笑 http://www.ityouknow.com/...

2018-08-24 15:59:18 234

转载 HTTP 1.1学习笔记

前言 由于HTTP 1自身的局限性,它不能很好的为用户提供性能良好的WEB服务。于1999年6月正式发布了HTTP1.1标准REC2616,它厘清了之前版本中很多有歧义的地方,而且还新增了很多重要的优化,如持久连接、分块编码传输、状态码扩充、增强的缓存机制、传输编码及请求管道等。本文是个人在学习《WEB性能权威指南》后,又查阅了一些文档资料写的一篇随笔,仅供参考和个人以后查阅。下面将对比http...

2018-07-18 15:40:17 281

原创 关于git中Pageant开机启动且自动关联秘钥

Pageant在git中主要负责和服务器端进行身份验证,但是我们每次在启动Pageant后都需要手动的加载秘钥文件,这其实是一个比较烦的过程,我们怎么能够使其自动的完成呢?一、Pageant开机启动(这部分是请教了东立才搞定的)首先打开win7的自启动文件夹,方式 win键->所有程序->启动->右键->打开 ,然后找到pageant.exe的位置,右键->创建快捷方式,目录中就多了一个pagean

2017-10-31 08:43:02 4686

原创 Linux命令操作

创建文件夹mkdir复制文件夹到另一个文件夹cp -r /home/application/apache-tomcat-8.0.33-2weima-8087/webapps/ /usr/backup/

2017-10-27 09:23:51 144

原创 公司遗留技术问题

公司遗留技术问题,有兴趣的可以共同探讨下1.即时通信功能(即时聊天), 例如K12项目中学生可以在观看同一视频时可发聊天消息,目前是前端找的插件实现的功能,信息不能保留。 2.网页缓存(前端调一次后端接口,产生一条sql语句,下次再请求相同的sql语句,直接从缓存中拿,不用请求数据库) 例如 对于网站经常被访问首页如何缓存,提高用户体验度。3.大文件上传,分块、断点续传使用什么技术实现4.网站站

2017-09-27 17:26:05 217

原创 大文件分块上传第三弹(分块并发上传)

继上次大文件分块上传原理第二弹见:http://blog.csdn.net/haohao123nana/article/details/54692669,有童靴说前端分片递归上传效率不高,我试了试前端并发上传。本地上传测试,700M的视频,用递归上传用了4分钟,并发上传用了3分钟,效果还不错后端文件跟第二弹的一样,前端html更改成并发上传分块了html<!DOCTYPE HTML><html>

2017-08-17 18:23:22 3838

原创 七牛云云端压缩测试

按照文档提示,直接上最终的代码import com.qiniu.common.QiniuException;import com.qiniu.common.Zone;import com.qiniu.processing.OperationManager;import com.qiniu.storage.Configuration;import com.qiniu.util.Auth;im

2017-04-20 08:27:55 1105

原创 维护前辈代码,痛并快乐着...

如何修改前辈代码中的bug大家新到一家公司时,很有可能要维护前辈写的代码,如果这个前辈比较吊,代码不会出现任何bug,那我们就皆大欢喜了。但是,如果比较坑,像1000行代码中只有1行注释…这个,你就准备过苦日子吧。喜大普奔的是,博主正好碰到这样的场景,心中一万个草泥马奔腾而过…。为了记住我踩过的坑,也为了避免大家踩坑,我记录一下心得,会不断完善的。尽量不要修改公共代码所谓公共代码,就是被其他代码

2017-04-03 10:10:02 768 2

转载 钱越花越有 越省越穷 中国的赚钱方式已经变了

[摘要]父辈一代给我们留下的省钱观念,会给后代留下很大的影响,甚至毁一生 , 穷三代!如何做好时间和金钱在生活中各项事务的分配比重,这是一个宏大的命题,也是我所知道的普通人获得更好生活的几乎唯一方式。爸妈!这样省钱毁一生   父辈一代给我们留下的省钱观念,会给后代留下很大的影响,甚至毁一生 , 穷三代!如何做好时间和金钱在生活中各项事务的分配比重,这是一个宏大的命题,也是我所知道的普通人获得更好生

2016-08-17 17:08:02 864

翻译 RabbitMQ java API中文翻译

java客户端api指导本指导覆盖了java客户端api,它不仅仅是一个教程,在不同的部分都是可用的。 此java客户端得到了下面三方的许可Apache Public License 2.0Mozilla Public LicenseGPL 2.0你可以通过查看javadoc文档来得到更多的信息。 此java客户端还附带一些命令行工具。 客户端api严格遵守AMQP-9-1协议的规范,

2016-06-27 12:42:25 6622

原创 阿里oss

最近两天没啥任务,把上个月调研的阿里oss的api封装了下,其中最重要的是文件上传,下面用阿里的一个图来表示下,好处自然是不言而喻,具体请看阿里oss官方文档从流程上,少了一步转发。从架构上来说,原来的上传都统一走网站服务器,上传量过大时,瓶颈在网站服务器,可能需要扩容网站服务器。采用表单上传后,上传都是直接从客户端发送到OSS。上传量过大时,压力都在OSS上,由OSS来保障服务质量。话不多说

2016-05-03 16:16:51 3619 2

原创 spring大文件分块上传原理解析

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-04-29 08:28:48 10456 2

转载 Spring MVC文件上传

Spring MVC为文件上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的。Spring使用Jakarta Commons FileUpload 技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。Spring MVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件的上

2016-04-28 17:04:06 913

翻译 关于fragment和Loaders

这部分内容实在是多,以后再写把,给个中文链接http://wiki.eoeandroid.com/Fragments

2015-07-15 10:18:38 491

翻译 android原理

android应用基础

2015-07-14 08:37:19 505

转载 android中task、activity、apk之间的关系图

2014-10-24 14:17:00 710

springboot大文件分片上传|大文件上传.rar

springboot 大文件上传,支持分片并发上传、断点续传、秒传,已经测试过1.2G的文件,最大支持理论无限制 博文链接:https://blog.csdn.net/haohao123nana/article/details/54692669

2020-11-12

DownloadService

service后台下载,在通知栏显示进度

2015-03-02

Effective.C

最近在读《Effective C++ 2/e》,不时被作者幽默的文字逗得发笑。可以这么说,这是我读过的最风趣的一本技术书。当然这也离不开侯捷大师精彩的翻译。如此轻松的翻下来,已经读完了全书的一半。当然,书中的内容都是基础性的C++内容,是每个C++程序员必须要掌握的知识。

2015-02-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除