dubbo调优初版

provider端配置
consumer端配置

一、接口级别通用属性配置

1、validation配置
优先级:consumer>provider,两端都手动配置的情况下,如果验证不通过,只有客户端会报错
配置建议:provider端validation 配置为false,consumer端配置为true(默认是false)

2、timeout配置
优先级:方法>接口>全局 consumer>provider
配置建议:consumer配置的大于provider配置的,具体根据业务定

3、retries配置
优先级:consumer>provider,
配置建议:为避免provider不可控,重试次数由provider端设置,consumer端禁止配置(默认的2会被provider配置的覆盖),写请求通常为0,读请求可走默认值

二、consumer端

1、check配置(consumer端)
配置建议:默认为true,走默认值即可

2、actives 每服务消费者每服务每方法最大并发调用数
配置建议:默认0即可,如果大于零会限制引用方法级别的并发调用数(就是消费端的请求发不出去 源码:ActiveLimitFilter)

3、connections(consumer端)
所有接口共享长连接,只负责网络传输,性能瓶颈不会出现在这里
配置建议:0 或者不配置

三、provider端

1、delay(provider端)

配置建议:没有特殊如缓存等需要配置的话 走默认(为null) 或设置为-1即可,spring初始化完毕之后会注册到zk

2、accepts(provider端)
控制netty的channel数量
配置建议:0或不配置,(如果大于0,必须大于等于consumer端数量*connections数量)

3、iosthreads

负责io数据读写
配置建议:默认值(cpu数量+1)

4、threads(provider-protocol)
实际业务处理线程池,配合queue使用
配置建议:根据实际业务调整,建议queue=默认值0,防止业务堆积

5、executes(provider)
类似consumer端的actives
配置建议:默认0即可,如果大于零会限制方法级别的并发请求数(就是provider端的收到请求大于配置的值后立刻报错 源码:ExecuteLimitFilter)

dubbo调用参数生效过程示意

流程说明:
1、当consumer发起一个请求时,首先经过参数actives进行方法级别的限制,

收到请求时通过private final AtomicInteger active = new AtomicInteger();加1,请求完成(包括异常)减1,如果超过actives则调用wait等待其他请求完成后重试或者超时后失败;【ActiveLimitFilter】

2、从consumer和provider之间建立的长连接通道发送业务参数到provider端(如果进行了配置accepts必须大于等于consumer端数量*connections数量)

3、收到请求通过iothread读取内容【参考netty的多线程模型】

4、反序列化后交由业务线程池处理

5、executes是提供端生产级别的并发控制,大于executes立刻报错,类似于actives,一个是多的请求发不出去,一个是多的请求不接。【ExecuteLimitFilter】

总结:

1、核心的逻辑瓶颈是在provider端的threads数和consumer端的actives数乘以consumer端数量大小,如果后者大太多,重试也大概率会失败。

2、个别方法性能有问题可单独调整executes

3、整体性能有问题,可尝试调threads

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容

  • Dubbo调用模型 常用性能调优参数 源码及原理分析 >>threads FixedThreadPool.java...
    java菜阅读 1,365评论 0 0
  • 4. Dubbo 高级特性 4.1Dubbo 控制台部署 从 2.6 版本之后,dubbo 控制台已单独版本管理(...
    Curtain_call阅读 462评论 0 1
  • 我们接着分析服务消费,上一篇文章已经分析到相关初始化等操作,我们回到代理方法那里,从代理调用接着分析、以及服务端接...
    WEIJAVA阅读 321评论 0 1
  • 1. 功能特性一览 - 实现rpc调用,像调用本地方法一样调用远程server上的方法 - 支持多协议:(Dubb...
    黄靠谱阅读 2,873评论 0 1
  • 本资料来源:http://www.cnblogs.com/ClassNotFoundException/p/697...
    CallMe兵哥阅读 1,010评论 0 0