【成为架构师3-4】服务化:必须支持高并发

本文探讨了高并发场景下的架构设计,包括响应时间、吞吐量、QPS等关键指标,以及垂直扩展和水平扩展的策略。特别介绍了数据库的水平扩展方法,如范围分片和Hash分片,旨在提供无限的存储和读写能力。

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

系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

本篇是对微服务架构中高并发一个通用思路的阐述,侧重的是要实现高并发的架构基础,也就是提升性能,并不涉及任何实现的细节,也不对应某个具体的业务场景(前面的文章也基本上是这样的风格)

高并发指标
  1. 响应时间 (Response Time)
  2. 吞吐量(Throughout)
  3. 每秒查询率QPS(Query Per Second)
  4. 并发用户数

这些内容的解释之路:QPS、TPS、吞吐量等性能指标的理解

垂直扩展(Scale up)
  1. 增加单机硬件性能
  2. 提升单机架构性能

垂直扩展是有极限的,但是如果垂直扩展就能hold住,那么应该优先考虑垂直扩展

水平扩展(Scale out)

端到反向代理、反向代理到站点、站点到服务的高并发的水平扩展和高可用的冗余的集群本质上是一样的,它们的集群方案在保证高可用的同时也支持高并发

数据库的水平扩展

数据库的水平扩展指的是两方面:

  1. 存储能力的扩展,理论上要达到无限的存储能力
  2. 读写能力的扩展,理论上要达到无限的读写能力

对于存储能力的扩展,就是数据库分片,分片既扩展了存储能力,也提高了读写性能

最简单的两种分片方式是:范围分片、Hash分片

范围分片
在这里插入图片描述

  1. 根据数据库主键Id以范围来划分数据库,比如1-1000w为库1,1000w-2000w为库2
  2. 实现非常的容易,微服务路由也十分容易
  3. 这种方式的好处是可以很容易的进行扩展,数据的划分也是均衡的(新库早期不均衡)
  4. 但是它的访问是不均衡的,新产生的数据,如新用户总是比老用户要活跃

Hash分片
在这里插入图片描述

  1. 根据主键的hash来进行划分和路由,规则也同样很简单,比如说奇数库、偶数库
  2. 数据划分是均衡的,访问也是均衡的,只要id是完全随机的
  3. 不利于水平扩展,当增加新节点的时候要重新计算hash,并对数据进行迁移

上一篇回顾:【成为架构师3-3】服务化:必须保证高可用
下一篇更精彩:成为架构师3-5】服务化:必须搞定负载均衡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值