X系统高可用与高并发解决方案

PPT下载:https://download.csdn.net/download/love254443233/12334991

 

 

 

 

2.1 数据存储主备

主机工作,备机处于监控准备状况;当主机宕机时,备机接管主机的一切工作

2.2 双机房部署

多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。

 

扫描二维码关注公众号,回复: 16302578 查看本文章

2.3 集群部署

多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。

三、服务稳定性

这里的稳定性是指系统能够正常提供服务随时间不变化或不出问题的能力。

3.1  流量削峰(现象1)

推送促销活动导致流量突然增加2倍甚至更多

3.1  流量削峰(现象2)

qpm2500上升到5000甚至10000

3.1  流量削峰(影响)

参考文章:基于LRU-K算法设计本地缓存实现流量削峰

3.1.1)接口响应时长增加了5(qps增加了2)

3.1.2)机房局域网交换机带宽报警(1kM带宽使用了900M)

3.1.3)从redis获取数据接口响应时长增加等

3.1  流量削峰(方案)

1、服务各实例自动识别热点数据

2、存储有限的热点数据

3、热点数据先从本地缓存取,不再走redis与数据库 可大大减少请求响应时间,提高并发

 

3.1  流量削峰(LRU-K)

1)数据第一次被访问,加入到访问历史记录表(简称记录表);在记录表中对应的K单元中设置最后访问时间=new(),且设置访问次数为1

2)如果数据访问次数没有达到K次,则访问次数+1最后访问时间与当前时间间隔超过预设的值(30)访问次数0并加1

3)当数据访问计数超过(>=)K次后,则访问次数+1。将数据保存到LRU缓存队列中,缓存队列重新按照时间排序;

4LRU缓存队列中数据被再次访问后,重新排序;

5LRU缓存队列需要淘汰数据时,淘汰缓存队列中排在末尾的数据,即:淘汰“倒数第K次访问离现在最久”的数据。

3.1  流量削峰(效果1)

1、优化参数前QPS增长时,响应时间未见明显变短。如左右第1

2、参数调优上线后。QPS明显增加后,redis请求响应时间增加的情况下,整体响应时间未见变化。见左右最后1

3.1  流量削峰(效果2)

QPS增加4倍,响应时间未见变化,跟平时一样

 

1、接入系统使用多线程推送

2、极限状态下像网络超时会出现重新推送(出现过1秒钟推了6次情况)

3、过快会影响C系统与X服务的稳定性

1、接入系统使用多线程推送

2、推参状态持久化,性能好,对系统几乎无副作用

3、定时任务单线程处理,控制并发。下游系统无压力

从大数据同步数据的几种模式:

1http推送:实时,并发高会影响服务

2、消息推送:半限流,并发高会影响服务

3、主动去拉数据:单线程,不影响服务

1、把部分流量从整体并发高的服务引入或分流到其它整体流量小的服务

2Y校验房东与门店正确关系由查询X调整成查询权限平台

 

 

并发平均降了9w,最高降了15w,当时分销所有服务并发共计8w5

 

traceIdip统计

 

 

结果或影响

1)核心单个查询接口(房东+门店+房屋)响应时间对比:原来的2ms-7ms降至0.04ms-0.8ms,大约降低了

2redis整体并发对比:原来729K,现在266.469K(峰值),大约减少了64%

3redis整体流量对比:原来25K,现在17K,大约减少了降低了约32%

平均响应时间: 2.25ms
最大值响应时间: 13ms
 
平均响应时间: 1.712ms/18=0.09ms
最大值响应时间: 1.2ms
平均响应时间: 0.585ms/18=0.032ms
最大值响应时间: 1.0ms

猜你喜欢

转载自blog.csdn.net/love254443233/article/details/105513789