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

本文介绍了系统架构从单体应用到微服务的演进过程,包括优化手段、集群部署、内外网集群及微服务框架选型等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

单体应用

集群服务

内外网集群

微服务演进


  一个系统的架构是一个不断演进的过程,而不是一步到位过度设计。架构图分享地址: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哨兵模式
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值