高并发系统设计 概述

通用方法

  • Scale Out
    横向扩展,分而治之,采用分布式布署的方式分流,让每个服务器都承担一部分并发和流量
  • 缓存
    使用缓存来提高系统性能,好比“拓宽河道”。任何能够降低响应时间的中间件。缓存思想遍布很多设计领域
  • 异步
    在某些场景下,未处理完成先返回,再通知。

** 高并发系统的演进应该循序渐进,以解决系统中存在的问题为目的和驱动力 **

设计目标

高并发是运用设计手段让系统能够处理更多并发请求,这是一切架构设计的背景和前提

  • 高性能

    • 性能优化原则

      • 问题导向
      • 二八原则
      • 数据支撑
      • 持续长久
    • 性能度量指标
      • 响应时间: 平均值、最大值、分位值
      • 吞吐量
    • 性能优化思路
      • 提高处理核心数
      • 减少单次任务响应时间 I/O密集还是CPU密集
  • 高可用
    • 度量

      • MTBF Mean TIme Between Failure
      • MTTR Mean TIme of Repair
      • Availability = MTBF / (MTBF + MTTR)
    • 设计思想
      • 系统设计

        • Design for Failure

          • Failover 心跳检测
          • 超时控制 系统日志
          • 降级 保证核心服务的稳定而牺牲非核心服务的做法
          • 限流 对并发请求进行限速来保护系统
      • 系统运维
        • 灰度发布
        • 故障演练
  • 易于扩展
    - 设计思路
    - 拆分 :独立、单一职责
    - 存储层
    - 首要考虑维度业务
    - 数据特征水平拆分
    - 业务层
    - 业务纬度
    - 重要性纬度
    - 来源纬度

原文地址:https://www.cnblogs.com/yeni/p/11750640.html

时间: 2024-10-06 01:35:45

高并发系统设计 概述的相关文章

高并发系统设计

高并发系统设计 半同步半异步I/O的设计模式(half sync/half async)

高并发系统设计与时间和空间的平衡

高可用上文我们已经讲过了,可当前互联网时代,怎么少的了高并发呢?高并发和高可用一样, 已经变成各个系统的标配了,如果你的系统QPS没有个大几千上万,都不好意思跟人打招呼,虽然可能每天的调用量不超过100. 高并发这个词,我个人感觉是从电商领域开始往外流传的,特别是电商领域双11那种藐视全球的流量,再把技术架构出来分享一把,现在搞得全互联网都在说高并发,而且你注意回忆一下所有你看到的高并发系统,往往都逃不开一个核心概念,那就是缓存+哈希,一切都是以这个概念和基础的,仿佛这就是高并发的核心技术了.

分布式高并发系统设计与分析

如何搭建SpringBoot微服务 ThreadPoolExecutor线程池的使用 ReentrantLock和Synchronized的使用场景 数据库锁机制(悲观锁.乐观锁) 分布式锁(RedissLock.Zookeeper) 进程内消息队列(LinkedBlockingQueue.ArrayBlockingQueue.ConcurrentLinkedQueue) 分布式消息队列(Redis.Kafka) AOP实现切面锁 Disruptor高效队列 商品详情页静态化 case0: 抢红

高并发大型网站架构设计

一个大型的网站网站应该由如下6个子系统组成 负载均衡系统 反向代理系统 Web服务器系统 分布式存储系统 底层服务系统 数据库集群系统 为什么要做高并发系统设计? 事实上,针对于任何单一的网络服务器程序,其可承受的同时连接数目是有理论峰值的,通过C++中对TSocket的定义类型:word,我们可以判 定这个连接理论峰值是65535,也就是说,你的单个服务器程序,最多可以承受6万多的用户同时连接.但是,在实际应用中,能达到一万人的同时连接并能保 证正常的数据交换已经是很不容易了,通常这个值都在2

系统架构~高并发日志系统设计

对于一个项目来说,日志是必须的,一般日志的持久化方式有文件和数据库,而在多数情况下,我们都采用文件系统来实现,而对于高并发的情况下,频繁进行I/O操作,对系统的性能肯定是有影响的,这个毋庸置疑!针对这种高并发的场合,我们采用一种缓存队列的方式来处理这个Case是比较明智的,本文主要是向各位展现一下,我所设计的<高并发日志系统设计>,如在功能上有什么需要改进的地方,欢迎各位来回复. 一 项目结构图 二 项目实现代码 /// <summary> /// 工作任务基类 /// </

关于PHP高并发抢购系统设计

内容并发抢购系统注意事项高并发架构设计描述程序端核心代码实现订单流程mysql 端并发解决方案 注意事项(1)高并发环境下,对于服务器cup.内存.网络宽带使用率会瞬间暴涨,需要注意对同服务器上其他应用的影响.(项目解耦,高并发应用独立部署)(2)服务器高负载运行,容易出现死机,重启服务器场景,要提前考虑内存(redis)数据备份与恢复,防止用户抢购数据丢失.(3)高并发应用首先要注重稳定性,其次是性能上优化. (4) 一台服务器能够支持多少并发量nginx服务为例:worker_process

高并发概述

1.什么是高并发: 多个进程或者线程同时(或者在同一段时间内)访问同一资源会产生的并发问题. 2.高并发原理图 3.高并发初期解决方案: 3.1系统或服务器级别解决方案: ①增大服务器的CPU ②增加内存条 ③增加硬盘个数,对硬盘做Radis ④换掉免费的tomcat,使用商用weblogic(美国Oracle公司出品的) ⑤增加到二块网卡 ⑥聘请系统架构师优化Linux内核 ⑦甚至花高价直接购买高性能的服务器 随着业务的不断增加,服务器性能很快又达到瓶颈 3.2 应用级别的解决方案 ① 网页H

【转载】千万级规模高性能、高并发的网络架构经验分享

在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重视它,战术上又要藐视它.先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右.对于一个后台服务器,单机的平均QPS可以到达800-1000,单独看写的业务量很简单 .为什么我们又不能说轻视它?第一,我们看它的数据存储,每天一百万的话,一年数据

linux下改动内核參数进行Tcp性能调优 -- 高并发

前言: Tcp/ip协议对网络编程的重要性,进行过网络开发的人员都知道,我们所编写的网络程序除了硬件,结构等限制,通过改动Tcp/ip内核參数也能得到非常大的性能提升, 以下就列举一些Tcp/ip内核參数,解释它们的含义并通过改动来它们来优化我们的网络程序,主要是针对高并发情况. 这里网络程序主要指的是server端 1. fs.file-max 最大能够打开的文件描写叙述符数量.注意是整个系统. 在server中.我们知道每创建一个连接,系统就会打开一个文件描写叙述符,所以,文件描写叙述符打开