java110
2022-02-20 6259166c380d443c7b03184452833121942cb148
调用链加入 开关
3个文件已修改
2个文件已添加
67 ■■■■■ 已修改文件
java110-core/src/main/java/com/java110/core/trace/ApiLogAop.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/trace/Java110TraceConfigurer.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/trace/Java110TraceHandlerInterceptor.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/constant/EnvironmentConstant.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/trace/ApiLogAop.java
New file
@@ -0,0 +1,7 @@
package com.java110.core.trace;
/**
 * api 服务抓日志
 */
public class ApiLogAop {
}
java110-core/src/main/java/com/java110/core/trace/Java110TraceConfigurer.java
@@ -26,16 +26,16 @@
        super.addInterceptors(registry);
    }
    @Bean
    @ConditionalOnBean(Java110FeignClientInterceptor.class)
    public okhttp3.OkHttpClient okHttpClient(@Autowired
                                                     Java110FeignClientInterceptor okHttpLoggingInterceptor){
        okhttp3.OkHttpClient.Builder ClientBuilder = new okhttp3.OkHttpClient.Builder()
                .readTimeout(30, TimeUnit.SECONDS) //读取超时
                .connectTimeout(10, TimeUnit.SECONDS) //连接超时
                .writeTimeout(60, TimeUnit.SECONDS) //写入超时
                .connectionPool(new ConnectionPool(10 /*maxIdleConnections*/, 3, TimeUnit.MINUTES))
                .addInterceptor(okHttpLoggingInterceptor);
        return ClientBuilder.build();
    }
//    @Bean
//    @ConditionalOnBean(Java110FeignClientInterceptor.class)
//    public okhttp3.OkHttpClient okHttpClient(@Autowired
//                                                     Java110FeignClientInterceptor okHttpLoggingInterceptor){
//        okhttp3.OkHttpClient.Builder ClientBuilder = new okhttp3.OkHttpClient.Builder()
//                .readTimeout(30, TimeUnit.SECONDS) //读取超时
//                .connectTimeout(10, TimeUnit.SECONDS) //连接超时
//                .writeTimeout(60, TimeUnit.SECONDS) //写入超时
//                .connectionPool(new ConnectionPool(10 /*maxIdleConnections*/, 3, TimeUnit.MINUTES))
//                .addInterceptor(okHttpLoggingInterceptor);
//        return ClientBuilder.build();
//    }
}
java110-core/src/main/java/com/java110/core/trace/Java110TraceFactory.java
@@ -6,8 +6,8 @@
import com.java110.dto.trace.TraceAnnotationsDto;
import com.java110.dto.trace.TraceDto;
import com.java110.dto.trace.TraceEndpointDto;
import com.java110.dto.trace.TraceParamDto;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.EnvironmentConstant;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.kafka.KafkaFactory;
import com.java110.utils.util.DateUtil;
@@ -96,7 +96,7 @@
        return threadLocal.get();
    }
    public static String createTrace(String name, Map<String, Object> headers, String reqData) {
    public static String createTrace(String name, Map<String, Object> headers) {
        String traceId = "";
        String parentId = "";
        if (headers.containsKey(CommonConstant.TRACE_ID)) { //先取trace Id
@@ -111,11 +111,17 @@
        } else {
            parentId = "0";
        }
        return createTrace(name, traceId, parentId, TraceAnnotationsDto.VALUE_CLIENT_SEND, JSONObject.toJSONString(headers), reqData);
        return createTrace(name, traceId, parentId, TraceAnnotationsDto.VALUE_CLIENT_SEND);
    }
    public static String createTrace(String name, String traceId, String parentId, String event, String reqHeader, String reqData) {
    public static String createTrace(String name, String traceId, String parentId, String event) {
        //初始事件
        Environment environment = (Environment) ApplicationContextFactory.getBean(Environment.class);
        //判断调用链是否打开
        if (!EnvironmentConstant.TRACE_SWITCH_ON.equals(environment.getProperty(EnvironmentConstant.TRACE_SWITCH))) {
            return "";
        }
        //全局事务开启者
        TraceDto traceDto = new TraceDto();
        traceDto.setId(GenerateCodeFactory.getUUID());
@@ -123,8 +129,6 @@
        traceDto.setParentSpanId(parentId);
        traceDto.setTimestamp(DateUtil.getCurrentDate().getTime());
        //初始事件
        Environment environment = (Environment) ApplicationContextFactory.getBean(Environment.class);
        TraceAnnotationsDto traceAnnotationsDto = new TraceAnnotationsDto();
        TraceEndpointDto traceEndpointDto = new TraceEndpointDto();
        traceEndpointDto.setServiceName(environment.getProperty("spring.application.name"));
@@ -146,10 +150,6 @@
        traceAnnotationsDtos.add(traceAnnotationsDto);
        traceDto.setAnnotations(traceAnnotationsDtos);
        traceDto.setTraceId(traceId);
        TraceParamDto traceParamDto = new TraceParamDto();
        traceParamDto.setReqHeader(reqHeader);
        traceParamDto.setReqParam(reqData);
        put(traceDto.getId(), traceDto);
        putSpanId(SPAN_ID, traceDto.getId());
java110-core/src/main/java/com/java110/core/trace/Java110TraceHandlerInterceptor.java
@@ -1,6 +1,5 @@
package com.java110.core.trace;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.log.LoggerFactory;
import com.java110.dto.trace.TraceAnnotationsDto;
import org.slf4j.Logger;
@@ -9,9 +8,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
@@ -37,7 +33,7 @@
            headers.put(headerName.toLowerCase(), request.getHeader(headerName));
        }
        //调用链logSwatch
        Java110TraceFactory.createTrace(url, headers,"");
        Java110TraceFactory.createTrace(url, headers);
        return true;
    }
java110-utils/src/main/java/com/java110/utils/constant/EnvironmentConstant.java
New file
@@ -0,0 +1,10 @@
package com.java110.utils.constant;
public class EnvironmentConstant {
    // 调用链开关
    public static final String TRACE_SWITCH = "trace_switch";
    // 调用链打开
    public static final String TRACE_SWITCH_ON = "ON";
}