问题一:大表加字段为什么会引起线程池满?
大表加字段为什么会引起线程池满?
参考回答:
大表加字段时,如果未采用Online DDL,可能会在最后阶段对表加Metadata Lock原子锁,这会使得大量相关联的SQL语句进入锁等待状态,从而产生慢SQL。大量的慢SQL会快速打满应用线程池,导致线程池满。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/633613
问题二:如何避免深分页引发的慢SQL问题?
如何避免深分页引发的慢SQL问题?
参考回答:
深分页引发慢SQL问题时,可以采用NextToken或游标的方式进行查询,以避免一次性查询大量数据。当数据量巨大时,这种方法能显著提高查询效率,避免线程池因处理慢SQL而满载。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/633615
问题三:远程调用连接池需要关注哪些点来避免线程池满?
远程调用连接池需要关注哪些点来避免线程池满?
参考回答:
远程调用连接池需要关注两个主要点来避免线程池满:
1)尽量减少远程调用本身的超时时间,以实现fast-fail快速失败;
2)在连接池满了以后,获取新的连接的超时时间也需要设置得小一些,以实现快速失败。这可以通过设置如ConnectionTimeout、SocketTimeout(针对业务执行超时)以及MaxWait或ConnectionRequestTimeout(针对获取新连接的超时)等参数来实现。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/633616
问题四:如何对线程池进行隔离以避免互相影响?
如何对线程池进行隔离以避免互相影响?
参考回答:
为了避免线程池互相影响,应该对其进行隔离。例如,可以将内部运维接口和对外服务的接口进行隔离,以及对外服务中的核心接口和非核心接口进行隔离。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/633617
问题五:Dubbo consumer侧的timeout设置有什么建议?
Dubbo consumer侧的timeout设置有什么建议?
参考回答:
为了避免线程池互相影响,应该对其进行隔离。例如,可以将内部运维接口和对外服务的接口进行隔离,以及对外服务中的核心接口和非核心接口进行隔离。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/633618