04 2018 档案

摘要:引言 在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别 定时任务有明确的触发时间,延时 阅读全文
posted @ 2018-04-30 23:25 孤独烟 阅读(14790) 评论(50) 推荐(60)
摘要:引言 自上一篇《 "自己动手实现牛逼的单例模式" 》问世之后,得到了不错的评价。于是博主在五一放弃出去游玩机会,赶制了这篇《自己动手循序渐进实现观察者模式》,依然还是一步一步推导出最终版的观察者模式。 观察者模式 定义: 在许多设计中,经常涉及多个对象都对一个特殊对象中的数据变化感兴趣,而且这多个对 阅读全文
posted @ 2018-04-29 19:13 孤独烟 阅读(2013) 评论(15) 推荐(10)
摘要:引言 其实写这篇文章之前,我犹豫了一下,毕竟单例大家都知道,写这么一篇文章会不会让人觉得老掉牙。后来想想,就当一种记录吧。先来一副漫画吧,如下图所示 ok,我们回顾下小灰的遭遇,上述漫画所提出的那些问题主要有以下三点: 1. 为什么静态内部类的单例模式是最推荐的? 2. 如何在反射的情况下保证单例? 阅读全文
posted @ 2018-04-25 20:42 孤独烟 阅读(4600) 评论(22) 推荐(12)
摘要:什么是缓存击穿 在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示 因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。 场景如下图所示: 我们正常人在登录首页的时候,都是根据u 阅读全文
posted @ 2018-04-23 22:39 孤独烟 阅读(12685) 评论(51) 推荐(44)
摘要:引言 本文利用java自带的socket编程实现了一个简单的静态资源服务器,可以响应静态资源。本文一共有两个版本的源码。第一个版本名为Server_v1,该版本实现了一个简单的socket的服务器,帮助读者回忆socket编程。第二个版本名为Server_v2,该版本是对第一版的改良,给出了改良思路 阅读全文
posted @ 2018-04-19 21:18 孤独烟 阅读(2340) 评论(12) 推荐(6)
摘要:引言 本文利用java自带的socket编程实现了一个简单的rpc调用框架,由两个工程组成分别名为battercake provider(服务提供者)、battercake consumer(服务调用者)。 设计思路如下: 1、在battercake provider中,写一个服务叫BatterCa 阅读全文
posted @ 2018-04-11 22:40 孤独烟 阅读(3043) 评论(8) 推荐(6)
摘要:引言 项目结构如下图所示,maven项目 1、JDK动态代理 先来一段jdk动态代理的demo, 首先创建一个接口,Person 然后写一个实现类PersonImpl 然后写个使用类PersonInvocationHandler 最后 再写个测试类 输出如下 接下里我们不使用JDK的API,自己实现 阅读全文
posted @ 2018-04-09 00:44 孤独烟 阅读(2686) 评论(20) 推荐(5)