Couchbase Client (Java) IlegalStateException -检查对象的有效性



我使用Apache Commons Pool来存储一组Couchbase客户端。当做负载测试时(但仍然是小负载),在几千次操作后(使用100个连接池),一些Couchbase客户端对象开始抛出IlegalStateException,然后关闭。

我想知道是否有一种方法来检查一个CouchbaseClient对象是否仍然有效。当从对象调用"set"操作时生成Exception,因此检查客户端是否有效将是一个可接受的解决方案。

我仍然不确定异常的起源是什么。但是,当我在返回池之前对客户机进行某种验证时,问题就不再发生了。问题是这种验证(调用set操作来测试客户端是否正常工作)过于粗暴,会影响性能。我想找到一个更流畅的方法来检查这个

IllegalStateException最常见的原因是无法向输入队列添加操作。请参阅Couchbase Java开发人员指南中的防弹期货和监听器部分,了解如何处理它。

注意100个CouchbaseClient对象是很多!一般来说,每个应用程序不需要超过一个或两个CouchbaseClient对象——推荐的用例是异步的,并且有一个内部线程池来处理实际的低级操作。

我建议你看一下Couchbase Java开发人员指南,特别是关于理解和使用异步操作的部分。

最新更新