高并发系统之性能优化

首先po一些概念,这些概念在之后可能会经常出现。

缓存(cache): 非常常见的一个功能,就是利用局部性原理进行对近期访问的一些数据进行存储以便再访问的时候能够高速地进行访问。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;

降级:就是在高并发高负载情况下,选择动态地关闭一下不重要的服务,拒绝访问等,来为重要的服务节省资源,比如电商平台秒杀当天可关闭推荐等功能。降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开。

限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。

一般开发高并发系统常见的限流有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(如Guava的RateLimiter、nginx的limit_req模块,限制每秒的平均速率);其他还有如限制远程接口调用速率、限制MQ的消费速率。另外还可以根据网络连接数、网络流量、CPU或内存负载等来限流。


在实际情况中可能会用到不同的限流算法,需要我们去具体分析。


数据传输中的协议

这里说的协议,不是tcp/ip这些网络协议。
在分布式环境中,我们需要将模块的数据通过网络bit流传给上、下游模块,就会涉及到数据完整性、正确性校验。
为了能够校验数据,就需要定义数据交换协议。

在我们的项目中,用到了nshead、mcpack等协议来表示不同的数据格式。

Ref

https://www.jianshu.com/p/a3d068f2586d

https://mp.weixin.qq.com/s/TBCEwLVAXdsTszRVpXhVug?

https://segmentfault.com/a/1190000008931971

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注