精华内容
下载资源
问答
  • 怎样增加业务量
    千次阅读 多人点赞
    2019-06-26 14:22:35

    一、基础规范

    (1)必须使用InnoDB存储引擎

    解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高

    (2)新库使用utf8mb4字符集

    解读:万国码,无需转码,无乱码风险,节省空间

    (3)数据表、数据字段必须加入中文注释

    解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的

    (4)禁止使用存储过程、视图、触发器、Event

    解读:高并发大数据的互联网业务,架构设计思路是“解放数据库CPU,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”。数据库擅长存储与索引,CPU计算还是上移吧

    (5)禁止存储大文件或者大照片  

    解读:为何要让数据库做它不擅长的事情?大文件和照片存储在文件系统,数据库里存URI多好

    二、命名规范

    (6)只允许使用内网域名,而不是ip连接数据库

    更多相关内容
  • 为对动态业务快速有效疏导,并实现智能区分保护,提出一种基于分簇业务量疏导的动态区分保护策略。该策略基于极大独立集将网络有效分簇,减小疏导寻路耗时;同时将分层辅助图、波长剩余容量矩阵及簇汇聚层相互协同,...
  • 随着业务的不断扩展和业务量的快速增加,数据量就会越来越大,每次对表的操作都会占用更多的系统资源,若单表数据量过大,索引又多,这时候插入数据处 理速度就会变的很慢,这时候单机性能瓶颈就凸显出来了,那么...
    • 一、背景

    随着业务的不断扩展和业务量的快速增加,数据量就会越来越大,每次对表的操作都会占用更多的系统资源,若单表数据量过大,索引又多,这时候插入数据处
    理速度就会变的很慢,这时候单机性能瓶颈就凸显出来了,那么如何解决呢?
    映射到日常生活中,在一定条件下,把一件事分配给几个人一同处理的速度远大于一个人去处理的速度跟效率,这样即可以减轻每个人的压力,也可以提升整件事的
    处理速度跟效率,但是要付出的人工成本就变高了,但是如果业务发展良好的话,从长远来看,收益将是投入成本的好多倍,其实是赚了。
     所以可以考虑 两种方案:
        1.部署上:采用 主从复制、读写分离。
        2. 数据切分:将大数据表切分 散布到多个数据库主机上,达到均衡负载,突破单机性能瓶颈。

    • 二、方案分析

         第一种:主从复制 读写分离。这种是从部署方面来说的,但是随着业务量的不断增加和扩展,还是解决不了表数据量过大单机性能瓶颈的问题 插入、查询、位数索引文件过慢的问题。倘若遇见流量高峰期,或者并发期的时候,数据库有可能挂掉。所以这种方案也不能从根本上解决问题。但是这种部署方案几乎是大多数网站通用的部署的方式。可以考虑跟 方案2 和 方案3 相结合,做到优势互补。

     第二种:

    1. 垂直切分:可以根据一个业务涉及到的表之间的耦合度高低来切分,把一个业务中耦合度低的表,散布到多个数据库中,它们之间的耦合度低,相对于业务来说逻辑关联性也弱,没有那么多的join操作,较容易拆分,应用层的改动也较小,付出的成本也较低。例如把会员表和订单表放在不同的数据库中,但是这种方式缺点

    (1) 由于业务部分复杂度较高需要join操作,这就不好办了,只能通过应用程序或接口方式解决,如果部分业务需要事物方式处理,也是个头疼的问题,也不利于事务处理。

    (2)当数据量达到一定规模还是会出现单库性能瓶颈

    2.水平切分:把一个大表中的部分数据做切分 散布到多个数据库中,比如机构预约表,每天都会产生好几万条记录,可以根据机构的id取模运算,分散到不同数据表或者数据库中,水平切分可避免单表数据量过大影响查询和插入性能,减少占用系统资源,大流量或者并发场景下 数据库挂掉的可能行降低。

    缺点:

    (1)跨库join难度增加

    (2)分布式事务处理复杂

    总结:可以看出这两种切分方案:基本都存在 跨库join 问题、分布式事务处理繁杂问题。所以在设计表的时候一定要根据业务模型 找出最优切分方案。一般不是很大的系统中,可能只有部分业务数据量比较大,所以只有部分表需要做拆分,这个还比较好处理,但是大型系统就不能这么干了,不然付出的改造维护成本和时间成本会非常大。 现在有很多开源的数据库中间件,所以建议用数据库中间件来做处理,应用层只做应用层该做的事,不用考虑那么多,一些繁杂的数据处理交给中间件来做处理,这样开发效率也会大大提高。

    展开全文
  • 交通运输行业:早秋农货节拉动快递业务量增加,交邮融合催化快递乡村市场深化发展.pdf
  • 围绕支撑高并发的业务场景怎么设计系统才合理? 面对超高的并发,首先硬件层面机器要能扛得住,其次架构设计做好微服务的拆分,代码层面各种缓存、削峰、解耦等等问题要处理好,数据库层面做好读写分离、分库分表,...

    围绕支撑高并发的业务场景怎么设计系统才合理?

    面对超高的并发,首先硬件层面机器要能扛得住,其次架构设计做好微服务的拆分,代码层面各种缓存、削峰、解耦等等问题要处理好,数据库层面做好读写分离、分库分表,稳定性方面要保证有监控,熔断限流降级该有的必须要有,发生问题能及时发现处理。这样从整个系统设计方面就会有一个初步的概念。

    微服务架构演化

    在互联网早期的时候,单体架构就足以支撑起日常的业务需求,大家的所有业务服务都在一个项目里,部署在一台物理机器上。所有的业务包括你的交易系统、会员信息、库存、商品等等都夹杂在一起,当流量一旦起来之后,单体架构的问题就暴露出来了,机器挂了所有的业务全部无法使用了。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    于是,集群架构的架构开始出现,单机无法抗住的压力,最简单的办法就是水平拓展横向扩容了,这样,通过负载均衡把压力流量分摊到不同的机器上,暂时是解决了单点导致服务不可用的问题。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    但是随着业务的发展,在一个项目里维护所有的业务场景使开发和代码维护变得越来越困难,一个简单的需求改动都需要发布整个服务,代码的合并冲突也会变得越来越频繁,同时线上故障出现的可能性越大。微服务的架构模式就诞生了。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    把每个独立的业务拆分开独立部署,开发和维护的成本降低,集群能承受的压力也提高了,再也不会出现一个小小的改动点需要牵一发而动全身了。

    以上的点从高并发的角度而言,似乎都可以归类为通过服务拆分和集群物理机器的扩展提高了整体的系统抗压能力,那么,随之拆分而带来的问题也就是高并发系统需要解决的问题。

    RPC

    微服务化的拆分带来的好处和便利性是显而易见的,但是与此同时各个微服务之间的通信就需要考虑了。传统HTTP的通信方式对性能是极大的浪费,这时候就需要引入诸如Dubbo类的RPC框架,基于TCP长连接的方式提高整个集群通信的效率。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    我们假设原来来自客户端的QPS是9000的话,那么通过负载均衡策略分散到每台机器就是3000,而HTTP改为RPC之后接口的耗时缩短了,单机和整体的QPS就提升了。而RPC框架本身一般都自带负载均衡、熔断降级的机制,可以更好的维护整个系统的高可用性。

    那么说完RPC,作为基本上国内普遍的选择Dubbo的一些基本原理就是接下来要了解的。

    Dubbo工作原理

    1. 服务启动的时候,provider和consumer根据配置信息,连接到注册中心register,分别向注册中心注册和订阅服务
    2. register根据服务订阅关系,返回provider信息到consumer,同时consumer会把provider信息缓存到本地。如果信息有变更,consumer会收到来自register的推送
    3. consumer生成代理对象,同时根据负载均衡策略,选择一台provider,同时定时向monitor记录接口的调用次数和时间信息
    4. 拿到代理对象之后,consumer通过代理对象发起接口调用
    5. provider收到请求后对数据进行反序列化,然后通过代理调用具体的接口实现

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    Dubbo负载均衡策略

    1. 加权随机:假设我们有一组服务器 servers = [A, B, C],他们对应的权重为 weights = [5, 3, 2],权重总和为10。现在把这些权重值平铺在一维坐标值上,[0, 5) 区间属于服务器 A,[5, 8) 区间属于服务器 B,[8, 10) 区间属于服务器 C。接下来通过随机数生成器生成一个范围在 [0, 10) 之间的随机数,然后计算这个随机数会落到哪个区间上就可以了。
    2. 最小活跃数:每个服务提供者对应一个活跃数 active,初始情况下,所有服务提供者活跃数均为0。每收到一个请求,活跃数加1,完成请求后则将活跃数减1。在服务运行一段时间后,性能好的服务提供者处理请求的速度更快,因此活跃数下降的也越快,此时这样的服务提供者能够优先获取到新的服务请求。
    3. 一致性hash:通过hash算法,把provider的invoke和随机节点生成hash,并将这个 hash 投射到 [0, 2^32 - 1] 的圆环上,查询的时候根据key进行md5然后进行hash,得到第一个节点的值大于等于当前hash的invoker。
    4. 加权轮询:比如服务器 A、B、C 权重比为 5:2:1,那么在8次请求中,服务器 A 将收到其中的5次请求,服务器 B 会收到其中的2次请求,服务器 C 则收到其中的1次请求。

    集群容错

    1. Failover Cluster失败自动切换:dubbo的默认容错方案,当调用失败时自动切换到其他可用的节点,具体的重试次数和间隔时间可用通过引用服务的时候配置,默认重试次数为1也就是只调用一次。
    2. Failback Cluster快速失败:在调用失败,记录日志和调用信息,然后返回空结果给consumer,并且通过定时任务每隔5秒对失败的调用进行重试
    3. Failfast Cluster失败自动恢复:只会调用一次,失败后立刻抛出异常
    4. Failsafe Cluster失败安全:调用出现异常,记录日志不抛出,返回空结果
    5. Forking Cluster并行调用多个服务提供者:通过线程池创建多个线程,并发调用多个provider,结果保存到阻塞队列,只要有一个provider成功返回了结果,就会立刻返回结果
    6. Broadcast Cluster广播模式:逐个调用每个provider,如果其中一台报错,在循环调用结束后,抛出异常。

    消息队列

    对于MQ的作用大家都应该很了解了,削峰填谷、解耦。依赖消息队列,同步转异步的方式,可以降低微服务之间的耦合。

    对于一些不需要同步执行的接口,可以通过引入消息队列的方式异步执行以提高接口响应时间。在交易完成之后需要扣库存,然后可能需要给会员发放积分,本质上,发积分的动作应该属于履约服务,对实时性的要求也不高,我们只要保证最终一致性也就是能履约成功就行了。对于这种同类性质的请求就可以走MQ异步,也就提高了系统抗压能力了。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    对于消息队列而言,怎么在使用的时候保证消息的可靠性、不丢失?

    消息可靠性

    消息丢失可能发生在生产者发送消息、MQ本身丢失消息、消费者丢失消息3个方面。

    生产者丢失

    生产者丢失消息的可能点在于程序发送失败抛异常了没有重试处理,或者发送的过程成功但是过程中网络闪断MQ没收到,消息就丢失了。

    由于同步发送的一般不会出现这样使用方式,所以我们就不考虑同步发送的问题,我们基于异步发送的场景来说。

    异步发送分为两个方式:异步有回调和异步无回调,无回调的方式,生产者发送完后不管结果可能就会造成消息丢失,而通过异步发送+回调通知+本地消息表的形式我们就可以做出一个解决方案。以下单的场景举例。

    1. 下单后先保存本地数据和MQ消息表,这时候消息的状态是发送中,如果本地事务失败,那么下单失败,事务回滚。
    2. 下单成功,直接返回客户端成功,异步发送MQ消息
    3. MQ回调通知消息发送结果,对应更新数据库MQ发送状态
    4. JOB轮询超过一定时间(时间根据业务配置)还未发送成功的消息去重试
    5. 在监控平台配置或者JOB程序处理超过一定次数一直发送不成功的消息,告警,人工介入。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    一般而言,对于大部分场景来说异步回调的形式就可以了,只有那种需要完全保证不能丢失消息的场景我们做一套完整的解决方案。

    MQ丢失

    如果生产者保证消息发送到MQ,而MQ收到消息后还在内存中,这时候宕机了又没来得及同步给从节点,就有可能导致消息丢失。

    比如RocketMQ:RocketMQ分为同步刷盘和异步刷盘两种方式,默认的是异步刷盘,就有可能导致消息还未刷到硬盘上就丢失了,可以通过设置为同步刷盘的方式来保证消息可靠性,这样即使MQ挂了,恢复的时候也可以从磁盘中去恢复消息。

    消费者丢失

    消费者丢失消息的场景:消费者刚收到消息,此时服务器宕机,MQ认为消费者已经消费,不会重复发送消息,消息丢失。

    RocketMQ默认是需要消费者回复ack确认,而kafka需要手动开启配置关闭自动offset。

    消费方不返回ack确认,重发的机制根据MQ类型的不同发送时间间隔、次数都不尽相同,如果重试超过次数之后会进入死信队列,需要手工来处理了。(Kafka没有这些)

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    消息的最终一致性

    事务消息可以达到分布式事务的最终一致性,事务消息就是MQ提供的类似XA的分布式事务能力。

    半事务消息就是MQ收到了生产者的消息,但是没有收到二次确认,不能投递的消息。

    实现原理如下:

    1. 生产者先发送一条半事务消息到MQ
    2. MQ收到消息后返回ack确认
    3. 生产者开始执行本地事务
    4. 如果事务执行成功发送commit到MQ,失败发送rollback
    5. 如果MQ长时间未收到生产者的二次确认commit或者rollback,MQ对生产者发起消息回查
    6. 生产者查询事务执行最终状态
    7. 根据查询事务状态再次提交二次确认

    最终,如果MQ收到二次确认commit,就可以把消息投递给消费者,反之如果是rollback,消息会保存下来并且在3天后被删除。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    数据库

    对于整个系统而言,最终所有的流量的查询和写入都落在数据库上,数据库是支撑系统高并发能力的核心。怎么降低数据库的压力,提升数据库的性能是支撑高并发的基石。主要的方式就是通过读写分离和分库分表来解决这个问题。

    对于整个系统而言,流量应该是一个漏斗的形式。比如我们的日活用户DAU有20万,实际可能每天来到提单页的用户只有3万QPS,最终转化到下单支付成功的QPS只有1万。那么对于系统来说读是大于写的,这时候可以通过读写分离的方式来降低数据库的压力。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    读写分离也就相当于数据库集群的方式降低了单节点的压力。而面对数据的急剧增长,原来的单库单表的存储方式已经无法支撑整个业务的发展,这时候就需要对数据库进行分库分表了。针对微服务而言垂直的分库本身已经是做过的,剩下大部分都是分表的方案了。

    水平分表

    首先根据业务场景来决定使用什么字段作为分表字段(sharding_key),比如我们现在日订单1000万,我们大部分的场景来源于C端,我们可以用user_id作为sharding_key,数据查询支持到最近3个月的订单,超过3个月的做归档处理,那么3个月的数据量就是9亿,可以分1024张表,那么每张表的数据大概就在100万左右。

    比如用户id为100,那我们都经过hash(100),然后对1024取模,就可以落到对应的表上了。

    分表后的ID唯一性

    因为我们主键默认都是自增的,那么分表之后的主键在不同表就肯定会有冲突了。有几个办法考虑:

    1. 设定步长,比如1-1024张表我们分别设定1-1024的基础步长,这样主键落到不同的表就不会冲突了。
    2. 分布式ID,自己实现一套分布式ID生成算法或者使用开源的比如雪花算法这种
    3. 分表后不使用主键作为查询依据,而是每张表单独新增一个字段作为唯一主键使用,比如订单表订单号是唯一的,不管最终落在哪张表都基于订单号作为查询依据,更新也一样。

    主从同步原理

    1. master提交完事务后,写入binlog
    2. slave连接到master,获取binlog
    3. master创建dump线程,推送binglog到slave
    4. slave启动一个IO线程读取同步过来的master的binlog,记录到relay log中继日志中
    5. slave再开启一个sql线程读取relay log事件并在slave执行,完成同步
    6. slave记录自己的binglog

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    由于mysql默认的复制方式是异步的,主库把日志发送给从库后不关心从库是否已经处理,这样会产生一个问题就是假设主库挂了,从库处理失败了,这时候从库升为主库后,日志就丢失了。由此产生两个概念。

    全同步复制

    主库写入binlog后强制同步日志到从库,所有的从库都执行完成后才返回给客户端,但是很显然这个方式的话性能会受到严重影响。

    半同步复制

    和全同步不同的是,半同步复制的逻辑是这样,从库写入日志成功后返回ACK确认给主库,主库收到至少一个从库的确认就认为写操作完成。

    缓存

    缓存作为高性能的代表,在某些特殊业务可能承担90%以上的热点流量。对于一些活动比如秒杀这种并发QPS可能几十万的场景,引入缓存事先预热可以大幅降低对数据库的压力,10万的QPS对于单机的数据库来说可能就挂了,但是对于如redis这样的缓存来说就完全不是问题。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    以秒杀系统举例,活动预热商品信息可以提前缓存提供查询服务,活动库存数据可以提前缓存,下单流程可以完全走缓存扣减,秒杀结束后再异步写入数据库,数据库承担的压力就小的太多了。当然,引入缓存之后就还要考虑缓存击穿、雪崩、热点一系列的问题了。

    热key问题

    所谓热key问题就是,突然有几十万的请求去访问redis上的某个特定key,那么这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis的服务器宕机引发雪崩。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    针对热key的解决方案:

    1. 提前把热key打散到不同的服务器,降低压力
    2. 加入二级缓存,提前加载热key数据到内存中,如果redis宕机,走内存查询

    缓存击穿

    缓存击穿的概念就是单个key并发访问过高,过期时导致所有请求直接打到db上,这个和热key的问题比较类似,只是说的点在于过期导致请求全部打到DB上而已。

    解决方案:

    1. 加锁更新,比如请求查询A,发现缓存中没有,对A这个key加锁,同时去数据库查询数据,写入缓存,再返回给用户,这样后面的请求就可以从缓存中拿到数据了。
    2. 将过期时间组合写在value中,通过异步的方式不断的刷新过期时间,防止此类现象。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    缓存穿透

    缓存穿透是指查询不存在缓存中的数据,每次请求都会打到DB,就像缓存不存在一样。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    针对这个问题,加一层布隆过滤器。布隆过滤器的原理是在你存入数据的时候,会通过散列函数将它映射为一个位数组中的K个点,同时把他们置为1。

    这样当用户再次来查询A,而A在布隆过滤器值为0,直接返回,就不会产生击穿请求打到DB了。

    显然,使用布隆过滤器之后会有一个问题就是误判,因为它本身是一个数组,可能会有多个值落到同一个位置,那么理论上来说只要我们的数组长度够长,误判的概率就会越低,这种问题就根据实际情况来就好了。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    缓存雪崩

    当某一时刻发生大规模的缓存失效的情况,比如你的缓存服务宕机了,会有大量的请求进来直接打到DB上,这样可能导致整个系统的崩溃,称为雪崩。雪崩和击穿、热key的问题不太一样的是,他是指大规模的缓存都过期失效了。

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    针对雪崩几个解决方案:

    1. 针对不同key设置不同的过期时间,避免同时过期
    2. 限流,如果redis宕机,可以限流,避免同时刻大量请求打崩DB
    3. 二级缓存,同热key的方案。

    稳定性

    我要进阿里之业务量增长10倍、100倍你的系统该如何设计?

    熔断

    比如营销服务挂了或者接口大量超时的异常情况,不能影响下单的主链路,涉及到积分的扣减一些操作可以在事后做补救。

    限流

    对突发如大促秒杀类的高并发,如果一些接口不做限流处理,可能直接就把服务打挂了,针对每个接口的压测性能的评估做出合适的限流尤为重要。

    降级

    熔断之后实际上可以说就是降级的一种,以熔断的举例来说营销接口熔断之后降级方案就是短时间内不再调用营销的服务,等到营销恢复之后再调用。

    预案

    一般来说,就算是有统一配置中心,在业务的高峰期也是不允许做出任何的变更的,但是通过配置合理的预案可以在紧急的时候做一些修改。

    核对

    针对各种分布式系统产生的分布式事务一致性或者受到攻击导致的数据异常,非常需要核对平台来做最后的兜底的数据验证。比如下游支付系统和订单系统的金额做核对是否正确,如果收到中间人攻击落库的数据是否保证正确性。

    总结

    其实可以看到,怎么设计高并发系统这个问题本身他是不难的,无非是基于你知道的知识点,从物理硬件层面到软件的架构、代码层面的优化,使用什么中间件来不断提高系统的抗压能力。但是这个问题本身会带来更多的问题,微服务本身的拆分带来了分布式事务的问题,http、RPC框架的使用带来了通信效率、路由、容错的问题,MQ的引入带来了消息丢失、积压、事务消息、顺序消息的问题,缓存的引入又会带来一致性、雪崩、击穿的问题,数据库的读写分离、分库分表又会带来主从同步延迟、分布式ID、事务一致性的问题,而为了解决这些问题我们又要不断的加入各种措施熔断、限流、降级、离线核对、预案处理等等来防止和追溯这些问题。

    展开全文
  • 关联生产、流通、消费、投资和金融等多个领域,是现代社会不可替代的基础产业,近年来中国快递业务量快速增长,2021年中国快递业务量达1083亿件,较2020年增加了249亿件,同比增长29.92%。 2014-2021年中国快递业务...

    一、发展现状

    1、业务量

    快递行业作为邮政业的重要组成部分,具有带动产业领域广、吸纳就业人数多、经济附加值高、技术特征显著等特点。它将信息传递、物品递送、资金流通和文化传播等多种功能融合在一起,关联生产、流通、消费、投资和金融等多个领域,是现代社会不可替代的基础产业,近年来中国快递业务量快速增长,2021年中国快递业务量达1083亿件,较2020年增加了249亿件,同比增长29.92%。

    2014-2021年中国快递业务量统计

    资料来源:邮政部、智研咨询整理

    分专业来看,2021年中国国际/港澳台业务量达21亿件,较2020年增加了2.6亿件;同城业务量达141.1亿件,较2020年增加了19.44亿件;异地业务量达920.8亿件,较2020年增加了227.2亿件。

    2014-2021年中国各专业快递业务量统计(亿件)

    资料来源:邮政部、智研咨询整理

    从业务量结构来看,中国异地快递业务量长期占据全国快递业务总量七成以上的比例,尤其自2019年起占比更是达到了八成以上的比例,2021年中国国际/港澳台业务量占全国快递业务总量的1.9%,较2020年减少了0.3%;同城业务量占全国快递业务总量的13.0%,较2020年减少了1.6%;异地业务量占全国快递业务总量的85.0%,较2020年增长了1.8%。

    2014-2021年中国快递业务量结构

    资料来源:邮政部、智研咨询整理

    分省市来看,2021年广东快递业务量完成2945749.4万件,占全国快递业务总量的27.20%,占比最大;浙江快递业务量完成2278148.1万件,占全国快递业务总量的21.04%;江苏快递业务量完成860653.7万件,占全国快递业务总量的7.95%。

    2021年中国快递业务量排名前十的省市统计(万件)

    资料来源:邮政部、智研咨询整理

    分城市来看,2021年金华(义乌)市快递业务量完成1163887.9万件,占全国快递业务总量的10.75%,占比最大;广州市快递业务量完成1067831.2万件,占全国快递业务总量的9.86%;深圳市快递业务量完成597984.4万件,占全国快递业务总量的5.52%。

    2021年中国快递业务量排名前十的城市统计(万件)

    资料来源:邮政部、智研咨询整理

    2、业务收入

    随着中国快递业务量的增加,业务收入也随之增长,2021年中国快递业务收入达10332.3亿元,较2020年增加了1537亿元,同比增长17.47%。

    2014-2021年中国快递业务收入统计

    资料来源:邮政部、智研咨询整理

    分专业来看,2021年中国国际/港澳台快递业务收入达1167.5亿元,较2020年增加了94.1亿元;同城快递业务收入达816.3亿元,较2020年增加了49.9亿元;异地快递业务收入达5228.1亿元,较2020年增加了696.8亿元。

    2014-2021年中国各专业快递业务收入统计(亿元)

    资料来源:邮政部、智研咨询整理

    从快递业务收入结构来看,2021年中国国际/港澳台快递业务收入占全国快递业务总收入的11.3%,较2020年减少了0.9%;同城快递业务收入占全国快递业务总收入的7.9%,较2020年减少了0.8%;异地快递业务收入占全国快递业务总收入的50.6%,较2020年减少了0.9%。
    2014-2021年中国快递业务收入结构

    资料来源:邮政部、智研咨询整理

    分省市来看,2021年广东快递业务收入完成2454.3亿元,占全国快递总收入的23.75%,占比最大;上海快递业务收入完成1715.8亿元,占全国快递总收入的16.61%;浙江快递业务收入完成1264.7亿元,占全国快递总收入的12.24%。

    2021年中国快递业务收入排名前十的省市统计(亿元)

    资料来源:邮政部、智研咨询整理

    分城市来看,2021年上海市快递业务收入完成1715.8亿元,占全国快递总收入的16.61%,占比最大;广州市快递业务收入完成817.2亿元,占全国快递总收入的7.91%;深圳市快递业务收入完成648.9亿元,占全国快递总收入的6.28%。

    2021年中国快递业务收入排名前十的城市统计(亿元)

    资料来源:邮政部、智研咨询整理

    3、均价

    虽然中国快递业务量和业务收入均保持增长趋势,但快递平均单价却逐年下滑,2021年中国快递平均单价为9.5元/件,较2020年减少了1.1元/件,同比减少9.58%。

    2014-2021年中国快递平均单价统计

    资料来源:邮政部、智研咨询整理

    分省市来看,上海快递平均单价最贵,浙江快递平均单价最便宜,2021年上海快递平均单价为45.86元/件,全国排名第一;西藏快递平均单价为33.32元/件,全国排名第二;青海快递平均单价为27.37元/件,全国排名第三。

    2021年中国各省市快递平均单价统计

    资料来源:邮政部、智研咨询整理

    二、市场格局

    随着中国快递市场的高速发展,一大批优秀的快递企业迅速崛起,逐渐成为快递行业中的翘楚,如韵达股份、圆通速递、申通快递等,2020年韵达股份、申通快递、圆通速递快递业务量均保持增长趋势,2020年韵达股份快递业务量达141.44亿件,较2019年增加了41.14亿件;圆通速递快递业务量达126.48亿件,较2019年增加了35.33亿件;申通快递快递业务量达88.17亿件,较2019年增加了14.46亿件。

    2018-2020年中国快递行业重点企业快递业务量统计(亿件)

    资料来源:企业年报、智研咨询整理

    2020年韵达股份快递业务量占全国快递业务总量的16.97%,较2019年增长了1.18%;圆通速递快递业务量占全国快递业务总量的15.17%,较2019年增长了0.82%;申通快递快递业务量占全国快递业务总量的10.58%,较2019年减少了1.03%,2020年韵达股份、圆通速递和申通快递快递业务量总和占全国快递业务总量的42.72%,企业市场占有率相对较高,市场较为集中。

    2019与2020年中国快递行业市场占有率对比(按快递业务量)

    资料来源:智研咨询整理

    展开全文
  • 现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库。前提是不能影响线上业务使用,也是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作。  一般在线...
  • 首先我认为要弄清楚访问量增加的原因 1.这个接口是to b还是to c的, 如果是to c的,那恭喜你要么系统用户增加了,要么被黑客攻击了。被黑客攻击那肯定我们排查安全问题,及时上线处理,系统用户增加,那这种幸福的...
  • 这种情况下,改变一条业务规则会影响一系列依赖该规则的对象,特别是当实现一条规则的代码在分散类的若干方法中,甚至是若干协作类的方法中,平均信息就将大大增加。缺少集中控制导致了波纹效应,并且改变一条规则
  • 增加并且保持客户3.加快业务效率。完成这些问题一般都需要实现对多个业务系统的数据和业务逻辑的无缝访问,也就是说,要实施系统集成工程,以便联结业务流程、实现数据的访问与共享。JpetStore4.0是ibatis的最新...
  • 系统容量预估

    千次阅读 2021-08-13 02:55:58
    服务器容量容量设计需要考虑的维度:业务规划 + 架构复杂度 + 组件模块 + 高可用 + 安全 + 存储复杂度容量指标:单机QPS,峰值,平均值,用户数、并发、稳定性有多少数据,数据维度有哪些,服务业务有哪些,数据...
  • 不同地区之间的业务量完全不一样,大的就超级大,小的就非常小,分区非常不均匀。但是客户更希望这种不同地区间的互不影响 历史数据肯定有备份迁移,需要保留最近三个月的数据。 个人觉得这套方案非常的不合适,...
  • 缓冲存储可供查询的、快速访问的、源系统业务原貌的数据,屏蔽干扰,避免频繁读取、误操作数据源,避免对上游增加性能负载,表结构几乎与源结构一致,保有核查信息:源系统、ETL_DATE、供数方式,数据质量检验(OK...
  • 1. 了解业务安全的背景及重要性。 2. 掌握业务安全测试流程。 3. 掌握理解业务建模和流程梳理的处理思路。 4. 掌握风险点识别的内容。
  • 浅谈容量规划

    千次阅读 2015-11-08 18:37:48
     什么的集群适合做容量规划?只有线性可水平扩展的集群,我们才能通过获取一个节点的处理能力,计算出集群的处理能力,否则将会费很大物力和人力。    怎么做容量规划?一句话概括:线上压测到单节点的某一...
  • 在对工作流系统进行仿真测试时,由于业务系统跨度和规模大,并且存在大量人机交互工作,增加了仿真测试的难度。为解决该问题,提出一种基于Selenium 工具的工作流业务系统仿真测试方法。在对B/S 结构的业务系统进行...
  • 为解决UDP(User Datagram Protocol)业务增加而出现的网络拥塞问题,提出了基于MPLS(MultiprotocolLabel Switching)流量工程显式路由机制和流量中继主干线解决TCP/UDP业务之间的不公平竞争网络带宽资源问题的策略...
  • 业务逻辑安全思路总结

    千次阅读 2022-06-21 13:26:20
    在一些关键的业务场景里,我们最应该关注的安全问题是什么呢?...前端校验增加用户体验,后端校验才能保障接口安全性。 漏洞案例:支付计价的逻辑写在前端,后端没有做数据校验,从而导致0元支付...
  • 今天给一个线上的数据大的表增加字段,结果卡了 之后关闭navicat,然后再重新开navicat,可以打开看表,但是网站跟这个表关联的所有操作都超时了,访问接口没有报错信息,只是报超时。 然后打开navicat的工具->...
  • 说一下我对并发数、吞吐的理解

    千次阅读 2019-09-16 17:28:32
    吞吐,系统响应时间和最大并发决定了吞吐的上限,实际吞吐是根据业务统计的,必须实际上每天过境的车辆。网站PV,订单交易数量等等。 转载于:https://my.oschina.net/heartarea/blog/3053651
  • 场景是:我们业务资讯系统系统场景,数据量在列表量2000万上下,详情信息6000万左右,标签信息表1亿4千万以上,每一次详情查询会进行查询三张表, 耗时基本上1.5秒左右,但是最近业务量飙升导致查询卡顿,用户业务...
  • MySql内存不断增加

    2022-03-27 09:21:13
    场景:根据业务需要,不断往mysql插入大量数据.业务处理流程中,会再次对插入的数据进行copy到新表并从原表删除等操作 ...查询mysql数据大小实际只有1G左右 跟linux glibc分配内存机制相关 ...
  • 近年来,伴随着网购用户的飞速攀升以及对闲置资金的理财意识不断增加,支付 宝在基金销售领域开启了一大动作联袂天弘基金推出了余额宝,此举使得天弘基 ...金的业务量一跃跻身为基金行业的前五名。
  • 就机动车保有而言,整体表现稳步增长趋势,2021年机动车保有达3.95亿辆,扣除报废注销量比2020年增加2350万辆,增长6.32%。 2014-2021年中国新注册登记机动车数量及保有 ​ 编辑 添加图片注释,不超过...
  • 如何分析业务需求

    千次阅读 2019-07-10 17:23:09
    举个例子,设计朋友圈就是一个“业务需求”(当然也是解决方案),这个需求的业务目的就是“通过发布的动态连接用户”,业务目标就是“查看朋友圈的次数增多、发布朋友圈动态的次数增加”等。 业务需求 = 业务...
  • 也谈SAP业务顾问如何避免被ABAP开发顾问怒打   近期一个视频火了,说是中国平安一个产品经理和APP开发人员在办公室直接扭打起来。据说是因为该产品经理向程序员提出了一个需求,要求用户APP的主题颜色能根据手机...
  • 什么是表内业务,什么是表外业务

    千次阅读 2020-05-14 21:32:12
    表外业务,是指商业银行所从事的、按照现行的会计准则不记入资产负债表内、不形成现实资产负债但能增加银行收益的业务。 简单来说,表外业务就是银行大力发展的,资产、负债业务以外的其他业务。这部分业务也能给...
  • 很多小伙伴反馈说,高并发专题学了那么久,但是,在真正...究竟什么的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构,结合高并发专题下的其他文章,学以致用。电商系统架构在电商...
  • 俗话说的好,All problems in computer science can be solved by another level of indirection(计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决),怎样? 是不是感受到间接层的强大了。 分层最大...
  • mysql增加字段相信码农应该都不陌生,随手就可以写出来, sql如下: ALTER TABLE tbl_tpl ADD title(255) DEFAULT '' COMMENT '标题' AFTER id; 但是线上的一张表如果数据很大,执行加字段操作就会锁表,这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 563,626
精华内容 225,450
热门标签
关键字:

怎样增加业务量

友情链接: how-tomcat-works.zip