云时代架构”经典文章阅读感想十六

(支付宝架构师眼中的高并发架构)

经过这一学期的阅读,看到最多的一个名词就是高并发。

高并发高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。

1.服务器架构

业务从发展的初期到逐渐成熟,服务器架构也是从相对单一到集群,再到分布式服务。

一个可以支持高并发的服务少不了好的服务器架构,需要有均衡负载,数据库需要主从集群,nosql缓存需要主从集群,静态文件需要上传cdn,这些都是能让业务程序流畅运行的强大后盾。

2.并发测试

高并发相关的业务,需要进行并发的测试,通过大量的数据分析评估出整个架构可以支撑的并发量。

测试高并发可以使用第三方服务器或者自己测试服务器,利用测试工具进行并发请求测试,分析测试数据得到可以支撑并发数量的评估,这个可以作为一个预警参考,俗话说知己自彼百战不殆。

第三方服务:

阿里云性能测试

并发测试工具:

Apache JMeter

Visual Studio性能负载测试

Microsoft Web Application Stress Tool

3.分层

将系统在横向维度上切分成几个部分,每个部门负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统

比如把电商系统分成:应用层,服务层,数据层。(具体分多少个层次根据自己的业务场景)

应用层:网站首页,用户中心,商品中心,购物车,红包业务,活动中心等,负责具体业务和视图展示

服务层:订单服务,用户管理服务,红包服务,商品服务等,为应用层提供服务支持

数据层:关系数据库,nosql数据库 等,提供数据存储查询服务

分层架构是逻辑上的,在物理部署上可以部署在同一台物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,分别部署在不同的服务器上,使网站可以支撑更多用户访问

4.分割

在纵向方面对业务进行切分,将一块相对复杂的业务分割成不同的模块单元

包装成高内聚低耦合的模块不仅有助于软件的开发维护,也便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展

比如用户中心可以分割成:账户信息模块,订单模块,充值模块,提现模块,优惠券模块等

5.分布式

分布式应用和服务,将分层或者分割后的业务分布式部署,独立的应用服务器,数据库,缓存服务器

当业务达到一定用户量的时候,再进行服务器均衡负载,数据库,缓存主从集群

分布式静态资源,比如:静态资源上传cdn

分布式计算,比如:使用hadoop进行大数据的分布式计算

分布式数据和存储,比如:各分布节点根据哈希算法或其他算法分散存储数据
6、集群

对于用户访问集中的业务独立部署服务器,应用服务器,数据库,nosql数据库。 核心业务基本上需要搭建集群,即多台服务器部署相同的应用构成一个集群,通过负载均衡设备共同对外提供服务, 服务器集群能够为相同的服务提供更多的并发支持,因此当有更多的用户访问时,只需要向集群中加入新的机器即可, 另外可以实现当其中的某台服务器发生故障时,可以通过负载均衡的失效转移机制将请求转移至集群中其他的服务器上,因此可以提高系统的可用性

7.异步

在高并发业务中如果涉及到数据库操作,主要压力都是在数据库服务器上面,虽然使用主从分离,但是数据库操作都是在主库上操作,单台数据库服务器连接池允许的最大连接数量是有限的

当连接数量达到最大值的时候,其他需要连接数据操作的请求就需要等待有空闲的连接,这样高并发的时候很多请求就会出现connection time out 的情况

缓存高并发业务接口多数都是进行业务数据的查询,如:商品列表,商品信息,用户信息,红包信息等,这些数据都是不会经常变化,并且持久化在数据库中

高并发的情况下直接连接从库做查询操作,多台从库服务器也抗不住这么大量的连接请求数(前面说过,单台数据库服务器允许的最大连接数量是有限的)

8.面向服务

SOA面向服务架构设计

微服务更细粒度服务化,一系列的独立的服务共同组成系统

使用服务化思维,将核心业务或者通用的业务功能抽离成服务独立部署,对外提供接口的方式提供功能。

最理想化的设计是可以把一个复杂的系统抽离成多个服务,共同组成系统的业务,优点:松耦合,高可用性,高伸缩性,易维护。

冗余,自动化

在阅读完这篇文章指后我才了解到软件架构师的强大之处,单单是解决高并发性的问题便能通过业务场景等反面进行架构设计。从8个方面进行架构设计。在今后的学习中还是应该提高对于软件工程方面的了解学习。

转载于:https://www.cnblogs.com/877612838zzx/p/11056210.html

