项目场景
项目中使用 spring-boot-starter-data-redis
的 RedisTemplate
报错 Cannot create KQueueEventLoopGroup
问题描述
具体报错信息如下:
java.lang.IllegalStateException: Cannot create KQueueEventLoopGroup
at io.lettuce.core.KqueueProvider$AvailableKqueueResources.newEventLoopGroup(KqueueProvider.java:256)
at io.lettuce.core.KqueueProvider.newEventLoopGroup(KqueueProvider.java:113)
at io.lettuce.core.resource.DefaultEventLoopGroupProvider.createEventLoopGroup(DefaultEventLoopGroupProvider.java:153)
at io.lettuce.core.resource.DefaultEventLoopGroupProvider.getOrCreate(DefaultEventLoopGroupProvider.java:116)
at io.lettuce.core.resource.DefaultEventLoopGroupProvider.allocate(DefaultEventLoopGroupProvider.java:65)
at io.lettuce.core.AbstractRedisClient.getEventLoopGroup(AbstractRedisClient.java:187)
at io.lettuce.core.AbstractRedisClient.channelType(AbstractRedisClient.java:173)
at io.lettuce.core.RedisClient.connectStatefulAsync(RedisClient.java:304)
at io.lettuce.core.RedisClient.connectStandaloneAsync(RedisClient.java:271)
at io.lettuce.core.RedisClient.connect(RedisClient.java:204)
开始调试
根进去打个断点,发现错误的原型出来了
根据错误的原型去查对应的关键词,找到的解决方案如下
解决方案
最终的解决方案就是统一 netty 的 jar 版本,具体研究如下文章。
https://blog.csdn.net/lupengfei1009/article/details/103182625