dubbo 获取application和ip 打印日志,以便排查问题.

tomcat的Request层也需要打印日志目前是哪个Ip和哪个Flag. 其他日志都打印在然后按分钟切割日志.
  A. provider filter中 增加 1.请求方应用名 2.请求方ip
  B. consumer filter里增加 1. 提供方应用名 2.提供方ip

这样便于排查定位线上问题.
(1) 服务消费方
dubbo 获取application和ip 打印日志,以便排查问题.. 让对方有针对的去具体某个机器上去排查.
xxxService.xxx(); // 远程调用
boolean isConsumerSide = RpcContext.getContext().isConsumerSide(); // 本端是否为消费端,这里会返回true
String serverIP = RpcContext.getContext().getRemoteHost(); // 获取当前线程最后一次调用的提供方IP地址
String application = RpcContext.getContext().getUrl().getParameter( "application" ); // 获取当前服务配置信息(笔者注:为consumer,无法获取provider的application地址),所有配置信息都将转换为URL的参数
// ...
yyyService.yyy(); // 注意:每发起RPC调用,上下文状态会变化
// ...
(2) 服务提供方

public class XxxServiceImpl implements XxxService {
 
     public void xxx() { // 服务方法实现
         boolean isProviderSide = RpcContext.getContext().isProviderSide(); // 本端是否为提供端,这里会返回true
         String clientIP = RpcContext.getContext().getRemoteHost(); // 获取调用方IP地址
         String application = RpcContext.getContext().getUrl().getParameter( "application" ); // 获取当前服务配置信息(笔者注:provider还是consumer的未知,未验证!),所有配置信息都将转换为URL的参数
         // ...
         yyyService.yyy(); // 注意:每发起RPC调用,上下文状态会变化
         boolean isProviderSide = RpcContext.getContext().isProviderSide(); // 此时本端变成消费端,这里会返回false
         // ...
     }
 
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值