天下之事,必先处之难,而后易之。

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

目录

单体应用

集群服务

内外网集群

微服务演进


  一个系统的架构是一个不断演进的过程,而不是一步到位过度设计。架构图分享地址: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哨兵模式
posted @ 2023-11-24 14:21  boonya  阅读(23)  评论(0)    收藏  举报  来源
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。