重构:改善饿了么交易系统的设计思路
我在2017年5月加入饿了么的交易部门,先后负责搜索、订单、超时、赔付、条约、交付、金额计算以及评价等系统,后期开始做些整体系统升级的工作。
这篇文章成型于交易系统重构一期之后,主要是反思其过程中做决策的思路,我没有使用「架构」这个词语,是因为它给人的感受充满权利和神秘感,谈论「架构」让人有一种正在进行责任重大的决策或者深度技术分析的感觉。
如毕玄在系统设计的套路这篇文章里所提:
回顾了下自己做过的几个系统的设计,发现现在自己在做系统设计的时候确实是会按照一个套路去做,这个套路就是:系统设计的目的->系统设计的目标->围绕目标的核心设计->围绕核心设计形成的设计原则->各子系统,模块的详细设计
在进行系统设计时,摸清楚目的,并形成可衡量的目标是第一步。
"Soft" ware
Software拆开来分别是soft wa
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
大型网站技术架构演进路程
一、初始阶段 初始阶段访问量小,一台服务器就可以满足。应用程序、数据库、文件等 所有的资源都在一台服务器上。通常服务器操作系统使用 Linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用MySQL。 二、应用服务与数据服务分 Q:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。A:这时就需要将应用和数据分离。整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器。 三、使用缓存改善网站性能 Q:随着用户逐渐增多,数据库压力太大导致访问延迟,进而影响整个网站的性能。A:大部分的业务访问集中在一小部分数据上,那么如果把这一小部分数据缓存在内存中,是不是就可以减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能了呢?网站使用的缓存可以分为两种:本地缓存和远程缓存。 四、使用应用服务器集群改善网站的并发处理能力 Q:使用缓存后,数据访问压力得到有效缓解,但是单一应用服务器能够处理的请求连接有限,在网站访问高峰期,应用服务器成为整个网站的瓶颈。A:使用集群是网站解决高并发、海量数据问题的常用手段。增加服务器分担原有服务器的访问及存储压...
-
下一篇
开篇 | 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗? | 9月20号栖夜读
点击订阅云栖夜读日刊,专业的技术干货,不容错过! 阿里专家原创好文 1.开篇 | 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗? 本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识、实践、调优、内部实现等各个方面,带你由浅入深地全面了解 Flink SQL。阅读更多》》 2.如何在Flutter上实现高性能的动态模板渲染 最近小组在尝试使用一套阿里dinamicX的DSL,通过动态模板下发,实现Flutter端的动态化模板渲染;本来以为只是DSL到Widget的简单映射和数据绑定,但实际跑起来的效果出乎意料的差,列表卡顿严重,帧率丢失严重。这就让我们不得不深入Flutter的Framework层,去了解Widget的创建、布局以及渲染的过程。阅读更多》》 3.开发函数计算的正确姿势——借助 Ghostscript 将 PDF 转换成 JPG 本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Crontab安装和使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7,8上快速安装Gitea,搭建Git服务器

微信收款码
支付宝收款码