微服务注册ip地址竟然不是本机地址?

1、现象
在微服务中心,注册的IPaddr是我的网关地址,这让我很是疑惑
在这里插入图片描述
通过访问发现,我也是通过这个地址去访问服务的
在这里插入图片描述
2、提出的疑问
在我WIFI网卡的发现的网关,惊人的一致,我裂开了
在这里插入图片描述
3、在properties配置中加了点东西,强制使用了本机的IP进行注册

#这个是使用源地址   192.168.0.1 是代理地址
spring.cloud.consul.discovery.prefer-agent-address=true

看了一下注册中心,我笑了,这是什么鬼,之前做了那么多小项目都没出现这种情况,这让我很慌,难以相信自己的钛合金靓眼。
在这里插入图片描述
注:如果有看到的兄弟,麻烦私信解释一下为啥我这注册的是个网关地址,或者等我之后了解到了再来解决。

可以使用拦截器(Interceptor)来实现微服务的AOP,记录登录设备ID、登录IP和登录地址。在拦截器中,可以通过HttpServletRequest对象获取登录设备ID、登录IP和登录地址等信息,然后将这些信息记录到日志中或者存储到数据库中。 以下是一个示例代码: ```java public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 获取登录设备ID String deviceId = request.getHeader("deviceId"); // 获取登录IP String ip = request.getRemoteAddr(); // 获取登录地址 String address = getAddressByIp(ip); // 记录登录信息 log.info("用户登录,设备ID:{},IP:{},地址:{}", deviceId, ip, address); return true; } private String getAddressByIp(String ip) { // 根据IP地址获取地理位置信息 // TODO:实现获取地理位置信息的逻辑 return ""; } } ``` 在使用时,需要将LoginInterceptor注册微服务的拦截器链中。例如,在Spring Boot中可以通过@Configuration注解和WebMvcConfigurer接口来实现: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Autowired private LoginInterceptor loginInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(loginInterceptor).addPathPatterns("/**"); } } ``` 这样,当有请求进入微服务时,LoginInterceptor会被拦截器链调用,从而实现记录登录设备ID、登录IP和登录地址的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值