客户端启动报UnknownHostException异常:
Caused by: java.lang.RuntimeException: get localhost fail
at com.alibaba.rocketmq.common.MixAll.localhost(MixAll.java:458)
at com.alibaba.rocketmq.common.MixAll.<clinit>(MixAll.java:82)
... 11 more
Caused by: java.net.UnknownHostException: iZ231wxgt6mZ: iZ231wxgt6mZ: unknown error
at java.net.InetAddress.getLocalHost(InetAddress.java:1484)
at com.alibaba.rocketmq.common.MixAll.localhost(MixAll.java:454)
... 12 more
ONS 客户端启动会首先获取本地地址, 如果出现这类异常,可按照如下方式进行排查:
1. 在报错机器上执行查看主机名命令:
[root@iZ231wxgt6mZ ~]# hostname iZ231wxgt6mZ
2. ping主机:
[root@iZ231wxgt6mZ ~]# ping iZ231wxgt6mZ
如果无法正常ping通主机名,则需要将本机地址 绑定 到 /etc/hosts文件中。 默认 ECS 机器都会有一个本地地址和主机名的绑定关系,切勿手动的将其去除。
3. 检查/etc/sysconfig/network 中的记录的hostname是否和/etc/hosts中的主机名绑定一致,如果不一致请确保一致。 如果需要修改/etc/sysconfig/network中的内容, 修改 后需要重启机器才能生效。 推荐不要随意修改 系统 文件里的 配置 ,可以会引发一些其他诡异 问题 。
以上三部确认ok后,客户端启动就不在会报 UnknownHostException 的异常了。