JeeSite 是一个企业信息化开发基础平台,Java EE(J2EE)快速开发框架,使用经典技术组合(Spring、Spring MVC、Apache Shiro、MyBatis、Bootstrap UI),包括核心模块如:组织机构、角色用户、权限授权、数据权限、内容管理、工作流等。
基于MyBatis的数据库切分框架,可实现数据的水平切分和垂直切分。 http://www.makersoft.org
这是我的个人毕业论文项目,旨在解决有限资源条件下的资源利用问题,系统架构追求“高可用”,“大并发”,“易扩展”的特性,即能满足海量数据请求和瞬时或短时高并发请求;能在部分服务宕机或阻塞时不会影响系统功能并能实现服务的快速切换,能满足根据业务需求实时动态扩/缩容的需求。系统采用了阿里巴巴的分布式服务框架DUBBO,通过DUBBO提供高性能的RPC远程服务调用。在技术上,系统在表示层使用了springMVC,通过与spring的无缝集成减少开发工作量,同时在前端采用handlerbars框架,把大量的页面解析和渲染的工作转移到客户浏览器上进行,极大地减少服务器的压力。此外,系统还使用了Apache Shiro,通过Shiro进项用户身份认证和权限管理,进而保证整个系统的安全性问题。同时,系统在逻辑层通过AOP实现了事物控制,日志记录和安全控制;在持久层,为了实现数据的高速存取,系统使用了redis来保存热点数据,防止海量请求击穿mysql数据库。并且,系统通过mysql主从集群来实现读写分离,并在此基础上使用基于阿里开源的Cobar产品而研发的数据库分库分表中间件Mycat进一步减少数据库的压力,提高系统性能,提升数据安全性。在架构上,为了减少数据抖动,保证系统的“高可用”,“大并发”,“易扩展”,系统在前端采用tomcat集群,使用redis实现tomcat集群的session共享,在SOA服务化治理方案的核心,系统使用了阿里推荐的ZOOKEEPER集群作为服务的注册中心来保证系统的高可用特性。与此同时,为了应对海量的数据,系统使用了redis集群和mycat集群和mysql集群,并通过canal来保证mysql数据库和NOSQL数据库间的数据一致性。最后,系统还采用了开源的轻量级分布式文件系统FastDFS对系统中的海量文件进行管理,解决了大容量存储和均衡负载的问题。在整个系统中,我们一共使用了tomcat集群,zookeeper集群,redis集群,mycat集群,mysql集群,FastDFS集群,HAPROXY集群这几个集群,通过集群的综合运用实现系统的负载均衡并保证了系统的“高可用”,“大并发”,“易扩展”的特性。