第7章 分布式架构设计 【亿级流量如何架构设计】

5、亿级流量如何架构设计?

答:采用高并发、高可用、高可靠的“三高”设计原则进行设计。

(1)三高设计原则

系统建设必须做到,即使个别节点宕机、网络不可用,依然能保证整个系统对用户是可用的,可以为用户正常提供服务。

1)高并发

主旨原则:系统分层、逐级限流。

 

服务网关层

负载均衡

将所有压力均匀地分布到许多物理节点上

限流措施

只将有效的流量转发给下游;当业务流量超过系统设计能力时,拒绝掉过载部分流量

用户鉴权

阻止不合法用户流量

安全防护

保护系统免受DDoS等攻击

业务层

动静分离/前后端分离

通过页面缓存提高用户体验

异步化设计

先受理用户请求,再发送消息给队列

熔断机制

进行“服务降级”来防止系统雪崩

服务层

服务降级

查询降级:通过不查询数据而返回兜底数据来降低数据库压力。

写操作降级:不再去写数据库,而是切换为写Redis内存数据库加异步写库

分布式缓存

数据层

读写分离

将数据库分为生产库与查询库,分别予以系统优化

横向、纵向切分

分散生产库的写入压力,缓解磁盘I/O的瓶颈

NoSQL数据库与大数据平台

实现数据分析与查询的优化

         2)高可用

高可用:即使在面对高并发时个别节点宕机,整个系统对于用户来说仍是可用的,用户的所有请求都将予以处理,并最终反馈给用户。

网关层

多机房

通过DNS轮询实现多机房的访问

服务层

保证负载均衡高可用(如:Nginx的主从同步)

应用层与服务层

通过Kubernetes云端部署,每个服务都至少部署在两个以上节点

数据节点(缓存、消息队列、数据库)

通过主从同步实现

         3)高可靠

                  这里的高可靠,特指数据的高可靠运行不丢失。可采用去中心化设计。

(2)服务治理

         1)微服务

         2)中台设计:业务中台、技术中台

业务中台:将业务组件抽象,将如用户权限、会员管理、仓储管理、物流管理等公共组件做成微服务,为各业务系统所使用。

技术中台:就是封装了各个业务系统所需要的技术框架,以统一的API开放出来,使上层的业务开发技术门槛降低、开发工作量减少、提升交付速度。

数据中台:整理各个业务系统的数据,建立数据存储与运算的平台,为各个系统的数据的分析与利用提供支持。

(3)各云端的转型

选择公有云设计方案:降低成本、提高安全;云技术逐渐从虚拟技术向着窗口技术甚至Serverless方向转型。系统可直接在基于分布式窗口的Docker + Kubernetes云平台上部署。

云端方案促进技术转型:首先,业务系统将拆分单体应用,采用微服务设计并进行云端部署;其次,系统设计向着分布式设计转型;采用无状态设计、降低节点间通讯、保障节点宕机的高可用与数据不丢失;最后,是DevOps自动化部署与运维平台的建设,需要搭建一个基于Git + Jenkins + Docker + Kubernetes的自动化发布平台,并通过Prometheus + Grafana进行系统监控,通过EFK进行日志监控。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值