记一次Redisson连接k8s环境Redis报UnknownHostException-域名解析错误问题解决

这篇具有很好参考价值的文章主要介绍了记一次Redisson连接k8s环境Redis报UnknownHostException-域名解析错误问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

一直听说Redisson分布式锁好用,终于在项目上使用了!在本地测试完毕,一上测试环境,运维就反馈服务没起来,拉日志一看,是以下报错

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'restUtil' defined in URL [jar:file:/opt/app.jar!/BOOT-INF/classes!/com/xxx/util/RestUtil.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'getRedisson' defined in class path resource [com/xxx/config/RedissonConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'getRedisson' threw exception; nested exception is org.redisson.client.RedisConnectionException: java.net.UnknownHostException: failed to resolve 'redis-service.middleware.svc' after 3 queries 
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1197)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)

主要报错信息是

	Factory method 'getRedisson' threw exception; nested exception is org.redisson.client.RedisConnectionException: 
java.net.UnknownHostException: failed to resolve 'redis-service.middleware.svc' after 3 queries 

于是乎,上github看了一下,发现这还是一个比较热门dns解析失败的问题,好多人都遇到了同样的问题。想着开源项目,这么多人提出问题,肯定已经修复了,于是将3.16.0版本的Redisson升级到最新版本3.21.3,再上测试环境发现还是启动不起来,还是同样的报错。

于是就在那翻Redisson的Issues,试了好多种配置都不管。最后在https://github.com/redisson/redisson/issues/1625发现有个人提到,是这个提交引发的bug
记一次Redisson连接k8s环境Redis报UnknownHostException-域名解析错误问题解决,Spring Boot,Redisson,kubernetes,java,redis
而这个提交确实有dns相关的内容(提交链接)
记一次Redisson连接k8s环境Redis报UnknownHostException-域名解析错误问题解决,Spring Boot,Redisson,kubernetes,java,redis
因为以上代码的提交版本是3.5.6,于是乎将版本回退为3.5.5之后,问题解决。由于是刚刚使用Redisson,使用的地方不多,所以暂时采用这个方法解决了。猜想这个问题可能只在k8s环境使用k8s自带的Rredis域名时才有问题,正常的域名应该不会有问题吧?
各位如果有更好的解决办法,希望能够评论区留言一下!文章来源地址https://www.toymoban.com/news/detail-755899.html

到了这里,关于记一次Redisson连接k8s环境Redis报UnknownHostException-域名解析错误问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记录一次K8s 集群故障(路由&Calico)

    3节点测试集群 k8s 1.17 docker 19.03 每个节点2个网卡 : enp0s3  用来桥接无线网卡用来连接外网,因此IP不固定。 enp0s8  192.168.56.0/24 用来和其它节点互通 某一天开机 突然发现大量pod异常,异常的Pod 全部没有正常获取到IP, service也都打不开了。 检查控制平面 除了 kube-system下的a

    2024年02月22日
    浏览(46)
  • 记一次 Redisson 线上问题 → ERR unknown command 'WAIT' 的排查与分析

    昨晚和一个朋友聊天 我:处对象吗,咱俩试试? 朋友:我有对象 我:我不信,有对象不公开? 朋友:不好公开,我当的小三 程序在生产环境稳定的跑着 直到有一天,公司执行组件漏洞扫描,有漏洞的  jar  要进行升级修复 然后我就按着扫描报告将有漏洞的  jar  修复到指

    2024年02月09日
    浏览(53)
  • k8s下安装redis

     redis有两种部署方式:redis redis cluster,   详细内容参见 redis 17.11.6 · bitnami/bitnami 创建的master和replica pod的默认size是8Gi,如果k8s的node没有足够的空间,会抛出如下错误: default-scheduler  0/3 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 No

    2024年02月12日
    浏览(27)
  • 轻量级 K8S 环境、本地 K8S 环境Minikube,一键使用 (史上最全)

    文章很长,而且持续更新,建议收藏起来,慢慢读! 疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 : 《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 经典图书: 《Java高并发核心编程(卷1)加强版》

    2024年02月03日
    浏览(43)
  • k8s网络如何连接?

    在k8s中网络连接可以分为 容器与容器: 所有在pod中的容器表现为在同一个host,他们之间可以通过端口进行连接 pod与pod: 因为每个pod都有一个ip,因此pod可以通过ip进行直接连接 在不同主机上pod究竟是如何连接的呢?毕竟pod ip只是虚拟的,只能被本主机上pod访问的到,这将是本

    2024年02月10日
    浏览(42)
  • k8s容器化搭建redis集群

    k8s中有三台worker节点 192.168.1.100 192.168.1.101 192.168.1.102 创建配置字典,挂载redis的配置文件 key为redis.conf value为: 通过statefulset创建redis集群,有状态应用可以是副本之间有主从关系,数据需要做持久化。 在项目空间的 工作负载 - 有状态副本集 - 创建 进行 Redis 的创建。 基本信

    2024年02月06日
    浏览(31)
  • K8S如何部署Redis(单机、集群)

    在今天的讨论中,我们将深入研究如何将Redis数据库迁移到云端,以便更好地利用云计算的优势提高数据管理的灵活性。 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种数据结构,如字符串、列表、集

    2024年02月11日
    浏览(40)
  • Prometheus+Grafana监控K8S集群(基于K8S环境部署)

    1、服务器及K8S版本信息: IP地址 主机名称 角色 K8S版本 16.32.15.200 master-1 Master节点 v1.23.0 16.32.15.201 node-1 Node节点 v1.23.0 16.32.15.202 node-2 Node节点 v1.23.0 2、部署组件版本: 序号 名称 版本 作用 1 Prometheus v2.33.5 收集、存储和处理指标数据 2 Node_exporter v0.16.0 采集服务器指标,如CP

    2024年02月04日
    浏览(67)
  • K8S获取连接token

    下载或拷贝文件到主机上,vi k8s-admin.yml # kubectl apply -f k8s-admin.yml  报错,将rbac.authorization.k8s.io/v1beta1修改为rbac.authorization.k8s.io/v1 这是版本不一致的问题。修改完后,继续执行。  # kubectl -n kube-system get sa dashboard-admin -o yaml 生成一个secrets. 通过获取secrets的值,得到token值 获取

    2024年02月08日
    浏览(43)
  • 【K8S环境搭建】

    K8S环境搭建 [root@node2 ~]# yum install ntpdate -y 安装时间同步 [root@master ~]# ntpdate time.windows.com 开启时间同步 [root@node2 ~]# yum -y install ipset ipvsadm 安装ipset和ipsadm 关闭防火墙 systemctl disable firewalld systemctl stop firewalld 关闭selinux 临时禁用selinux setenforce 0 永久关闭 修改/etc/sysconfig/selinux文件

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包