问题标签 [vertx-redis-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
244 浏览

java - 如何从“没有处理程序等待消息”警告中恢复客户端?

在中高负载(测试和生产)下,使用 Vert.x Redis 客户端时,我在数百个请求后收到以下警告。

2019-11-22 11:30:02.320 [vert.x-eventloop-thread-1] WARN io.vertx.redis.client.impl.RedisClient - No handler waiting for message: [null, 400992, <data from redis>]

因此,提供给 Redis 调用(见下文)的处理程序不会被调用,并且传入的请求会超时。

真正的问题是,一旦出现“No handler ...”警告,Redis 客户端就变得毫无用处,因为通过客户端对 Redis 的所有进一步调用都会失败,并出现相同的警告,导致处理程序没有被调用。我在客户端上设置了一个异常处理程序来尝试重新连接,但我没有看到任何正在尝试的重新连接。

如何从这个问题中恢复过来?任何减轻严重性的变通方法也很好。

我在 vertx-core 和 vertx-redis-client 3.8.1 。

0 投票
1 回答
746 浏览

vert.x - 使用 Vert.x-redis 和 Quarkus 构建本机映像的问题

使用 vertx-redis-client 在本机模式下构建我的 quarkus 应用程序时遇到问题

我正在尝试使用连接、设置和添加的方法创建一个缓存类。当我使用 set 和 get 方法时,我试图打开一个新的 redis 连接。

使用 ./mvnw compile quarkus:dev 应用程序运行正常。但是,当我尝试构建本机映像时,我收到错误:

我的缓存类:

0 投票
0 回答
133 浏览

java - 如何停止vertx线程?

所以情况是这样的:我正在使用 vertx-redis 实现我们的 webapp 的缓存(我们以前使用lettuce)。非常简单的机制,我们在端点上使用了一个注释,它负责调用 redis 客户端(无论我们使用什么实现),如果给定键有缓存信息,它应该用作响应主体,并且请求应该不做任何处理就完成了。

但是 vertx-redis 实现有一个非常烦人的行为,其中结束请求并不会停止处理。我发出请求,得到快速响应,因为有缓存信息,但我仍然可以在日志中看到应用程序继续处理,就好像请求仍然打开一样。我相信这是因为我正在结束 Redis 客户端调用的处理程序内部的响应,如下所示:

我意识到如果我能做这样的事情,我也许可以重现以前的行为:

但众所周知,vertx-redis 是一个语义 API,每个方法都返回相同的 RedisClient 实例。我也想过做这样的事情:

真的不知道该怎么办,有没有办法将 AsyncResult 的内容返回给变量,或者以某种方式将其同步设置为变量?我也一直在寻找以某种方式阻止当前请求的整个流程的方法,但到目前为止找不到任何令人满意的、非激进的解决方案,但我也对这个选项持开放态度。

0 投票
1 回答
248 浏览

java - Vertx 3.9.0 是否支持 Redis Json?还有其他方法可以实现吗?

我正在使用 Vertx 3.9.0,我正在尝试从 redis 服务器获取密钥的 json 数据。

我总是得到WRONGTYPE Operation against a key holding the wrong kind of value

我想知道 Redis Json 支持是否由提供vertx-redis-client:3.9.0?如果不是,那么从 Redis 查询 Json 数据的替代方法是什么。

0 投票
0 回答
44 浏览

vertx-redis-client - 如何用好vertx-redis-client?版本是 4.1.2

当我写下面的代码时,发现输入了大量的数据,无法正常工作。原因如下:

Future{cause=连接池达到最大等待队列大小 200};

所有数据都被丢弃。怎样才能保证一条数据不丢失并正确使用呢?

Future{cause=连接池达到最大等待队列大小 2000}

0 投票
1 回答
48 浏览

vert.x - Vertx 4.2.1 Redis ConfigReader 问题

使用 redis 6.2.6 作为配置服务器时遇到一些奇怪的问题。使用 HSET 命令存储配置

HSET appt-src-svc-local vertx '{"listen.port": 8080}' HSET appt-src-svc-local mongo '{"host":"127.0.0.1", "port":27017}' .. .

使用 Redis 4 时,可以正确检索配置。如果我们切换到 V 6.2.6,RedisConfigStore 将无法正确解析 Response。

任何帮助都感激不尽。

TIA