【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel

客户端,Azure,Unable ,to · 浏览次数 : 291

小编点评

**问题描述:** Redisson客户端无法连接 Azure 服务,因为它无法发送 PING 命令到 Redis 服务端。 **问题原因:** StacklessClosedChannelException Channel 已经关闭,在 pingConnectionInterval 设定的时间内无法获取到 Redis 服务心跳返回 (PING/PONG)。 **排查步骤:** 1. **检查网络状态:**使用 `System.out.println(socket.toString())` 打印客户端和服务端之间的 IP 地址和端口。 2. **检查 Redisson 配置:**确保 Redisson 配置中设置正确的 Redis 地址和端口。 3. **检查网络连接:**使用 `PingUtils.isReachable(host, port)` 检查客户端能否正常连接到 Redis 服务端。 4. **检查日志:**查看 Redisson 和 Redis 服务端日志,以获取更多错误信息。 5. **调试:**使用 `RedissonClient.builder().build()` 创建客户端,并尝试连接到 Redis 服务端。 **参考资料:** * **StacklessClosedChannelException:**表示通道已经关闭。 * **Unable to send PING command over channel:**说明客户端无法发送 PING 命令到服务端。 * **Redisson 3273:**指向无法发送 PING 命令的错误。 * **Redisson 3072:**指向连接失败的错误。

正文

问题描述

Redission客户端连接Azure:客户端出现 Unable to send PING command over channel ... ...  io.netty.channel.StacklessClosedChannelException: null at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)

 

问题解答

这个问题主要是 StacklessClosedChannelException Channel 已经关闭,在 pingConnectionInterval  设定的时间内无法获取到Redis服务心跳返回(PING/PONG), 主要的排查方向为检查 客户端Redis服务端 的网络状态。 

 

参考资料

Unable to send PING command over channel: [id: 0xcffcc397, L:/10.16.18.65:57542 ! R:/10.18.8.156:6380] #3273 : https://github.com/redisson/redisson/issues/3273

Unable to send PING command over channel #3072 : https://github.com/redisson/redisson/issues/3072

与【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel 相似的内容:

【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel

问题描述 Redission客户端连接Azure:客户端出现 Unable to send PING command over channel ... ... io.netty.channel.StacklessClosedChannelException: null at io.netty.cha

【Azure Redis 缓存】对于Azure Redis 从 Redis 4 升级到 Redis 6 的一些疑问

问题描述 使用Azure Redis服务,客户端使用Redisson 3.X , 在近期Microsoft Azure对Redis服务进行大规模变动升级( Redis 版本由 4 升级到 6),对于这次升级的影响有以下的问题? 问题解释 问题一:Redis 6.0 和 Redisson 3.X 之间

【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务

问题描述 在 Spring Boot 项目中,使用 Redisson 连接 Azure Redis 服务,如下是详细的操作步骤(项目源代码文末可下载) 示例步骤 第一步: 在 Spring Boot 的项目中,添加 redisson-spring-boot-starter 依赖 在项目的pom.xm

【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题

问题描述 Azure Cache for Redis 服务在传输和存储数据时是如何加密呢? 问题回答 一:关于Azure cache for Redis服务在数据传输过程中是如何加密的? 为了确保在Azure cache for Redis和客户端应用程序之间传输的数据安全,需要启用TLS加密。Az

【Azure Redis 缓存】Redis 连接失败

问题描述 Azure Redis 出现连接失败,过一会儿后,又能自动恢复。 问题解答 其实,因为Azure Redis服务一直都有升级维护的操作(平均每月一次),Redis服务更新是平台自动进行的计划内的维护升级行为,一般客户端都有重试机制,是不会影响应用。 故障转移发生的情况有: 系统更新,例如

【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?

问题描述 在Azure Redis服务中,如何实现只允许Azure App Service访问呢? 问题解答 Azure Redis 开启 防火墙的功能,并在防火墙中添加上App Service的出口IP地址即可。两步即可实现此目的! 1)查询 App Service 的出口IP地址 2)添加第1步

【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?

问题描述 使用6379端口连接Azure Redis服务,连接失败。因为默认情况下Azure Redis的设置没有打开6379的端口。需要使用SSL(6380端口)进行连接,但是遇见了无法连接的问题。 使用非SSL(6379端口)的连接代码

【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题

问题描述 在Java应用中,使用 Lettuce 作为客户端SDK与Azure Redis 服务连接,当遇见连接断开后,长达15分钟才会重连。导致应用在长达15分的时间,持续报错Timeout 问题解答 这是 Lettuce 目前的一个未解决的已知问题,可以查看此 github issue来了解这个

【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)

问题描述 使用StackExchange.Redis 作为Redis客户端SDK,连接Azure Redis服务,长期运行后发现,每天都偶发 Timeout Error。 错误消息如下: StackExchange.Redis.RedisTimeoutException: Timeout perfo

【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?

问题描述 在安全级别要求高的公司中,任何系统都会进行安全扫描。比如Azure 云上的Redis服务,也在扫描的范围中,最后发现Redis 4.0存在以下漏洞: CVE-2019-10192:https://nvd.nist.gov/vuln/detail/CVE-2019-10192 CVE-201