Docker容器上Spring Cloud微服务相互调用时报错:java.net.UnknownHostException:主机名详解编程语言
2023-06-13 09:20:47 时间
项目背景:
采用Spring Cloud+IEDA+Maven搭建了由多个微服务组成的项目,部署上线是用的是Docker容器技术。
问题描述:部署上线过程中,各个微服务都正常启动,而且都注册到了eureka注册中心,但是相互调用时报java.net.UnknownHostException:主机名的错误。
原因分析:各个微服务是以“主机名:服务名:端口”的形式注册到注册中心。当本地测试时,主机是同一个,为localhost,所以能找到主机并相互调用。当部署上线时,每个微服务运行在不同主机,主机名都各不相同,所以调用时找不到目标主机在哪。
解决方法:让微服务以“ip:端口”的形式注册,这里的ip指的是部署的主机ip。
我的Spring Cloud版本:
spring-cloud.version Finchley.SR1 /spring-cloud.version
在application.properties中添加
eureka.instance.prefer-ip-address=true eureka.instance.instance-id=ip地址:端口
其中,ip地址可以更换为http://域名,亲测可用。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16273.html
cjavaxml相关文章
- java vo 什么意思_在Java中VO , PO , BO , QO, DAO ,POJO是什么意思
- java分布式框架_5个强大的Java分布式缓存框架推荐
- java高级工程师_一名Java高级工程师需要学什么?
- java中用关键字定义常量_定义常量用什么关键字
- java数组 初始化_用Java初始化数组「建议收藏」
- Spring循环依赖-spring源码详解(四)
- Java 近期新闻:NetBeans 17、Spring 及 Tomcat 多项更新、JDk 20 版本 GraalVM
- 【Java 虚拟机原理】垃圾回收算法 ( 可达性分析算法 | GC Root 示例 | GC 回收前的两次标记 | finalize 方法示例 )
- 零基础上手丨在Spring Boot中整合热门Java技术
- Java问题-java进程占用内存过高,排查原因详解编程语言
- java spring boot 拦截器 实现未登录用户不能登录详解编程语言
- JAVA获取时间戳,哪个更快详解编程语言
- 程序Linux命令调用Java程序实现交互(linux命令java)
- 检查深入探索Redis与Java过期数据安全检查(redisjava过期)
- Java与Oracle的连接方式(java连oracle)
- 程序Oracle调用Java程序的实现方法(oracle调用java)
- Java实现嵌入式MySQL的新解决方案(java嵌入式mysql)
- 如何在Linux系统中安装Java(linux中安装java)
- Java与Oracle 一种天生的结合(java属于oracle)
- 的应用Java在Oracle数据库中的重要性及应用(java在oracle里)
- 项目Java项目中展现Redis新型性能优势(redis运用在java)