“云时代架构”经典文章阅读感想十六相关推荐

  1. “云时代架构”经典文章阅读感想十二

    云时代架构"经典文章阅读感想十二 (牛逼的架构师是怎么炼成的?) 前几周阅读的三四十岁的大龄程序员,应该如何保持自己的职场竞争力?中提到如何在35岁左右可以实现掌握有核心竞争力.其中之一便是 ...

  2. “云时代架构”经典文章阅读感想八

    "云时代架构"经典文章阅读感想八 (支持百万连接的系统应该如何设计其高并发架构) 连接共分为四个步骤:1建立连接.2.发送请求.3.返回响应.4.断开连接.系统通信就是通过建立连接 ...

  3. 云时代架构系列经典技术书籍

    云时代架构系列经典技术书籍包括: 1. <分布式服务架构:原理.设计与实战> 2. <可伸缩服务架构:框架与中间件> 3. <互联网轻量级框架SSM源码解密> 4. ...

  4. 云时代架构阅读笔记二——Java性能优化(二)

    承接上文Java性能优化(一)https://www.cnblogs.com/guo-xu/p/11019267.html 4)尽量确定StringBuffer的容量 在说和这个标题相关之前,先说一下 ...

  5. 软考高级系统架构设计师系列论文三十六:论基于构件的软件开发

    软考高级系统架构设计师系列论文三十六:论基于构件的软件开发 一.摘要 二.正文 三.总结 一.摘要 本文以我主持的某商业银行交易监控分析系统项目为实例,探讨了作为开发方公司基于构件技术开发项目碰到的问 ...

  6. 每日经典算法题(十六) 九九乘法表

    每日经典算法题(十六) 九九乘法表 九九乘法表:Multiplication Table 99 题目 输出 9 * 9 口诀 程序分析 分行与列考虑,共9行9列,i 控制行,j 控制列 思路 非常经典 ...

  7. 黑猫互联云计算机,黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测...

    黑猫评测 篇二十六:解决联想轻薄本痛点,3TB性价比NAS方案,联想个人云存储A1评测 2020-09-16 13:34:46 5点赞 10收藏 4评论 联想小新Pro 13的痛点,终于找到了完美的解 ...

  8. 云时代架构阅读笔记十五——架构设计思维(一)

    对于架构设计人们已经提出了许多方法,分类为:工件驱动的方法:用例驱动的法:模式驱动的方法:领域驱动的方法.一个经典的架构设计过程模型,沿用了RUP中迭代增量的思想,由分析.描述.选择.构造和组合5个阶 ...

  9. 云时代架构--阅读笔记03

    安全意识十原则(一) 我是软件工程的学生,精力主要集中在业务开发中.功能实现中,较少的注意软件的安全意识,在校的我们所做的项目还比较小型,如果针对工作后,公司项目的业务实现,我们只是简单做一下扫描和渗 ...

最新文章

  1. Python面向对象编程:入门类和对象
  2. 在 IntelliJ IDEA 中,如何快速将选中文件用资源管理器打开
  3. 数据结构排序法之插入法
  4. css实现强制不换行/自动换行/强制换行
  5. python中的命名空间指什么_python中命名空间
  6. 慧荣SM2258XT+B17颗粒,固态硬盘无法格式化已开卡成功,经验分享+量产工具,SM2259XT2类似
  7. 个头小本领大的员工——火车站巡检机器人
  8. html5css字竖着显示,css如何设置竖排文字?
  9. Windows 7装机必备 - 主流品牌驱动大集合
  10. typora中的图片加载不出来
  11. 交换机,路由器接口类型
  12. 程序员专用表情包,拿走不谢!
  13. 第十三届蓝桥杯 2022年省赛真题(Java 大学C组)
  14. Linux下安装新世纪五笔输入法(附表)(for 小白)
  15. miRNA的特征、功能及识别方法等详解
  16. NGS数据分析实践:00. 变异识别的基本流程
  17. 【总目录4】CC++、OpenCV、Qt、单片机总结大全
  18. Ant内置任务之defaultexcludes
  19. NET Framework平台
  20. xposed绕过模拟器检测_利用Xposed躲过Xposed检测

热门文章

  1. oracle sql 基础(六):数据控制语言(用户及权限管理)
  2. 【BZOJ 4103】 4103: [Thu Summer Camp 2015]异或运算 (可持久化Trie)
  3. Bootstrap中的网格系统
  4. GestureDetector类及其用法
  5. 【STL源码剖析读书笔记】【第6章】算法之partition算法
  6. DWR2学习笔记(一)
  7. Mr.J-- jQuery学习笔记(二十一)--模拟微博页面
  8. IP,IP地址,mac地址
  9. [剑指offer] 61. 序列化二叉树
  10. 二级指针做输入_第2种内存模型