【问题标题】:Couchbase Client (Java) IlegalStateException - Check object validityCouchbase 客户端 (Java) IlegalStateException - 检查对象有效性
【发布时间】:2014-07-28 08:00:44
【问题描述】:

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

我想知道是否有办法检查 CouchbaseClient 对象是否仍然可以使用。当从对象调用“set”操作时会生成异常,因此检查客户端是否有效将是可接受的解决方案。

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

【问题讨论】:

    标签: java scalability couchbase


    【解决方案1】:

    IllegalStateException 的最常见原因是无法将操作添加到输入队列。请参阅 Couchbase Java 开发人员指南中的 Bullet-Proof Futures and Listeners 部分了解如何处理它。

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

    我建议查看Couchbase Java Developer Guide,特别是Understanding and Using Asynchronous Operations 部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 2014-09-02
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多