高并发
文章平均质量分 67
圆脸娃
输赢不重要,超神才是王道
展开
-
谈谈秒杀场景
一直对秒杀场景很感兴趣,无奈经验确实一般,最近看了两篇文章,现在做个学习笔记,这里贴出文章链接,欢迎大家共同学习58到家沈剑的http://mp.weixin.qq.com/s/5aMN9SqaWa57rYGgtdAF_A 还有一篇http://www.cnblogs.com/billyxp/p/3701124.html 以下图来做说明秒杀的原则其实就是“削峰填谷”原创 2017-02-24 15:44:33 · 1687 阅读 · 0 评论 -
ThreadPoolExecutor使用实例
使用场景:需要同时创建多个线程去访问某一接口,并将返回数据进行组装1. 创建ThreadPoolExecutor,切记创建在类的方法之外,这样就不会调用一次方法,创建一个ThreadPoolExecutorprivate final static ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 30, 2000, TimeUnit....原创 2018-05-31 16:25:01 · 7687 阅读 · 1 评论 -
Guava小工具之Interners
大家都知道,String是final的,每次对它的操作都会产生新的String,这很大程度上是安全性的考虑,但是产生大量的String也是会有一些问题的,1.大量的String会对gc产生影响;2.两次 new String(“aa”)操作,产生的String不一样,如果用这两个去做synchronized(String)操作就达不到想要的效果,因为synchronized必须是对同一个对象...原创 2018-07-28 15:21:10 · 6777 阅读 · 2 评论 -
mysql事务隔离级别另类解释
MySQL事务隔离级别老生常谈,老是理解不到位,今天以特定的角度理解一下1.前提:MySQL为了多用户同时操作数据时避免相互干扰所以产生了事物的隔离级别2.有这么几种:read-uncommitted(读未提交) 、read-committed(读已提交)、read-repeated(可重复读)、serializable(串读)我们这么理解:将前三种种拆成两部分,每一部分表示一个事...原创 2018-11-22 20:32:25 · 300 阅读 · 1 评论 -
jdbc流stream读取超大数据
这几天在做分库分表,涉及到数据迁移,然后设计的方案是使用mybatis将数据分批读取出来,每批大概40--50万条数据,然后将查询来的数据再insert进去,发现这个效率很低,程序有卡顿,而且客户端很容易OOM。找了一下原因就是jdbc默认的读取数据的时候,会将要查询的数据一次性读到内存中,再通过resultSet循环读取出来,这样子40--50万条数据很容易就撑爆内存,然后调研了下发现,其实...原创 2019-04-03 16:44:40 · 6797 阅读 · 3 评论