高并发
那我以美团外卖演进路的高并发和高可用来举例子吧,外卖业务其实已经非常是一个非常普遍存在的一个这种业务了,然后呢它的其实主要就是围绕我们线上的一个商品交易以及一个及时的一个配送服务搭建一个o2o的综合电商的交易平台,外卖业务的一个整个的一个增长的一个里程碑,也就是发展的历程,然后业务呢于一三年的十一月上线,然后在通过一年的发展我们在一四年的十一月达到了一个一订单突破百万的这么一个量级,针对于我们业务的每一个阶段的一些业务的特点,然后系统呢也进行了相应的一些迭代啊,主要是包括四个阶段啊,分别是起步阶段,微服务化阶段,以及精细化阶段,以及我们当前的一个set阶段
起步阶段
我们简单来看一下起步阶段的一个特点啊为起步阶段呢,主要是我们是主要是对对这个业务进行一个探索看看这个业务到底发展方向对不对好,我们系统比较单一 ,通用而且比较复杂的外卖servise的一个jar包来供各个前端的应用加载进来来提供服务,核心优化点就是lbs算法,缓存还有程序执行中的一些异步,批量的一些操作
微服务化阶段
为什么要提出这个阶段,就是因为我们这个业务在14年15年我们明确了业务的方向,并且我们业务的方向是可以稳定向前推进的,这个时候我们需要启动功能的逐渐完善,我们的订单也随之快速增长,业务越来越复杂,然后由于我们的系统那是刚才我们介绍的全是放在 在一个大jar里面来完成,所有的逻辑都耦合在一个jar包里,这样那就会导致 影响开发的迭代效率,系统是极容易出现问题的,核心改进点就是微服务,消息驱动和分库分表,我们针对业务不同场景的分析,线上业务和管理业务,线上业务又针对不同的领域比如商品,订单,广告等进行一个领域的拆分 在拆厂完之后呢我们的业务又有不同的服务特征,比如实时数据,历史数据,具体实施的时候我们先拆分出服务来,然后逐渐地把流量先引过来,保证我们线上的功能是稳定的,对于实时的访问哦是通过rpc的方式来调用,而对于上下游比较长的通过消息的方式来进行流转,避免微服务间过度耦合,方便业务进行扩展,但是随着订单的持续增长,数据库的压力比较大,像一些读压力过大的化我们可以通过增加从库,但是写场景,我们又提出了分库分表,以订单为例,为了支持不同维度的查询,按照门店,用户,订单id三个维度冗余
精细化阶段
随着体量越来越大,对稳定性的要求越来越高,核心改进点,研发流程规范;中间件升级;服务柔性调用&服务限流;
压测&监控&降级SOP
set化
![微信截图_20230708224226](C:\Users\熊强\Pictures\学习资料\微信截图_20230708224226.png