type
status
date
slug
summary
tags
category
icon
password
js
最近尝试Spring Cloud遇到的坑真是不少,没用Spring Boot基础,从0开始。
今天在本地跑的好好的,部署到服务器的时候,redis部分报错,连不上redis数据库,一开始以为是配置上出了问题,因为jedis默认连接localhost,而本地环境就是localhost。
调试了好久发现,izuf6exyy60ycw5yrdcco0z是阿里云ECS主机的主机名。
不会是,主机名解析不到IP吧。
默默地在hosts里加上一条解析
真的就解决了
总结:Linux下的/etc/hostname中可能会包含主机名,比如上面的izuf6exyy60ycw5yrdcco0z,而在/etc/hosts下面没有对应的映射。
深层的原因: 在大多数Linux操作系统中,都是以/etc/hosts中的配置查找主机名的,但是 Detian based system用/etc/hostname文件中的配置做主机名。
而Java 的InetAddress.java 调用 InetAddressImpl.java 的 public native String getLocalHostName() throws UnknownHostException; 来获取本地主机名, Java 的这个方法是native的,是本地系统的一个实现,所以在本地配置出现问题的情况下,Java 代码出现问题。
- 作者:吕行者
- 链接:https://www.lvy.life/article/2017/10/20/1761f2f0-5182-8050-95fb-cb87e5252e25
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。