SpringCloud进阶-全链路优化
文章内索引
[显示]
优化
Undertow容器的优化
在高并发的情况下,qps一直上不去,之后通过查看线程后发现,undertow的连接数不够用,导致阻塞。可以通过以下设置调大undertow的连接数。
1 2 3 4 5 6 7 8 9 |
#长链数,一直在runnable状态。设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 server.undertow.io-threads=24 #短链的线程数,目前所有的http请求都是通过此线程处理。阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得线程 # 它的值设置取决于系统线程执行任务的阻塞系数,默认值是IO线程数*8 server.undertow.worker-threads=500 |
RabbitMQ优化
1 2 3 4 5 6 7 8 9 |
通过jstack dump发现线程中存在BLOCKED现象,排查原因为在MQ的执行线程(exceutor.thread)中,有等待channel的情况,所以通过加大channel来避免争抢资源。 MQ执行线程池的设置 通过com.rabbitmq.client.ConnectionFactory.newConnection(exceutor),创建一个MQ的connection,接收一个exceutor线程池,异步线程方式执行connection收到的topic并执行相应业务逻辑。 MQ连接数设置 返回的connection,可以设置其连接的channel,每个channel为一个线程与MQ进行通讯,可以通过channel.basicConsume,绑定一个默认的消费者。 |
hystrix优化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#hystrix线程数设置 hystrix.threadpool.default.coreSize=256 #最大排队长度。默认-1,使用SynchronousQueue。其他值则使用 LinkedBlockingQueue。注意:无法动态更新 hystrix.threadpool.default.maxQueueSize=512 #排队线程阈值,如果超出此数量则Reject请求,如果配置了该选项,队列的大小是该队列。如果maxQueueSize=-1的话,则该选项不起作用 hystrix.threadpool.default.queueSizeRejectionThreshold=100 #hystrix断路器设置 #当在配置时间窗口内达到此数量的失败后,进行短路。默认20个 hystrix.command.default.circuitBreaker.requestVolumeThreshold=30 #短路多久以后开始尝试是否恢复 默认5秒 hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=5000 #出错百分比阈值,当达到此阈值后,开始短路。默认50% hystrix.command.default.circuitBreaker.errorThresholdPercentage=50 #fallback设置 #调用线程允许请求HystrixCommand.GetFallback()的最大数量,默认10。超出时将会有异常抛出 hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests=50 |
zuul Ribbon连接数优化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
zuul默认使用ribbon中的httpclient的连接池进行连接管理, #设置整个连接池最大连接数 HJ-RiskRule-Edge.ribbon.MaxTotalConnections=500 #是路由的默认最大连接(该值默认为2),限制数量实际使用DefaultMaxPerRoute并非MaxTotal SERVICE-ID.ribbon.MaxConnectionsPerHost=500 SERVICE-ID.ribbon.MaxHttpConnectionsPerHost=500 SERVICE-ID.ribbon.MaxTotalHttpConnections=500 SERVICE-ID .ribbon.PoolMaxThreads=500 |
©版权声明:本文为【翰林小院】(huhanlin.com)原创文章,转载时请注明出处!
发表评论