微服务内部通信之白名单
发布时间:2020-12-15 07:14:13 所属栏目:Java 来源:网络整理
导读:微服务通信的方式有很多,有的用Socket,也有用一些HTTP客户端工具类,还有的有现成的组件如SpringCloud Open-Feign等。 这些共同点都是通信。 不同服务之间的通信涉及很多方面,比分说内网访问,外网不能访问等。 那么微服务如何实现内部通信呢(这里说的是
微服务通信的方式有很多,有的用Socket,也有用一些HTTP客户端工具类,还有的有现成的组件如SpringCloud Open-Feign等。 这些共同点都是通信。 不同服务之间的通信涉及很多方面,比分说内网访问,外网不能访问等。 那么微服务如何实现内部通信呢(这里说的是内网通信,外网不能访问)? public class IPInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception { String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); if ("127.0.0.1".equals(ip)) { System.out.println(内部IP放行); return true; } else { System.外部IP禁止访问); JSONObject jsonObject = new JSONObject(); jsonObject.put(code",403); jsonObject.put(msgNot Allowed); response.getWriter().append(jsonObject.toJSONString()); false; } } @Override void postHandle(HttpServletRequest request,Object handler,ModelAndView modelAndView) throws Exception { } @Override afterCompletion(HttpServletRequest request,Exception ex) throws Exception { } } 采用拦截器机制后,对应的feign组件URL指向改为如下即可(主要是@FeignClient属性中的url): @FeignClient(contextId = userApiServicehttp://127.0.0.1:2020) @RestController interface UserApiService { @GetMapping(/blog_user/list) String queryUserList(); } ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |