ActiveMQ队列消息积压问题调研

公司运维同事针对ActiveMQ提出了两个问题,其中一个是“队列长时间无人监听时,自动删除该队列”。 调研提出了三种方案。这里是相关记录和说明。

开发 

自定义SpringMVC拦截器中HandlerMethod类型转换问题调研

在将a模块迁移到spring boot项目下、使用embeded tomcat启动项目后,在调用RESTfule接口时,模块中声明的一个SpringMVC拦截器"cn.xxx.thread.common.web.speedctrlforuser.SpeedctrlForUserInterceptor"中抛出了ClassCastException。但是使用外置Tomcat启动就没有这个问题。在逐行debug后发现是spring boot缺失一项配置导致了这个问题。

开发 

写给大家看的设计书——读后笔记

 《写给大家看的设计书》介绍了设计的四个基本原则:亲密性、对齐、重复、对比。作为一个软件“设计师”,我也来聊聊读过这本书之后,我对这四个原则的一点理解。

评论 

如何将一个操作“绑定到数据库事务上”

在开发中,我们常常会遇到(或者需要)把一些操作“绑定到数据库事务上”。也就是说,如果数据库事务成功提交,则执行这个操作;如果数据库事务回滚,则不执行这个操作(或者执行另一个操作)。

开发 

集群环境下定时任务调度问题与方案探讨

从改造工作量、可用性、负载均衡、资源利用等方面,简单介绍了几种集群环境下定时任务调度的方案。

设计 

业务系统中的开与闭——分发模式

这里分享一个我在业务系统设计过程中常用的一个“复合模式”,用作一个在业务系统设计中运用“开闭原则”的例子。

设计 

数据与行为——状态模式与策略模式

我在另一篇博客里声称:做技术的思路是优先“怎么用”、而后再“是什么”。然而这里,我却想讨论一下状态模式与策略模式“是什么”,以及它们之间的区别。

设计 

状态与策略——审批操作的两种方案

审批操作是ERP或OA系统中必不可少的功能之一。这里介绍两种我设计的用于审批操作的方案,并借此就“状态模式”与“策略模式”提出一点自己的理解。

设计 

不做需求复印机——批量操作流程设计

相信每个技术人员都不会甘心做“需求复印机”。 需求复印机,有两种简单的方式。一种是在代码/模块/系统的结构上下功夫,例如前面几篇设计方案(审批、分发等)。另一种则是直接对业务流程开刀,例如这篇文章要举的例子。

设计 

尘归尘,土归土——业务归业务,技术归技术

随着分布式、微服务的火爆,跨系统的服务调用也变得常见起来。这使得我们在线上追查问题的时候,常常要查阅多个系统的日志。

设计