问题描述
在多网卡(虚拟网卡,云服务器内网/外网)的情况下,微服务注册的IP,不是有效IP,造成服务不可用
处理思路
解决方法:
- 服务器配置hosts
- 代码或者配置里规定IP
两种办法维护太麻烦
我的方式:
- 自动解析当前的有效IP并使用此IP注册
代码
提供获取有效/外网IP接口
// 接口 /** * IP * @return */ @GetMapping("/ip") public Object ip(HttpServletRequest request) { return RequestUtil.getIpAddress(request); } // 工具方法 /** * ip * @param request * @return */ public static String getIpAddress(HttpServletRequest request) { return getIpAddressList(request).get(0); } /** * ip * @param request * @return */ public static List<String> getIpAddressList(HttpServletRequest request) { List<String> list = Lists.newArrayList(); String xip = request.getHeader("x-forwarded-for"); if (!checkIP(xip)) {