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

2024-02-21 09:18

本文主要是介绍【成为架构师3-4】服务化:必须支持高并发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

目录

        • 高并发指标
        • 垂直扩展(Scale up)
        • 水平扩展(Scale out)
          • 数据库的水平扩展

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

高并发指标
  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】服务化:必须搞定负载均衡

这篇关于【成为架构师3-4】服务化:必须支持高并发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/731263

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

Java并发编程之——BlockingQueue(队列)

一、什么是BlockingQueue BlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种: 1. 当队列满了的时候进行入队列操作2. 当队列空了的时候进行出队列操作123 因此,当一个线程试图对一个已经满了的队列进行入队列操作时,它将会被阻塞,除非有另一个线程做了出队列操作;同样,当一个线程试图对一个空

系统架构师-ERP+集成

ERP   集成平台end:就懒得画新的页

java线程深度解析(五)——并发模型(生产者-消费者)

http://blog.csdn.net/Daybreak1209/article/details/51378055 三、生产者-消费者模式     在经典的多线程模式中,生产者-消费者为多线程间协作提供了良好的解决方案。基本原理是两类线程,即若干个生产者和若干个消费者,生产者负责提交用户请求任务(到内存缓冲区),消费者线程负责处理任务(从内存缓冲区中取任务进行处理),两类线程之

java线程深度解析(四)——并发模型(Master-Worker)

http://blog.csdn.net/daybreak1209/article/details/51372929 二、Master-worker ——分而治之      Master-worker常用的并行模式之一,核心思想是由两个进程协作工作,master负责接收和分配任务,worker负责处理任务,并把处理结果返回给Master进程,由Master进行汇总,返回给客

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、