我有一个AWSRedis集群,集群模式已启用,静态/传输加密已启用,传输加密模式首选。
我使用的是Java Spring和redisson
版本3.12.0。
下面是我使用redisson
的连接:
redissonConfig.useClusterServers()
.setKeepAlive(true)
.setConnectTimeout(10000)
.setRetryAttempts(2)
.setDnsMonitoringInterval(10000)
.addNodeAddress("Redis configuration endpoint");
client = Redisson.create(redissonConfig);
我使用这个Redis端点:rediss://ConfigurationEndpoint
当尝试使用AWSEC2和Jposs从应用程序连接到群集时,我会遇到此异常java.nio.channels.ClosedChannelException
,我还看到以下异常
[2023-04-15 14:46:22,296] [redisson-netty-2-3] [WARN] ChannelInitializer- Failed to initialize a channel. Closing: [id: 0x77267167]
io.netty.channel.ChannelPipelineException: io.netty.handler.ssl.SslHandler.handlerAdded() has thrown an exception; removed.
at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:624) ~[netty-transport-4.1.46.Final.jar:4.1.46.Final]
at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:223) ~[netty-transport-4.1.46.Final.jar:4.1.46.Final]
at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:381) ~[netty-transport-4.1.46.Final.jar:4.1.46.Final]
at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:370) ~[netty-transport-4.1.46.Final.jar:4.1.46.Final]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_362]
Caused by: java.lang.NoSuchFieldError: TCP_FASTOPEN_CONNECT
at io.netty.handler.ssl.SslHandler.handlerAdded(SslHandler.java:1979) ~[netty-handler-4.1.72.Final.jar:4.1.72
[redisson-netty-2-3] [WARN] ChannelInitializer- Failed to initialize a channel. Closing: [id: 0xe1c3fece]
io.netty.channel.ChannelPipelineException: io.netty.handler.ssl.SslHandler.handlerAdded() has thrown an exception; removed.
我花了超过15个小时试图解决这个问题没有运气,我也在互联网上搜索这样的错误没有结果,感谢您的支持,如果你有任何想法。
谢谢
2条答案
按热度按时间brqmpdu11#
原因:java.lang.NoSuchFieldError:TCP_FASTOPEN_PROTECT
它告诉您在classpath中可能有不同的netty版本
uklbhaso2#
我将回答我的问题,我能够通过升级io.netty解决这个问题。版本到4.1.72.Final,如下所示
主要问题是io.netty版本冲突,我在应用程序中使用了多个版本。