摘要: 为何重造轮子 半年前写了一个注解驱动的缓存,最近提交到了 "github" 。缓存大量的被使用在应用中的多个地方,简单的使用方式就是代码先查询缓存中是否存在数据,如果不存在或者缓存过期再查询数据库,并将查询的结果缓存一段时间,缓存key通常是入参的对象或者入参对象的某些属性,有些时候还需要按照某种条 阅读全文
posted @ 2017-02-23 11:12 minotaursu 阅读(1173) 评论(0) 推荐(0) 编辑
摘要: 缓存一直是web2.0应用的性能核心,缓存大幅提高了应用QPS,减少了数据库的压力,降低了RT,让应用能够飞起来。缓存具有易于上手,难于精通的特点,缓存失效的设计是整个缓存应用的难点,在某些复杂情况,不适合的缓存设计增加了系统出错的可能。下面对缓存使用的几种典型情况做下分析。 本地缓存 1. 用于缓 阅读全文
posted @ 2017-02-23 11:10 minotaursu 阅读(254) 评论(0) 推荐(0) 编辑
摘要: feed系统和火车票售卖系统是2个高访问高并发情况下具体很大挑战的系统。 在低访问,低并发的情况下feed系统会变的非常简单,数据模型和业务功能都比较容易设计和实现,主要的挑战就剩如何面对层出不穷的敏感词和花样百出的广告语。相比之下,火车票售卖系统在低并发时也很有趣,假设我是12306的架构师,我会 阅读全文
posted @ 2017-02-23 11:08 minotaursu 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 这算是工作以后第一次做年终总结。距离2011年末已经整整3年,距离毕业已经3.5年。毕业(前)后,一直过着随遇而安的生活,白天码代码,下班看书,动漫,电影,游戏。今年多了一个陪妹子的活动,实事求是的说陪妹子这个优先级太高抢占了不少资源。 过去的2011,2012,2013年就不说了,往事已矣。今年是 阅读全文
posted @ 2017-02-23 11:06 minotaursu 阅读(146) 评论(0) 推荐(0) 编辑
摘要: CAS 是什么 CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。在java.util.concurrent包中,CAS提供了一种不同于互斥锁,读写锁的乐观锁机制,CAS和volatile一起构成了整个concurrent包的基 阅读全文
posted @ 2017-02-23 11:03 minotaursu 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 包冲突 几乎上点规模的java系统就会遇到jar冲突,不负责任的讲排除依赖成了每次发布上线前必做的工作。虽然问题的本质都是jar冲突,但是表现上却有很多不同,从NoSuchMethodError,ClassNotFoundException到field找不到,作用域错误;并且触发冲突条件也不相同,最 阅读全文
posted @ 2017-02-23 11:02 minotaursu 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 在jdk5中,新增了Lock接口来提供一种比synchronized更灵活的锁机制。 ReentrantLock ReentrantLock是被最广泛使用来替代synchronized的Lock接口实现,ReentrantLock的代码使用非常简单,只要记得将unlock写在finally方法中就可 阅读全文
posted @ 2017-02-23 11:00 minotaursu 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 在oracle停止对jdk6更新,jdk8发布之后,公司终于要把生产环境更新到jdk7,下面列一下jdk7,8的可能需要关注的新特性。 jdk7 G1垃圾回收 fork join框架 二进制变量 Switch支持String类型 try with resource 简化泛型 catch多个异常 In 阅读全文
posted @ 2017-02-23 10:58 minotaursu 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 最近看了一段涉及到事务处理的代码,正好去年做过的一个项目也有强一致性的要求,当时做过比较长时间的调研,决定把学习到的知识都总结一遍加深记忆,也方便后续遇到事务处理问题时寻找解决方案。 其实大多数互联网应用对事务性要求都不高,更多的挑战在于更好的性能和更高的可扩展性,只有少数涉及到账户和交易的系统才对 阅读全文
posted @ 2017-02-23 10:29 minotaursu 阅读(659) 评论(0) 推荐(0) 编辑
摘要: try 回首3年前的7月,我背着一个硕大的包,拎着满满的行李箱走下飞机来到杭州,在一个阳光明媚的有些刺眼,天气闷热难耐的日子,正式告别了学校,入职阿里巴巴广告应用团队,开始了人生中的第一份正式工作。三年后的7月,我在一个天气清爽的日子写下这段文字,决定告别熟悉的广告业务,加入了一个新的业务团队。 在 阅读全文
posted @ 2017-02-23 10:23 minotaursu 阅读(146) 评论(0) 推荐(0) 编辑