全国性系统之架构设计与思考

一、什么是全国性系统?

全国性系统就是全国大多数人民都直接或间接使用的IT系统。

二、全国性系统具有的特点有哪些?

  • 1.高并发;
  • 2.高性能;
  • 3.高可用;
  • 4.高安全。

三、目前的全国性系统有那些?

  • 1.中国铁路12306;
  • 2.通信大数据行程卡;
  • 3.中国银联;
  • 3.支付宝;
  • 4.微信;
  • 5.抖音。

上述这五个每个人都基本上直接或间接使用过。

四、全国性系统目前多吗?

在我看来实用性的偏少了一些,缺乏统一性,比方说医疗看病系统、健康码系统、社保系统等。

每个地方都有自己的一套,这无疑是资源的一种浪费。不如以多租户的形式进行统一,这样效率会高很多。也许有人担心是否足以支撑这么多人使用,在我看来不需要担心,随着目前技术的发展,这些都不是问题。

五、那么如何设计一套全国性系统呢?

首先全国性系统一定是一个分布式的系统,所以我们在设计这一个全国性系统时,需要从分布式系统的角度出发。通常构建分布式系统的目的是增加系统容量,提高系统的可用性,从技术方面来看,需要完成下面两件事:

  • 第一、大流量处理(全国上亿的人在使用);
  • 第二、关键性业务保护(一旦出现问题,重点维稳最核心的功能,适当放弃一些不必要功能)。

接下来从技术的角度出发,谈谈如何让分布式系统保持高并发、高可用、高性能、高安全。

1.如何提高分布式系统架构的性能?

  • (1)缓存系统;
  • (2)负载均衡;
  • (3)异步调用;
  • (4)数据镜像;
  • (5)数据分区。

2.如何提高分布式系统架构的稳定性?

  • (1)服务拆分;
  • (2)服务冗余;
  • (3)限流降级;
  • (4)多租户隔离与灾备多活;
  • (5)CI/CD。

3.如何提高分布式系统架构的安全性?

  • (1)增加服务器安全层,防火墙是必需,每个进出端口严格控制;
  • (2)所有的中间件均设置复杂密码以及增加必要的安全规则;
  • (3)关注应用微服务安全,特别是所使用的框架有没有漏洞;
  • (4)数据库中的隐私数据均加密处理;
  • (5)自动化多层级监控;
  • (6)通过制度流程,一方面增加员工安全意识,另一方面最少知道原则。

按照上面三点所涉及的技术栈最终落地,分布式系统足以支撑高并发、高可用、高性能、高安全。当然了,上面每一点的内容细节足以写一本书,大家可选感兴趣的进行研究。上面所涉及的一部分内容均可在我的博客网站找到答案。

上面的技术栈在下面的编程语言中均可找到解决方案,这里不再赘述:

  • (1)Java生态;
  • (2)Go生态;
  • (3)C#生态;
  • (4)Python生态;
  • (5)PHP生态。

之前写过关于深入理解Saas系列文章可供读者朋友在设计分布式Saas架构方案参考:
深入理解SaaS之业务篇
深入理解SaaS之架构篇

其它架构相关文章参考:
从单体架构到分布式微服务架构的思考
我在M2公司做架构系列文章一共41篇
谈谈系统重构
老J的技术分享之总结

六、设计一套全国性系统成本高吗?

把全国各省市政府的专项开支集中起来,非但不高还能降低成本。从架构师的角度出发,架构的目的无非两个:

  • 第一、高效率;
  • 第二、低成本。

高效率的主要体现,开发简单,维护方便,扩展更易。
低成本的主要体现,节约成本,减少不必要的开支。

全国性系统的使用频率并不是每时每刻都处于高频状态,自动化监控体系可监控频率,频率高则通过弹性伸缩进行自动化扩容,确保服务的可用性与稳定性,当频率处于一个平稳状态或低频,进行资源释放,这样一来既能充分利用资源,又能避免资源的浪费。也许最开始没有具体的统计数据,不好判断低频、中频、高频这样的,为了保障服务的可用性与稳定性,可以通过大规模扩容,当有了数据之后,就能做到自动化控制。

七、目前有哪些可以做成全国性系统?

  • 1.各地的健康码;
  • 2.各地的医疗;
  • 3.各地的社保。

这些如果做成一个统一的IT系统(App、微信小程序或公众号、PC网站等),我个人觉得会比较方便全国各地老百姓的出行、务工、看病等。
当然了,就目前而言可能性不大,有很多现实因素,问题也不少。未来随着社会与科技的进步,那个时候,这样的全国性系统应该问题不大。

八、总结

本文主要是对全国性系统架构的一些思考,读者朋友如果有更多想法或者一些疑惑,均可通过关注我的微信公众号联系我。

文章目录
  1. 一、什么是全国性系统?
  2. 二、全国性系统具有的特点有哪些?
  3. 三、目前的全国性系统有那些?
  4. 四、全国性系统目前多吗?
  5. 五、那么如何设计一套全国性系统呢?
    1. 1.如何提高分布式系统架构的性能?
    2. 2.如何提高分布式系统架构的稳定性?
    3. 3.如何提高分布式系统架构的安全性?
  6. 六、设计一套全国性系统成本高吗?
  7. 七、目前有哪些可以做成全国性系统?
  8. 八、总结