> > > @wangruyu1 `<dubbo:reference
> > > connections="100">`在远程引用的时候就会创建完成,然后请求会轮询这100个连接,代码在DubboInvoker.doInvoke
> > > > 所以我想问能不能配置100个并发在请求时循环使用新的长连接
> > >
> > >
> > > 不是很懂你这句话,你的意思是继续创建新连接吗
> >
> >
> > 我的意思是100个并发同时第一次请求时,是不是都是用的这100个长连接(因为出现长连接复用会小于100个)?当101次请求来时才会出现长连接复用。因为我从现在测试判断出100个并发并没有都被用到了,应该是出现了长连接复用。
> > 我现在想实现每个请求都是优先使用100个长连接中没被用到,如果100个都被用到了,那就循环的复用。相当于,for(i=0;i<100;i++)
> > con=cons[i %100]这样获取长连接。
> > 这能不能配置还是只能改源码?
>
> 目前消费端源码就是这样实现的;
> DubboInvoker
>
> ```java
> @Override
> protected Result doInvoke(final Invocation invocation) throws Throwable {
> RpcInvocation inv = (RpcInvocation) invocation;
> final String methodName = RpcUtils.getMethodName(invocation);
> inv.setAttachment(Constants.PATH_KEY, getUrl().getPath());
> inv.setAttachment(Constants.VERSION_KEY, version);
>
> ExchangeClient currentClient;
> if (clients.length == 1) {
> currentClient = clients[0];
> } else {
> currentClient = clients[index.getAndIncrement() % clients.length];
> }
> ...
> ```
>
> `currentClient = clients[index.getAndIncrement() %
> clients.length];`已经实现了你所说的复用。
恩,谢谢,估计是我配置有问题。
[ Full content available at:
https://github.com/apache/incubator-dubbo/issues/3145 ]
This message was relayed via gitbox.apache.org for
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]