Eclipse使用Maven搭建Spring+Struts2+Hibernate工程

引子

为了熟悉Spring+Struts2+Hibernate工程(SSH2)各个框架的配置,一直想自己手动搭个SSH2。但每次一想到那么多jar包依赖,总提不起勇气,相信这也是很多刚学习JavaWeb的朋友所困扰的问题。对于Maven真是久仰大名,最近拜读了许晓斌前辈《Maven实战》这本书,真是有种相见恨晚的感觉。总之,Maven为我们建立了一套标准,并提供中央仓库让我们能在线获取第三方jar包资源,只要我们遵循这个标准,构建将变得如此轻松。使用Maven构建的最佳实践是使用命令行,但对于Java开发人员,Eclipse等IDE工具虽然在构建上具有先天不足,但在编码上确实能大大提高效率。幸运的是,Eclipse现在已经集成m2eclipse插件,提供Maven工程创建和管理。那就现学现卖吧~就让我们一起在Eclipse下用Maven搭建一个SSH2工程示例。

给Octopress每篇博客添加版权信息

引子

相信大多数人开博客的目的在于分享,在分享的过程中发现问题,共同进步。但是自己辛辛苦苦码字得到的一篇文章,还是希望能够打上自己的标签,这就涉及到如何给自己博客添加版权信息的问题。其实,Octopress高度模块化的设计理念,让我们很容易对自己的博客进行定制。我们要做的就是在响应模块,添加版权信息即可。

Tomcat集群Session共享的轻量级解决方案Memcached

引子

Session是什么

用户访问服务器资源主要分成两类,一类是无状态访问,例如请求一张图片。另一类是有状态访问,这种情况下,服务器需要记录追踪用户状态,并根据用户所处状态做出不同响应,典型的例子是购物车。Session的作用就是在Web服务器上保持用户的状态信息。

使用Apache Benchmark测试Web服务器性能

引子

当Web应用正式上线之前,对Web服务器性能的预估是必不可少的。为了让运维人员对服务器的性能瓶颈有基本预估,需要对服务器进行压力测试。
工欲善其事,必先利其器。Apache Benchmark(以下简称AB)作为Apache旗下的Http Server性能评测工具,使用方法非常简单,并且在高并发的情况下并不会占用太多系统资源。此外,AB可以直接在Web服务器本地发起测试请求。这点至关重要,因为我们希望测试的是服务器处理时间,而不包含数据的网络传输时间以及用户PC本地的计算时间。

使用Nginx反向代理Tomcat并实现负载均衡

引子

随着Web应用所面对的用户群不断壮大,很快就会出现Tomcat的性能瓶颈问题。
此时面临着两种方案选择:
1.升级主机硬件配置;
2.搭建Tomcat集群。
如果选择方案1,显然将面临高成本问题。面对类似问题,通常是采取方案2的做法。单机运行Tomcat所需要的服务器硬件配置要求并不高,更重要的是可以根据需求持续增加集群规模,以达到更高的性能要求。这种情况下,方案1是不可取的,也是无法办到的。
既然需要搭建Tomcat集群,那么就需要专门的工具负责调度,Nginx就是这类工具的一种。Nginx是一款高性能的HTTP和反向代理服务器。字面上理解这句话有两层含义:
1.Nginx是一个Web服务器,在这点上和Tomcat没有任何区别;
2.Nginx还具有反向代理功能,Web服务器集群就是在此功能基础上实现的。

Linux安装Tomcat并配置多实例

引子

当考虑部署JavaWeb项目时,选择Linux服务器是大多数人的选择。Web应用必须在Web容器中运行,目前对于Web容器的选择有很多:Apache、Tomcat、IIS、Nginx和GWS等。其中Tomcat可以说是为JavaWeb应用量身定做的Web容器,又因为其轻巧并且功能强大,往往是中小型项目最好的选择。如果运用代理服务器做Tomcat集群,甚至能轻松搭建出具有高并发性能的大型Web应用。

解决Octopress提交博客异常

引子

今天在Octopress进行博客提交时,出现错误:

To git@github.com:aaronchansunny/aaronchansunny.github.com.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:aaronchansunny/aaronchansunny.github.com.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

从Git字面提示来看,应该是远程仓库和本地数据版本不一致引起的。那么,解决的方法就是让本地数据同步,因此pull远程数据merge后应该能解决问题。