为了建立高频率和高可用系统体系结构,压力测量和容量估计至关重要。在发现了系统瓶颈后,有必要扩展和优化IT.com.com.banter.com,以提供房东的经验和知识,本文简单地摘要并欢迎讨论。
从一开始,有必要明确定义QPS保证目标以计算所需的服务和存储资源。可以根据QPS的同一时期或通常的峰值的2至3次估算。
压力测试目标的示例:
服务QPS上限=工作线程编号 * 1/平均单个请求处理时间 - 累积时间 - 累积时间
主要遵循以下几点:
Dubbo工作线程配置例如:
实际的压力测试受到。或在线调整权重,指导更多的流量以访问一个实例,并在记录达到阈值时记录QP。据估计,可以估计单个实例的最大QP。
Dominic类型:从上到下,建议从大到小设置中使用超时时间,也就是说,底部/下游服务的超时时间不应设置过多;否则,可能存在问题的问题是,基础/下游服务线程池已经用尽,然后拒绝请求(投掷Java.util.concurrent.concurrent.rejectexecutionException),是上游服务可用于上游服务,以及下游服务/下游服务。下游服务仍在执行。上游请求将继续进行底部/下游服务,直到线程池耗尽并拒绝新请求为止。不良情况是全班同类的雪崩,上游服务也消耗了线程池,无法响应新的请求。特定的超时时间取决于接口的响应时间。您可以参考95点或99点响应时间,该时间稍大。Dubbo超时时间示例:可以在服务器和客户端上设置。建议在服务器上设置默认超时时间,并且客户端也可以覆盖超时。
如果有多个呼叫,则没有订单依赖性。为了提高性能,可以考虑异步调用。Dubbo异步呼叫示例:
特殊部分直接限于异常流动。
例如:1个核心操作,检查3个缓存,编写1个缓存,检查两次数据库,编写1个数据库,发送1个MQ消息,调整下游服务的接口a;
为了读取缓慢的存储,大倍数为3,写作速度的大倍数为1,数据库的大倍数为2,数据库的大倍数为1,MQ扩增倍数为1,并且放大倍数是下游服务A为1。对于大量次,您需要考虑主库是否可以保存可以放大的QP。请注意:
存储资源的上限与机器的特定配置有关。当然,8C32G模型的QPS极限当然高于4C16G模型。下表是典型的值示例。
db数千库子表示例*单个实例QPS,实例数为1?数据库数(可以到达数百个)redis redis redis redis群集的示例数量*单个实例QPS,其中示例为示例这是数字范围为1到许多胶片的一个例子(可以达到数百张薄膜),并且可以将数百万个MQ的部分部分分区分配给总QP。每件最多可服务。实例是1?区域数字千数?shard划分示例数*单个实例QPS,示例范围为1? shard原始:https://juejin.cn/post/710049520098943013