栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

啄木鸟巡护系统架构演进过程

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

啄木鸟巡护系统架构演进过程

目录

单体应用

集群服务

内外网集群

微服务演进


  一个系统的架构是一个不断演进的过程,而不是一步到位过度设计。架构图分享地址:http://huatu.qianglihuifu.com/lct/#R3d07b99d3c31d68890eae3c7486e4c23

单体应用

单体应用阶段:web服务端功能和mobile移动端API接口都在同一个项目中进行部署,在App端使用频繁时段,会造成后端web管理界面打不开的情况,造成程序处于假死状态。

采用优化手段:JVM调优,Tomcat调优,数据库连接池优化,Nginx限流;但这些方法不能从根本上解决web端高峰时段正常使用。

集群服务

有了单体服务的糟糕体验之后,我们将原有代码进行了拆分作为两个独立的服务使用负载均衡模式来提升用户体验。

采用集群模式部署,就需要引入分布式解决方案,比如我们的本地缓存换成了Redis,另外还需要解决web后台的SESSION共享和移动端登录的Token存储管理,这些都可以通过Redis缓存服务得到解决。

Redis的四种常用模式:

1.单机

如果你的数据量很少,主要是承载高并发高性能的场景,比如你的缓存一般就几个G,单机足够了

2.主从

master节点挂了以后,redis就不能对外提供写服务了,因为剩下的slave不能成为master,下面增加哨兵目的就是提高redis高可用

3.主从+哨兵

replication,一个mater,多个slave,要几个slave跟你的要求的读吞吐量有关系,然后自己搭建一个sentinal集群,去保证redis主从架构的高可用性,就可以了

4.cluster集群

redis cluster,主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,那么建议就用redis cluster

  • 自动将数据进行分片,每个master上放一部分数据
  • 提供内置的高可用支持,部分master不可用时,还是可以继续工作的

注意:需要考虑解决Nginx和Redis单点故障问题。Nginx高可用可以使用多个Nginx冗余部署keepAlived故障转移等,Redis常用的方式是Sentinel哨兵模式。

内外网集群

 

内外网部署模式扩展了内网管理人员的热点数据共享,以方便内外即时查看巡护平台作业数据情况和人员在线情况。

注意:Redis和Mysql数据库是做了端口映射的,可以认为这部分数据内网是可以访问的。

微服务演进

使用Spring Cloud Alibaba微服务体系为主:

  • 网关:Spring Cloud Gateway
  • 熔断、限流、降级:Sentinel
  • 服务配置、注册与发现:Nacos
  • 自动伸缩:K8s服务管理
  • 数据库:主从-读写分离
  • 缓存服务:Redis哨兵模式

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911515.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号