别说话,先瞅图,再看我~
这是真实上线环境的部署图,且听我一步步分析
第一步:
keepalived中内嵌了lvs, 本来我们采用的是nginx来做负载,但是在压测的过程中发现,采用nginx,cpu飚的很高,所以采用了lvs; keepalived中内嵌了lvs,所以只需要安装keepalived, 同时需要放一个shell脚本,绑定了对应的虚拟ip; 同时lvs调度服务器,也实现了高可用,当一个lvs服务器宕机时,可以自动切换到另一台lvs服务器;
第二步:
前端采用angular4,前端工程化;前端也同样采用jenkins来build. 前端build之后,都是静态文件,我们的脚本是直接把build的内容,替换了原本的内容,这样就会有一个问题出现, 不管前端内部有什么错误,jenkins在构建的时候,有些错误,是看不出来的. 所以解决办法, 用nginx把刚构建好的静态文件映射出去,写一个脚本去访问刚刚构建好的内容, 可以访问通,就证明构建的是没有问题的, 就去替换测试环境下的文件. 访问不通,发邮件通知;
前端部署了两份,用nginx来代理静态文件,可以正常访问前端.写了一段shell脚本,绑定了虚拟ip, 可以直接把数据返回给客户端.
具体信息走向,看下图
第三步,关于nginx和keepalived的,请看我这篇博客: nginx+keepalived从入门到使用
第四步: nginx配置了不同的web.实现了web端的负载均衡,后利用dubbo,实现了service端的负载均衡. 关于dubbo,请看这篇博客:[dubbo]浅谈dubbo-架构解析
第五步:项目中使用到了redis. 关于redis的系列博客,请看这里: http://blog.csdn.net/column/details/13011.html ,且在不断完善中.关于cachecloud就是利用这个工具来检测redis服务器,同时可以实现数据迁移功能.
第六步:关于mycat.这里最初的设计是这样的:
但是由于内部原因,所以就变成了最上面单点mycat了.不过后面用户量增大,我们还是会启用这个图的~
第七步:关于mysql,实现了主从复制和定时备份;原理图奉上!
第八步:关于fastdfs,由于学校的服务器资源有限,所以就这样了
想期待更加完善内容吗, 我们下周见