`
wangxinpier
  • 浏览: 115511 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

apache rpc 设置超时不启作用的情况的处理

阅读更多
虽然大部情况下都是用WS,但RPC在某些情况下还是比较轻便的选择。

http://ws.apache.org/xmlrpc/

config.setConnectionTimeout(5000);
config.setReplyTimeout(6000);

问题主要从这两句代码开始,从网上找到的例子程序,设置这两个参数均不起任何作用,查看rpc的源代码发现在,其使用的TransportFactory并没有在进行socket的时候进行相应的设置,查看其他的TransportFactory,发现真正使用此参数设置socket的是XmlRpcCommonsTransportFactory工厂
XmlRpcClient client = new XmlRpcClient();
client.setTransportFactory(new XmlRpcCommonsTransportFactory(client));
client.setConfig(config);


重新设置传输工厂,得到了想要的效果。

现在我们在来说一说timeout与replytimeout

RPC进行网络通信同样使用的是jdk中的socket进行的。
所有 connectiontimeout对应于socket中的connecttimeout
      replytimeout对应于socket中的sotimeout


 Socket s = new Socket();
     s.connect(socketAddress,2000); // 2 秒connect timeout超时	   
     s.setSoTimeout(15000); // 15 秒io超时



看代码中的注释,connecttimeout是连接超时了,例如一个IP并没有在局域网中,你的PC向网络中发了一个包,长时间没有找到回应的主机,就会产生一个连接超时了。而sotimeout是IO超时,服务器已经找到了,而长时间得不到服务器的数据,也就是说socket没有在设置的时间内从IO中读到任何内容就会出再sotimeout超时

这部分更详细的情况可以参看JDK相应的源代码,但是JDK同样是调用dll文件中的方法实现的网络连接的操作,不知道有什么办法可以更详细的查看dll中相应的代码,如果你知道,请回复一下,共同学习。。。。


分享到:
评论

相关推荐

    Python grpc超时机制代码示例

    工作中遇到一个问题,上游服务通过grpc调用下游服务,但是由于下游服务负载太高导致上游服务的调用会随机出现超时的情况,但是有一点不太明确:超时之后,下游服务还会继续进行计算么? 于是自己写了一个damon试了...

    jaffa-rpc-library::rocket:高性能RPC库,用于使用ZeroMQKafkaHTTP1.11.1RabbitMQgRPC的Java Spring应用程序之间的通信

    Jaffa RPC库 该库提供Java Spring应用程序之间的RPC通信。 主要特点: Apache ZooKeeper(带有TLSv1.2)用于服务发现 同步和异步RPC调用-通信类型由客户端而不是服务器确定 一个接口可以有多个服务器实现-客户端...

    企业级Linux服务攻略

    7.3.3 超时设置 7.3.4 客户端连接数限制 7.3.5 设置管理员邮件地址 7.3.6 设置主机名称 7.3.7 设置文档目录 7.3.8 设置首页 7.3.9 网页编码设置 7.3.10 Apache的启动与停止 7.3.11 Web应用案例 7.3.12 Apache日志...

    JS API 接口接收与返回

    //设置超时时间 echo$client->hi('PHPRPC'), "\r\n"; //调用函数 echo$client->getKeyLength(), "\r\n"; //下面是返回值 echo$client->getEncryptMode(), "\r\n"; echo$client->getCharset(), "\r\n"; echo$...

    ASP API 接口接收与返回

    //设置超时时间 echo$client->hi('PHPRPC'), "\r\n"; //调用函数 echo$client->getKeyLength(), "\r\n"; //下面是返回值 echo$client->getEncryptMode(), "\r\n"; echo$client->getCharset(), "\r\n"; echo$...

    java开源包1

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    180多页面试题,前前后后不间断的更新了两年,准备换工作时,总是拿来看看,有比较好的面试题,也不间断的更新,面试题目录如下: 【基础】面向对象的特征有哪些方面 13 抽象 13 继承 13 封装 13 多态性 13 【基础】...

    java开源包11

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包2

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包3

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包6

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包5

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包10

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包4

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包8

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包7

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包9

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包101

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    Java资源包01

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    Dubbo服务框架-其他

    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能...修复方法注释回调不起作用的问题当它不是原始类型对象时处理 TypeDefinition#properties修复:支持延迟注释

Global site tag (gtag.js) - Google Analytics