如何设置Phoenix瘦驱动程序的超时



我正在使用Spring Boot开发一个微服务,并使用Phoenix瘦驱动程序查询HBase表。

我想将超时设置为2分钟,但设置被忽略:

Properties prop = new Properties();
prop.put(HConstants.HBASE_RPC_TIMEOUT_KEY, "120000");
prop.put(HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD, "120000");
prop.put(HConstants.HBASE_RPC_READ_TIMEOUT_KEY, "120000");
prop.put(HConstants.HBASE_CLIENT_RETRIES_NUMBER, "3");
Connection connection = DriverManager.getConnection("jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF", prop);

为了测试这个场景,我启动了Phoenix查询服务器,但没有启动HBase服务器。之后,我通过Phoenix向HBase查询,等待2分钟后的超时,但这并没有发生。

也许有一种不同的方法可以使Phoenix查询超时。如果是的话,我将非常感谢你的建议

事先非常感谢。

你试过设置吗

phoenix.query.timeoutMs   Client-side property specifying the number of milliseconds after which a query will timeout on the client.

默认值为10分钟600000

props.setProperty(QueryServices.THREAD_TIMEOUT_MS_ATTRIB,"600000");

此处记录:https://phoenix.apache.org/tuning.html

QueryServices.java在这里:https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java

嗨,Ramachandran,非常感谢您的回答。

我尝试了你的建议,超时值为10秒,但超时没有触发。

props.setProperty(QueryServices.THREAD_TIMEOUT_MS_ATTRIB,"10000");
Connection connection = DriverManager.getConnection("jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF", props);

我的测试场景与最初问题中描述的场景相似。

我认为问题是Phoenix查询服务器长时间试图连接到HBase,也许这就是驱动程序没有触发超时的原因。

也许在Phoenix查询服务器上需要进行一些配置。

你知道可能会发生什么吗

再次非常感谢你的帮助。

最新更新