Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在网络问题持续一段时间的情况下与远程Hbase服务器的客户端连接_Java_Multithreading_Hbase - Fatal编程技术网

Java 在网络问题持续一段时间的情况下与远程Hbase服务器的客户端连接

Java 在网络问题持续一段时间的情况下与远程Hbase服务器的客户端连接,java,multithreading,hbase,Java,Multithreading,Hbase,我使用表接口()和连接接口()来获取表对象。但正如连接接口链接中提到的,“连接创建是一项繁重的操作。连接实现是线程安全的,因此客户端可以创建一次连接,并与不同的线程共享它。” 所以,如果我为所有线程创建一个连接对象(在静态块中创建此对象),那么如果出现一些网络问题,并且客户端与hbase群集的连接丢失一段时间,会发生什么情况呢。连接对象在此之后是否仍能工作?如果连接丢失,并在某个特定时间段(TCP超时)前再次返回,则一切正常 因为在客户端和hbase之间建立了TCP连接。同样如文档中所述,“到服

我使用表接口()和连接接口()来获取表对象。但正如连接接口链接中提到的,“连接创建是一项繁重的操作。连接实现是线程安全的,因此客户端可以创建一次连接,并与不同的线程共享它。


所以,如果我为所有线程创建一个连接对象(在静态块中创建此对象),那么如果出现一些网络问题,并且客户端与hbase群集的连接丢失一段时间,会发生什么情况呢。连接对象在此之后是否仍能工作?

如果连接丢失,并在某个特定时间段(TCP超时)前再次返回,则一切正常

因为在客户端和hbase之间建立了TCP连接。同样如文档中所述,“到服务器的单独连接、元缓存、zookeeper连接等都由从该连接获得的表和管理实例共享”,如果我们在网络无法访问时发送了数据,数据将出现在缓冲区中,客户端将尝试重新传输该段,当网络恢复时,hbase将获得该数据


但是,如果网络在一定时间(TCP超时)之前无法访问,那么TCP最终会放弃并关闭套接字。对于这种情况,您必须放置一些catch块来处理此问题,或者需要重新启动jar。

您好,我想知道您是否明白了这一点?我在单线程上进行了测试,如果连接丢失并再次恢复,则连接似乎可以正常工作。如果你做过其他实验,我很想知道!谢谢