摘要: 如今的系统多不是孤军奋战,在多结点会话共享管理方面有着各自的解决办法,比如Session粘连,基于Web容器的各种处理等或者类似本文说的完全接管Web容器的Session管理,只是做法不尽相同。 而本文说的是Apache-Shiro+Zookeeper来解决多结点会话管理,Shiro一个优秀的权限框架,有着很好的扩展性,而Zookeeper更是让你激动不已的多功能分布式协调系统,在本例中就用它来做Shiro的会话持久容器! 在有过Shiro和Zookeeper开发后这一切都非常容易理解,实现过程如下: 用到的框架技术: Spring + Shiro + Zookeeper 阅读全文
posted @ 2013-07-23 22:10 土豆的奥特之父 阅读(2469) 评论(0) 推荐(0) 编辑
摘要: 自动集成有很多种方案,本例用到的工具是Jenkins(前身Hudson)+Gradle+Jetty,关于Gradle可参考上一篇,Gradle常见问题。 本例项目名称: WAP Jetty 安装Jenkins 本例用的是最新版Jetty9,在安全上做了升级,直接放在webapps目录部署不能成功,需要在webapps目录下添加文件jenkins.xml,内容如下: 阅读全文
posted @ 2013-07-10 21:42 土豆的奥特之父 阅读(5414) 评论(0) 推荐(0) 编辑
摘要: Gradle借助Groovy语言作为其配置脚本,使得Gradle变的十分强大,几乎是无所不能,我们在掌控这个强大且功能繁多的工具时也比较困难和凌乱,因此本文记录一些使用过程常见的配置,以备不时之需! Gradle如何包含文件 apply from: "./libraries.gradle" 如何指定build输出目录和版本号 buildDir = "target" version = '1.0' 阅读全文
posted @ 2013-07-06 17:54 土豆的奥特之父 阅读(6883) 评论(1) 推荐(2) 编辑
摘要: 异常,异常 我们一定要捕获一切该死的异常,宁可错杀一千也不能放过一个! 产品上线后的异常更要命,一定要屏蔽错误内容,以免暴露敏感信息! 在用Spring MVC开发WEB应用时捕获全局异常的方法基本有两种, WEB.XML,就是指定error-code和page到指定地址,这也是最传统和常见的做法 用Spring的全局异常捕获功能,这种相对可操作性更强一些,可根据自己的需要做一后善后处理,比如日志记录等。 SO,本文列出Spring-MVC做WEB开发时常用全局异常捕获的几种解决方案抛砖引玉 互相没有依赖,每个都可单独使用! 阅读全文
posted @ 2013-06-30 13:41 土豆的奥特之父 阅读(16253) 评论(0) 推荐(2) 编辑
摘要: 业务需求: 需求很简单,就是把多个系统的日志数据统一存储到Hbase数据库中,方便统一查看和监控。 解决思路: 写针对Hbase存储的Log4j Appender,有一个简单的日志储存策略,把Log4j的存储和Hbase的存储分开进行,当到达一定量的时候批量写入Hbase。 Log4j的日志暂时存到一个队列,启动一个计划任务定时检查是否到达指定的量级,到达后批量写入Hbase将队列清空。 带来一个问题是在Log4j最后一次的数据可能未达到量级程序关闭而丢失,所以如果日志非常重要的话请同时开启文件存储! 阅读全文
posted @ 2013-06-22 17:07 土豆的奥特之父 阅读(1736) 评论(0) 推荐(0) 编辑