校六后台架构文档
经过4个月的开发终于校六成功上线,现在把后台架构的设计文档分享出来。校六后台架构主要实现的目标是集群可扩展,高可用性,能支撑高并发的。
校六是一款基于校园BBS的移动社交APP,致力于打造全球高校互联互助的社区平台,把相同兴趣爱好者聚在一起,提供本地化资讯。
目前校六后台有14台服务器支持。分别是图片存储服务器TFS,Mysql,Redis,ZK,ngnix,图片访问服务器Tengine,任务服务器,Glassfish。
Nginx:反向代理服务器通过IP分流策略对后台应用服务器进行分流负载
Glassfish:应用服务主要处理业务逻辑
ZK:主要有主备节点防止单点故障,实现EHcache内部缓存数据的同步。
Mysql:数据存储,实现主从读写分离。并且有相应的备份节点。
任务服务器:处理系统中的所有定时任务,并且通过ZK同步数据。
TFS:图片存储
Tengine:图片切割和访问服务器
这14台的部署情况如下图:
主要流程是:
异常处理:
数据库节点都是有备份节点一旦监控程序无法范围节点的时候自动会切换到备份节点访问达到高可用性。