dubbo 框架小结
1. dubbo:protocol
Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
1.1 payload:默认,provider 和 consumer 传递消息的大小不超过 8M,检查 payload 的调用栈如下:
1.2 线程池相关
threadpool:可选(fixed/cached)
threads:实质是 corePoolSize 和 maximumPoolSize
queues:线程池队列大小
1.3
2. dubbo:reference
2.1 与人联调时,采用直连方式连接对方主机,会很方便。
url:dubbo provider 地址
比较下直连和 zk 作为注册中心的区别,
直连:
连接 zk 注册中心:
2.2 负载均衡
loadbanlance:random(默认),roundrobin,consistenthash,leastactive
2.3 失败方案
cluster:常用的有 failover,failfast。failover 失败重试,failfast 只发起一次调用,失败就报错。
mock 是 cluster 的 wrapper:
2.4 check 属性
正常情况下,一个进程既是 consumer,又是 provider,也许它启动时,对应的 provider 还没有,通过设置 check="false",该进程可以正常启动,但是不能调用远程服务。
只有在调用 appCtx.getBean 时,才会触发 consumer 的 reference,如果在标签中设置 check="false",即使没有 provider,consumer 也能 ref 成功,appCtx.getBean 正常返回。而如果设置 check="true",则会抛出异常。
那么,check 所起的作用到底是啥?判断网络是否连接,以及是否可写。