当前位置: 首页 > 知识库问答 >
问题:

在应用程序中使用多个 Java 客户端获取 Aerospike 超时

宇文俊明
2023-03-14

目前,我正在我的应用程序中使用Aerospike。当我为每个事务创建新的 java 客户端时,我遇到了很多超时问题,如下所示,我没有关闭它,因此连接数量急剧增加。

Aerospike Error: (9) Client timeout: timeout=1000 iterations=1 failedNodes=0 failedConns=0

所以为了解决这个超时问题,我没有对客户端、读写策略进行任何更改,我只创建了一个客户端,将其实例存储在某个变量中,并将同一个客户端用于所有事务(获取或放置请求)。现在我想了解从多个客户端移动到一个客户端如何解决我的超时问题。这些连接如何不自动关闭。

共有2个答案

荀学文
2023-03-14

客户端执行的不仅仅是应用程序的事务。它还监视群集的更改,以便它可以为每个事务维护一个跃点。另外,我相信当我们初始化客户端时,我们会创建一个初始的套接字池。

预计大多数应用只需要一个全局客户端。

宿楚青
2023-03-14

AerospikeClient 构造函数为集群中的所有节点请求对等节点、分区映射和机架,并初始化连接池和异步事件循环。这是一个昂贵的过程,只意味着在应用程序启动时每个集群执行一次。AerospikeClient 是线程安全的,因此可以在线程之间共享实例。

如果未调用 AerospikeClient close(),则驻留在池中的连接(每个节点至少有一个连接池)将不会关闭。在 AerospikeClient 中没有 finalize() 方法。

第一个事务通常需要创建新连接。这会增加延迟,并可能导致超时。

 类似资料:
  • 问题内容: 我已经将网站托管在本地服务器上,并且该网站可以由多个本地用户访问,并且当他们尝试访问Java代码时,我希望当他们访问特定页面时获得访问此页面的客户端/用户的os用户: 它获取服务器而不是客户端的操作系统用户名。 请告知如何完成该任务,谢谢。 问题答案: 使用java方法就可以了。

  • 我有一个与其他几个服务交互的服务。因此,我为它们创建了单独的webclients(因为BasePath不同)。我已经根据https://docs.spring.io/spring/docs/5.1.6.release/spring-framework-reference/web-reactive.html#webflux-client-builder-reactor-timeout分别为它们设置了

  • 我需要一个用于java spring应用程序的graphQL客户端,以与另一个基于graphQL API的微服务通信。我知道Apollo Android,但它似乎没有用maven实现(也许你知道maven的一些链接或示例等)。有什么想法和建议吗?提前感谢!

  • 问题内容: 我在Javascript中使用以下代码进行Ajax调用: 我也想在Java中做到这一点。基本上,我想编写一个Java客户端应用程序,该应用程序通过Ajax调用将该数据发送到服务器。 如何在Java中执行Ajax? 问题答案: AJAX与任何其他HTTP调用均没有不同。您基本上可以从Java发布相同的URL,就目标服务器而言,这无关紧要: 上面的代码或多或少与您的jQuery AJAX调

  • 问题内容: 我对React还是很陌生,我正在开发一个应用程序,它将获取网页的实际屏幕截图,并且该应用程序可以在所截取的屏幕截图之上绘制并添加涂鸦。最初,我使用html2canvas和domToImage拍摄客户端屏幕快照,但它无法完全呈现网页中显示的图像。 Reddit用户/ pamblam0建议我调查Google的Puppeteer。它的工作方式是启动无头铬浏览器,该浏览器转到我在本地主机上的r

  • 我已经阅读了问题和答案,Vaadin7应用程序中推送的最小示例(“@Push”)。现在我需要一个更健壮的现实例子。首先,我知道在Servlet环境中拥有一个永无止境的线程不是一个好主意。 我不希望每个用户都有自己的线程,每个人都自己访问数据库。只有一个线程检查数据库中的新数据似乎更合乎逻辑。当找到时,线程应该将新数据发布到所有等待更新的用户的UI/布局中。

  • 我正在用spring boot微服务配置Keycloak SSO。我希望多个keycloak客户端访问Spring Boot服务。如果在Spring Boot应用程序中使用Keycloak适配器,则required属性只支持一个客户机和secret。如何在运行时在spring boot app中添加多个客户端? 我在中使用了以下适配器 以下是在中配置的 动态客户机注册可用于spring boot

  • 我在Aerospike数据库中有一个名称空间:test and set:user。我通过控制台上的以下命令在users中添加了四条记录: 通过aql命令,我可以查看这四条记录。aql 我知道一个接一个地获取记录的方法,它在我这边运行得很好,但这对于我的任务来说是非常昂贵的操作。我想读取多个记录(批读取)并对其执行多个算法。我从https://www.aerospike.com/docs/clien