Parcourir la source

增加rpc提供和消费时日志打印

shuzheng il y a 8 ans
Parent
commit
60f91a4225

+ 49 - 0
zheng-common/src/main/java/com/zheng/common/aspect/RpcLogAspect.java

@@ -0,0 +1,49 @@
+package com.zheng.common.aspect;
+
+import com.alibaba.dubbo.rpc.RpcContext;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.After;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Before;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * rpc提供者和消费者日志打印
+ * Created by ZhangShuzheng on 2017/4/19.
+ */
+public class RpcLogAspect {
+
+	private static Logger _log = LoggerFactory.getLogger(RpcLogAspect.class);
+
+	// 开始时间
+	private long startTime = 0L;
+	// 结束时间
+	private long endTime = 0L;
+
+	@Before("execution(* *..rpc..*.*(..))")
+	public void doBeforeInServiceLayer(JoinPoint joinPoint) {
+		_log.debug("doBeforeInServiceLayer");
+		startTime = System.currentTimeMillis();
+	}
+
+	@After("execution(* *..rpc..*.*(..))")
+	public void doAfterInServiceLayer(JoinPoint joinPoint) {
+		_log.debug("doAfterInServiceLayer");
+	}
+
+	@Around("execution(* *..rpc..*.*(..))")
+	public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
+		Object result = pjp.proceed();
+		// 是否是消费端
+		boolean consumerSide = RpcContext.getContext().isConsumerSide();
+		// 获取最后一次提供方或调用方IP
+		String ip = RpcContext.getContext().getRemoteHost();
+		// 服务url
+		String rpcUrl = RpcContext.getContext().getUrl().getParameter("application");
+		_log.info("consumerSide={}, ip={}, url={}", consumerSide, ip, rpcUrl);
+		return result;
+	}
+
+}

+ 4 - 0
zheng-upms/zheng-upms-client/src/main/resources/springMVC-servlet.xml

@@ -11,4 +11,8 @@
     <!-- 日志记录AOP实现 -->
     <bean class="com.zheng.upms.client.interceptor.LogAspect"/>
 
+
+    <!-- 日志记录AOP实现 -->
+    <bean class="com.zheng.common.aspect.RpcLogAspect"/>
+
 </beans>

+ 5 - 10
zheng-upms/zheng-upms-rpc-service/src/main/resources/META-INF/spring/applicationContext-dubbo-provider.xml

@@ -19,13 +19,11 @@
 
     <!-- 组织 -->
     <bean id="upmsOrganizationService" class="com.zheng.upms.rpc.service.impl.UpmsOrganizationServiceImpl"/>
-    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsOrganizationService" ref="upmsOrganizationService"
-                   timeout="10000"/>
+    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsOrganizationService" ref="upmsOrganizationService" timeout="10000"/>
 
     <!-- 用户组织 -->
     <bean id="upmsUserOrganizationService" class="com.zheng.upms.rpc.service.impl.UpmsUserOrganizationServiceImpl"/>
-    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserOrganizationService" ref="upmsUserOrganizationService"
-                   timeout="10000"/>
+    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserOrganizationService" ref="upmsUserOrganizationService" timeout="10000"/>
 
     <!-- 用户 -->
     <bean id="upmsUserService" class="com.zheng.upms.rpc.service.impl.UpmsUserServiceImpl"/>
@@ -37,18 +35,15 @@
 
     <!-- 权限 -->
     <bean id="upmsPermissionService" class="com.zheng.upms.rpc.service.impl.UpmsPermissionServiceImpl"/>
-    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsPermissionService" ref="upmsPermissionService"
-                   timeout="10000"/>
+    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsPermissionService" ref="upmsPermissionService" timeout="10000"/>
 
     <!-- 角色权限 -->
     <bean id="upmsRolePermissionService" class="com.zheng.upms.rpc.service.impl.UpmsRolePermissionServiceImpl"/>
-    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsRolePermissionService" ref="upmsRolePermissionService"
-                   timeout="10000"/>
+    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsRolePermissionService" ref="upmsRolePermissionService" timeout="10000"/>
 
     <!-- 用户权限 -->
     <bean id="upmsUserPermissionService" class="com.zheng.upms.rpc.service.impl.UpmsUserPermissionServiceImpl"/>
-    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserPermissionService" ref="upmsUserPermissionService"
-                   timeout="10000"/>
+    <dubbo:service interface="com.zheng.upms.rpc.api.UpmsUserPermissionService" ref="upmsUserPermissionService" timeout="10000"/>
 
     <!-- 用户角色 -->
     <bean id="upmsUserRoleService" class="com.zheng.upms.rpc.service.impl.UpmsUserRoleServiceImpl"/>