自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 状态机模式下的领域模型

当对象的行为取决于它的状态,并且必须在运行时判断状态,做对应操作时,适合使用状态模式为对象设计状态机。以领域模型为例,为领域模型增加状态位图,并提供注册合法状态签转,判断状态签转是否合法的能力。为程序运行时操作提供判断依据。示例代码://领域模型public class DomainModel extends StateGraph {    /** 状态位图间隔符 */ 

2015-09-30 16:21:00 5821

原创 TOP K+LRU缓存刷新

本地缓存机制常被用来存储系统中变化频率不高的数据,常见的变化频率不高数据有:比如商品配置,可能商家的商品描述信息基本不变化,价格变化也不是很频繁,那可以存在缓存里减少访问数据库。又比如某类计算存在热数据,即某些问题的计算入参在短时间内频繁重,则可以把计算结果缓存起来。设计了类似LRU+TOP K的思路,针对新来的请求先查缓存,若没有实时计算,并把结果添加到缓存,之后对缓存按照请求次数和最近访问

2015-09-30 15:04:20 4142

原创 分库分表实践

1、为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,表中的数据量会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外一个DB所能承载的数据量、数据处理能力都会成为瓶颈。2、 分库分表实施策略分库分表有垂直切分和水平切分两种1)垂直切分即将表按照功能模块、关系密切程度划分,并部署到不同的库上。例如,商

2015-09-30 11:36:37 12056 1

原创 常用java代理方法

1、jdk proxyjdk proxy是java自带的,不需要依赖其他第三方jar包。但是它只能对接口做代理。示例代码:class ServiceProxy implements InvocationHandler {        /** proxy target service */        private Object target;        /

2015-09-30 10:54:59 5212

原创 spring事务隔离级别和传播行为

1、spring事务隔离级别事务隔离级别描述ISOLATION_DEFAULTRead Committed,提交后可见,可避免脏读,但无法避免不可重复读和幻读IOSLATION_READ_COMMITTEDRead Committed,提交后可见,可避免脏读,但无法避免不可重复读和幻读

2015-09-30 10:40:21 5582

原创 java应用fullgc时如何排查问题

Java程序经常 FullGC 时如何解决问题?查看jvm内存使用情况,看是否存在如下特征(jvm查看工具如jmap,jhat,jprofier,zprofier等):1)年老代是否被写满2)持久代是否被写满3)System.gc()是否在应用代码中被显式调用1、如何做垃圾回收?由于不同对象的生命周期不同,JVM垃圾回收通过分代策略来便提高回收效率。Java程序

2015-09-30 08:01:49 9858 1

原创 本地事务使用注意事项

为了确保本地多项数据操作的一致性,需要使用本地事务,本地事务的使用有一些需要注意的点:示例代码如下:/**     * 执行退款请求     *      * @param request 请求参数     * @return 服务处理结果     */    private Result processRefundRequest(final Request req

2015-09-29 11:20:27 8377 1

原创 工厂模式实现仓储模版

系统内部存在多种单据时仓储层必然要实现很多XXDAO,XXDO之类的,用工厂方法将所有的数据层接口统一封装起来,可以让仓储层代码更具表达力,让使用仓储层的代码更简洁清晰。仓储服务接口,对外暴漏基本增删改查方法。public interface OrderRepository {    /**     * insert order      *      *

2015-09-29 10:44:22 4885

原创 幂等策略-尝试插入

系统对外提供的服务应该满足幂等特性,同一次请求多次处理得到的结果应该相同。介绍一种简单的幂等策略:1、请求到来时根据幂等关键字构造幂等记录,幂等关键字在数据表中应该满足唯一约束2、尝试插入幂等记录3、插入失败时,根据幂等关键字捞取记录,若已存在则将已存在记录的状态返回,若不存在则抛异常出去等待下次请求。/**     * try insert idempotent

2015-09-29 09:55:30 7171

原创 java周期调度几种实现

写代码的时候有些任务需要做周期处理,例如每天9点解析文件并落地到数据库。这时候就需要选择合适的任务调度策略。以下是java里常用的几个任务调度方法:1、java.util.Timer, java.util.TimerTasktimer启动一个异步线程执行任务,周期执行任务策略对应方法scheduleAtFixedRate(TimerTask task, long delay, long

2015-09-28 21:21:35 7748

原创 统计多台服务器日志

Q:当某应用部署了多台服务器时,一次请求可能被路由到其中任意一台做处理,如何通过日志查询一次请求的处理结果?A:每台服务器都去找找总能找到吧。。。ok,思路是对的,但是人工去操作好麻烦,写个shell脚本跑一下。1、创建一个应用服务器ip列表文件prodIpList,如下    10.174.88.199  10.174.88.172、创建shell脚本chec

2015-09-28 21:19:14 8683

原创 平时用到的日志分析命令

cat -n显示行号more Enter 显示下一行Space 显示下一页F 显示下一屏B 显示上一屏tail-f 持续显示-n 显示文件最后n行head-n 显示文件开始n行sort-r 逆序排序-n 按照数字排序-k 指定派序列cut -fn -d "w" 根据w分割,选取第n列wc-l 统计行

2015-09-28 21:11:48 2643

原创 平时用到的eclipse快捷键

平时用到的eclipse快捷键,写代码再也不用鼠标啦。。。编辑Ctrl+1 快速修复(显示待修复问题的解决方案,比如import类、try catch包围等)Ctrl+Shift+F 格式化当前代码Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以去除冗余导入)Ctrl+Y 重做(与撤销Ctrl+Z相反)Alt+/ 内容辅助(

2015-09-28 20:59:47 2754

空空如也

空空如也

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

TA关注的人

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