架构之路
空山灵雨_tsj
多个企业级J2EE B/S架构application设计、开发工作,常用J2EE架构。
熟悉基于maven、maven model的web application架构、设计以及开发工作。
展开
-
Spring 基于注解的接口AOP实现——Mapper实例
Spring的AOP默认是基于实现做切面的,如果注解放到接口上,无法生效,比如Mapper层接口注解。可以通过MethodInterceptor、AbstractBeanFactoryPointcutAdvisor来实现。public XXXAdvisor extends AbstractBeanFactoryPointCutAdvisor{ @Override public Pointcut getPointcut(){ return new Annotation原创 2021-07-07 09:51:35 · 1368 阅读 · 0 评论 -
基于Eureka的分布式微服务优雅停机方案/平滑升级
[业务场景]运维在实操中,通过Eureka的Restfull API标记了某service状态为out_of_status。但是考虑到微服务可能存在执行中的线程,延迟通过kill -9 停止。整个过程中,发现因为Eureka心跳机制,service自动恢复成了UP状态。这就导致其它服务引用了维护中的Provider。他们希望可以寻找到一个比较平滑的升级模式。[思路]问题很直观:因为服务未实际下线,心跳机制自然会恢复为UP。Eureka也正是因为这种机制才能进行服务治理。那么就不能从Eu.原创 2021-04-28 12:47:31 · 982 阅读 · 3 评论 -
Quartz 框架搭建
本文参考了网络资料(均以超链接标注),对于其是否为原创,本文不付任何责任。Quartz 是比较常用的任务调度框架,关于基础使用请参考Documentation。本文主要就实际运用中涉及到的动态加载和集群配置做介绍。动态任务动态任务的核心思路是将XML配置转换为管理类统一管理。quartz-config.xml 如下 <bean id="schedulerBeanFact...原创 2018-09-04 19:39:45 · 452 阅读 · 0 评论 -
几种集中式管理框架比较
最近因为项目管理上的需要,调研集中式管理工具。百度Disconf、携程Apollo、阿里ACM ,三者都可以满足集中式配置,并提供监听,实时改变配置。关于3个框架的使用以及搭建请自行参考官方API文档,不再叙述。对比了3个框架的配置,如下。disconf 依赖比较多,比如zookeeper等都需要提供环境;apollo依赖较少,只有一个db。阿波罗在多环境配置时,需要搭建多个con...转载 2018-08-29 14:10:48 · 2369 阅读 · 0 评论 -
流水序号设计
[需求]订单附带一个序列号:序列号为当月第x单********************这个需求看似很简单,但随着系统复杂性以及并发量的增加,实现并不简单。探究几种场景。[无并发压力下单系统]这种场景最简单,也是最容易误导开发以此为基础进行模型设计。此种系统下,甚至可以采取数据库层面的查询、约束等进行序列号生成。如果考虑到DB IO效率低,可以考虑放在内存,只要维护好原创 2017-09-07 22:50:33 · 941 阅读 · 0 评论 -
ActiveMq Jmx消息提取
ActiveMq jmx 数据解析原创 2017-01-23 09:36:11 · 1761 阅读 · 2 评论 -
Active MQ Jmx监控
activemq jmx实践转载 2017-01-20 10:11:45 · 622 阅读 · 0 评论 -
【转】通过 File API 使用 JavaScript 读取文件
转载filereader的使用原创 2016-11-30 15:03:19 · 520 阅读 · 0 评论 -
log4j、logback汇总
log4j 参考 配置Log4j(很详细) 和 Log4j按级别输出到不同文件。主要是重写 DailyRollingFileAppender转载 2016-04-13 16:54:47 · 595 阅读 · 0 评论 -
Spring项目单元测试
Spring项目单元测试探讨。原创 2016-10-20 11:50:56 · 3530 阅读 · 0 评论 -
Maven重复类解决方案
Maven冲突解决方案转载 2016-11-08 08:27:59 · 5757 阅读 · 0 评论 -
(非原创)Mybatis和Spring data redis
采用spring data redis替换mybatis默认缓存转载 2016-10-27 10:30:59 · 1147 阅读 · 0 评论 -
基于Spring HandlerInterceptor和Google RateLimiter 的简单throttling
spring mvc throttling原创 2016-06-24 14:28:34 · 1663 阅读 · 0 评论 -
WebService
记录webservice 大文件上传解决方案转载 2016-05-24 08:11:58 · 664 阅读 · 0 评论 -
dubbo + assembly 整理
提供dubbo服务启动、停止管理平台。通过WAR项目管理dubbo服务原创 2015-11-13 16:39:55 · 3276 阅读 · 2 评论 -
SSO单点登录思路以及实现
单点登录的两种设计方案以及实现翻译 2015-12-31 16:05:28 · 828 阅读 · 0 评论 -
MyEclipse多Maven module导入问题以及思路分享
今天组内一个使用MyEclipse的同事碰到这样一个问题:导入maven module后,项目结构一直不能正常显示。我们的maven项目是通过maven source配置制定项目结构的,所以理论上不应该被IDE约束。其次,该同事反应并不是每个module(module有超过10个)都有这样的问题,删掉pom.xml中的maven插件或者dependency后,有时候会显示正常的目录。以上是原创 2015-10-26 15:58:09 · 3064 阅读 · 0 评论 -
avoid duplicate submission 结合spring-mvc的防重复提交
采用Annotation和Interceptor方式提供切面拦截,这个技术一直在用,仅是记录一下。注意此种方法只适用于页面支持刷新提交的流程,如果是打开静态页添加数据进行多次提交的,需要扩展处理token问题。首先提供一个自定义的注释 AvoidDuplicateSubmission。注释提供两个方法:needSaveToken() 和 needRemoveToken()。 从字面就可以...转载 2015-11-04 11:03:52 · 3361 阅读 · 0 评论