别说话,先瞅图,再看我~

[ITOO]拓扑图解析

这是真实上线环境的部署图,且听我一步步分析

第一步: 
keepalived中内嵌了lvs, 本来我们采用的是nginx来做负载,但是在压测的过程中发现,采用nginx,cpu飚的很高,所以采用了lvs; keepalived中内嵌了lvs,所以只需要安装keepalived, 同时需要放一个shell脚本,绑定了对应的虚拟ip; 同时lvs调度服务器,也实现了高可用,当一个lvs服务器宕机时,可以自动切换到另一台lvs服务器;

第二步:
前端采用angular4,前端工程化;前端也同样采用jenkins来build. 前端build之后,都是静态文件,我们的脚本是直接把build的内容,替换了原本的内容,这样就会有一个问题出现, 不管前端内部有什么错误,jenkins在构建的时候,有些错误,是看不出来的. 所以解决办法, 用nginx把刚构建好的静态文件映射出去,写一个脚本去访问刚刚构建好的内容, 可以访问通,就证明构建的是没有问题的, 就去替换测试环境下的文件. 访问不通,发邮件通知;


前端部署了两份,用nginx来代理静态文件,可以正常访问前端.写了一段shell脚本,绑定了虚拟ip, 可以直接把数据返回给客户端. 
具体信息走向,看下图

[ITOO]拓扑图解析

第三步,关于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.这里最初的设计是这样的: 

[ITOO]拓扑图解析

但是由于内部原因,所以就变成了最上面单点mycat了.不过后面用户量增大,我们还是会启用这个图的~

第七步:关于mysql,实现了主从复制和定时备份;原理图奉上!

[ITOO]拓扑图解析

第八步:关于fastdfs,由于学校的服务器资源有限,所以就这样了

[ITOO]拓扑图解析

想期待更加完善内容吗, 我们下周见

相关文章:

  • 2022-02-22
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2021-11-10
  • 2021-12-03
猜你喜欢
  • 2022-12-23
  • 2021-06-18
  • 2022-12-23
  • 2021-11-17
  • 2021-06-10
  • 2021-12-03
相关资源
相似解决方案