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

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

相关文章

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

NGINX 配置内网访问的实现步骤

《NGINX配置内网访问的实现步骤》本文主要介绍了NGINX配置内网访问的实现步骤,Nginx的geo模块限制域名访问权限,仅允许内网/办公室IP访问,具有一定的参考价值,感兴趣的可以了解一下... 目录需求1. geo 模块配置2. 访问控制判断3. 错误页面配置4. 一个完整的配置参考文档需求我们有一

C#实现访问远程硬盘的图文教程

《C#实现访问远程硬盘的图文教程》在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件,这次我们将给出一个完整的... 目录引言一. 远程硬盘功能展示二. 远程硬盘代码实现1. 底层业务通信实现2. UI 实现三. De

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Nginx 访问 /root/下 403 Forbidden问题解决

《Nginx访问/root/下403Forbidden问题解决》在使用Nginx作为Web服务器时,可能会遇到403Forbidden错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Ng

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom