写点什么

高可用的系统架构

用户头像
莫莫大人
关注
发布于: 2020 年 08 月 27 日
高可用的系统架构

导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。

原因一:硬件故障

原因二:软件bug

原因三:系统发布

原因四:并发压力

原因五:网络攻击

原因六:外部灾害

解决方案:

  1. 解耦

  • 高内聚低耦合的组件设计原则

  • 面向对象的基本设计原则

  • 面向对象的设计模式

  • 领域驱动的设计建模

  1. 隔离

  • 业务与子系统隔离

  • 微服务与中泰架构

  • 生产者消费者隔离

  • 虚拟机与容器隔离

  1. 异步

  • 多线程编程

  • 反应式编程

  • 异步通信网络编程

  • 事件驱动异步架构

  1. 备份

采用集群的设计,复制数据和应用服务存在于多个服务器上

  1. 失效转移

  • for无状态应用:通过负载均衡实现对一个服务器集群(2台及以上服务器)高可用访问

  • for数据:通过数据备份保证数据有多个副本,当一个副本失效时可以及时切换访问另一个副本

  1. 幂等

针对服务重复调用的情况,需要在服务层保证服务重复调用和调用一次产生的结果相同。可采用对请求服务的内容信息进行校验的方法,避免一些绝对不可以重复的操作,如转账服务。

  1. 事务补偿

  2. 重试

在既定的超时时间之后可以尝试再次请求。以自发修复一些因为线程阻塞,垃圾回收或者网络抖动而没有及时返回响应的故障

  1. 熔断

在某个服务出现故障的时候使用断路器阻断对该服务的调用,以免更多的请求被阻塞。

  1. 限流

对进入系统的用户请求进行流量控制。参考限流算法:计数器算法(固定窗口,滑动窗口),令牌桶算法,漏桶算法

  1. 自适应限流

  2. 降级

在系统高并发的时刻里临时关闭一些非紧要非核心的系统业务,以空出更多的资源进行周转。

  1. 异地多活

将数据中心分布在多个不同地点的机房,每个机房都提供完整的系统服务,用户可以连接任意的机房进行访问。



网站安全架构网站的高可用架构

常见安全问题:

  1. XSS攻击

Solution: 对请求参数进行消毒。



  1. SQL注入攻击:发送含有恶意SQL命令的http请求

Solution: 对请求参数进行消毒。



  1. CSRF攻击:伪造用户请求

Solution: 主要就是需要组织攻击者获得所有请求参数的可能,可以使用表单Token,在页面保单中增加一个随机数Token , 每次请求的Token都不相同,请求提交后检查Token的值是否正确以确定请求提交者是否合法。



  1. Error Code:错误回显,将系统报错信息直接显示在客户端界面,为黑客提供了系统的漏洞信息

Solution: 通过配置Web服务器参数,跳转500页面到专门的错误页面即可。



  1. Html注释 :开发人员如果在PHP,JSP等服务器页面程序中使用HTML注释语法进项程序注释,这些注释也会显示在客户端浏览器中。所以需要避免这样的工作习惯。



信息加密技术

  1. 单向散列加密(普通密码..)

  2. 对称加密(信用卡信息..)

  3. 非对称加密(区块链..)



发布于: 2020 年 08 月 27 日阅读数: 48
用户头像

莫莫大人

关注

还未添加个人签名 2018.07.31 加入

还未添加个人简介

评论

发布
暂无评论
高可用的系统架构