教你设计和重构阿里巴巴日均亿级访问架构(纯硬核)

2023-10-28 22:50

本文主要是介绍教你设计和重构阿里巴巴日均亿级访问架构(纯硬核),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

温馨提示:预估阅读时间:3.1分钟
亲爱的小伙伴:

大家好,我是Gavin(是号主的好朋友),一名在技术领域从业15年的IT老兵,在BAT等一线大厂工作近8年,从CTO到自己创业。

自己带领研发的系统也一样从几千上万的用户量到上亿的大流量平台的爆发式增长,一路走来面对用户量的暴增后系统技术系统的升级和团队开发人员的成长和发展有了越来越多的感悟。

640?wx_fmt=png 回望公司业务刚刚开始起步,刚开始C端系统、管理系统、数据库都放在一台服务器上,没有进行运维监控和版本发布管理,对于系统的稳定和健康运行既无法监控也无法获取系统的负载状况,对于没有什么用户流量来说是不会出现大的问题, 随着用户量增加,后台业务报表复杂度提升,系统就频繁出现502、503的错误。

640?wx_fmt=png
640?wx_fmt=jpeg

刚开始大家都认为系统代码没有问题,但也有用户反馈经常点出502,503错误来,而大家对现状已经麻木了。在这样一个状态下我亲自上阵,深入系统架构,快速分析定位问题,首先发现所有应用都在一个服务器上部署,业务间耦合度非常高,这就是个典型的单一应用,系统非常脆弱,需要尽快解耦并进行服务化改造,我做了以下八项措施:

 

1、将应用服务器和数据库服务分离并单独部署;

2、对数据库进行主从服务设置,将应用进行读写业务分离;

3、将应用服务进行无状态化改造并进行分布式负载均衡,支持柔性扩展;

4、对应用服务进行改造,基础业务下沉,做服务隔离;

5、进行数据缓存架构设计,并将缓存服务化;

6、所用业务以及服务系统进行集群化设置并保证服务一致性;

7、进行关键时刻流量控制、服务降级设计,确保主服务稳定;

8、对各项服务进行线上监控和运行时检测确保服务稳定。

640?wx_fmt=png
我当时梳理的我公司跨境电商系统的应用构架,大家可以参考

我通过上面的优化和改造后服务终于稳定下来并能支撑 单日过亿的用户访问,服务上百个国家(我们目前的这套系统已经服务了来自 全球140多个国家的用户,包含美国、中国、南非、加拿大、印度、菲律宾、墨西哥、澳大利亚、德国、西班牙、英国、秘鲁、以色列、法国、韩国、智利等国家。)

优化完成后,最终结果完全超出预期 !
福利: 下图是我整理的日均亿级项目实施敏捷开发流程规范 (首次分享)
640?wx_fmt=png

随着平台用户量过亿后,项目开发人员也越来越多,各部门之间的业务交叉也变多,都有各自的 代码标准,导致每次团队总结回顾会议进行代码review的时候都在讨论到底要按谁的标准来,都是各执一词没有统一的标准(互相不服,拍桌子),团队之间增加了大量的 沟通成本,导致效率非常低下。

最终我们确定下来按照《阿里巴巴码出高效:Java开发手册》来进行代码规约, 因此很荣幸在2017年跟阿里巴巴码出高效Java开发手册作者孤尽老师认识并结缘至今;

640?wx_fmt=jpeg
今年9月阿里杭州云栖大会《大咖有约》现场
与孤尽老师再次深入交流探讨《软件工程危机与重构之道》
会后又跟孤尽老师也进行了深入的沟通:对于初创企业、中小型企业或者像阿里巴巴这样万亿级以上流量峰值的系统架构设计一定要谋定而后动,既要兼容过去的问题,解决当下的问题,还有适度解决未来的问题,而不是大而全大而广的进行系统架构。对于最新的系统的架构设计和重构方法我们达成高度共识。

640?wx_fmt=jpeg
孤尽老师亲自为我签名
《阿里巴巴码出高效:Java开发手册》20本

所以,此次我准备将我这15年来的一线开发经验、亿级用户平台架构方法、团队项目管理经验包括像阿里巴巴这样大流量平台架构设计用到的技术栈等来打造一个3天强化训练的2019阿里巴巴《日均亿级访问系统架构设计训练营》此课程全程免费

1、参加完3天免费训练营课程;
2、通过阿里巴巴日均亿级访问系统架构测试。

即可免费获得:我和阿里孤尽老师亲自签名的《阿里巴巴码出高效:Java开发手册》 书籍 一本

扫描以下二维码添加助理老师微信即可免费申请
先到先得 
640?wx_fmt=jpeg

640?wx_fmt=jpeg 640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg640?wx_fmt=jpeg

640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg
640?wx_fmt=jpeg

这篇关于教你设计和重构阿里巴巴日均亿级访问架构(纯硬核)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry