feat: 1.3.0
1.优化代码 2.添加部分代码的描述
This commit is contained in:
parent
4916fad455
commit
c2aa5ba79a
@ -8,8 +8,12 @@ import com.aizuda.easy.retry.server.model.dto.RetryTaskDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.aizuda.easy.retry.common.core.constant.SystemConstants.HTTP_PATH.BATCH_REPORT;
|
||||
import static com.aizuda.easy.retry.common.core.constant.SystemConstants.HTTP_PATH.BEAT;
|
||||
import static com.aizuda.easy.retry.common.core.constant.SystemConstants.HTTP_PATH.CONFIG;
|
||||
|
||||
/**
|
||||
* netty 客户端请求服务端
|
||||
* netty 客户端请求类
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2023-05-11 21:28
|
||||
@ -17,13 +21,13 @@ import java.util.List;
|
||||
*/
|
||||
public interface NettyClient {
|
||||
|
||||
@Mapping(method = RequestMethod.GET, path = "/config")
|
||||
@Mapping(method = RequestMethod.GET, path = CONFIG)
|
||||
Result getConfig(Integer version);
|
||||
|
||||
@Mapping(method = RequestMethod.GET, path = "/beat")
|
||||
@Mapping(method = RequestMethod.GET, path = BEAT)
|
||||
Result beat(String mark);
|
||||
|
||||
@Mapping(method = RequestMethod.POST, path = "/batch/report")
|
||||
@Mapping(method = RequestMethod.POST, path = BATCH_REPORT)
|
||||
NettyResult reportRetryInfo(List<RetryTaskDTO> list);
|
||||
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.aizuda.easy.retry.client.core.client.netty;
|
||||
import com.aizuda.easy.retry.client.core.client.NettyClient;
|
||||
import com.aizuda.easy.retry.client.core.client.proxy.RequestBuilder;
|
||||
import com.aizuda.easy.retry.client.core.config.EasyRetryProperties;
|
||||
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
|
||||
import com.aizuda.easy.retry.common.core.context.SpringContext;
|
||||
import com.aizuda.easy.retry.common.core.log.LogUtils;
|
||||
import com.aizuda.easy.retry.common.core.model.NettyResult;
|
||||
@ -17,9 +18,14 @@ import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static com.aizuda.easy.retry.common.core.constant.SystemConstants.BEAT.PING;
|
||||
|
||||
/**
|
||||
* netty 客户端处理器
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 18:30
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Slf4j
|
||||
public class NettyHttpClientHandler extends SimpleChannelInboundHandler<FullHttpResponse> {
|
||||
@ -106,7 +112,7 @@ public class NettyHttpClientHandler extends SimpleChannelInboundHandler<FullHttp
|
||||
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
|
||||
LogUtils.debug(log,"userEventTriggered");
|
||||
if (evt instanceof IdleStateEvent) {
|
||||
client.beat("PING");
|
||||
client.beat(PING);
|
||||
} else {
|
||||
super.userEventTriggered(ctx, evt);
|
||||
}
|
||||
|
@ -13,6 +13,8 @@ import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* 处理请求服务端时需要存储的中间值
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2023-05-12 09:05
|
||||
* @since 1.3.0
|
||||
|
@ -1,26 +1,64 @@
|
||||
package com.aizuda.easy.retry.common.core.constant;
|
||||
|
||||
/**
|
||||
* 系统通用常量
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-04-17 10:47
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public class SystemConstants {
|
||||
public interface SystemConstants {
|
||||
|
||||
/**
|
||||
* 请求头 key
|
||||
*/
|
||||
public static final String EASY_RETRY_HEAD_KEY = "easy-retry";
|
||||
String EASY_RETRY_HEAD_KEY = "easy-retry";
|
||||
|
||||
/**
|
||||
* 异常重试码 key
|
||||
*/
|
||||
public static final String EASY_RETRY_STATUS_CODE_KEY = "easy-retry-status";
|
||||
String EASY_RETRY_STATUS_CODE_KEY = "easy-retry-status";
|
||||
|
||||
/**
|
||||
* 异常重试码
|
||||
*/
|
||||
public static final String EASY_RETRY_STATUS_CODE = "519";
|
||||
String EASY_RETRY_STATUS_CODE = "519";
|
||||
|
||||
/**
|
||||
* 心跳
|
||||
*/
|
||||
interface BEAT {
|
||||
/**
|
||||
* PING
|
||||
*/
|
||||
String PING = "PING";
|
||||
|
||||
/**
|
||||
* PONG
|
||||
*/
|
||||
String PONG = "PONG";
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求路径
|
||||
*/
|
||||
interface HTTP_PATH {
|
||||
|
||||
/**
|
||||
* 心跳请求
|
||||
*/
|
||||
String BEAT = "/beat";
|
||||
|
||||
/**
|
||||
* 同步配置
|
||||
*/
|
||||
String CONFIG = "/config";
|
||||
|
||||
/**
|
||||
* 批量上报
|
||||
*/
|
||||
String BATCH_REPORT = "/batch/report";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -21,8 +21,11 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
/**
|
||||
* netty server
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 15:54
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.aizuda.easy.retry.server.server.handler;
|
||||
|
||||
import cn.hutool.core.net.url.UrlQuery;
|
||||
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
|
||||
import com.aizuda.easy.retry.common.core.constant.SystemConstants.HTTP_PATH;
|
||||
import com.aizuda.easy.retry.common.core.log.LogUtils;
|
||||
import com.aizuda.easy.retry.server.support.handler.ClientRegisterHandler;
|
||||
import com.aizuda.easy.retry.common.core.model.NettyResult;
|
||||
@ -12,22 +14,22 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static com.aizuda.easy.retry.common.core.constant.SystemConstants.BEAT.PONG;
|
||||
|
||||
/**
|
||||
* 接收心跳请求
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 16:26
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class BeatHttpRequestHandler extends GetHttpRequestHandler {
|
||||
|
||||
@Autowired
|
||||
private ClientRegisterHandler clientRegisterHandler;
|
||||
|
||||
private static final String URI = "/beat";
|
||||
|
||||
@Override
|
||||
public boolean supports(String uri) {
|
||||
return URI.equals(uri);
|
||||
public boolean supports(String path) {
|
||||
return HTTP_PATH.BEAT.equals(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -39,6 +41,6 @@ public class BeatHttpRequestHandler extends GetHttpRequestHandler {
|
||||
public String doHandler(String content, UrlQuery query, HttpHeaders headers) {
|
||||
LogUtils.info(log,"Beat check content:[{}]", content);
|
||||
EasyRetryRequest retryRequest = JsonUtil.parseObject(content, EasyRetryRequest.class);
|
||||
return JsonUtil.toJsonString(new NettyResult("PONG", retryRequest.getReqId()));
|
||||
return JsonUtil.toJsonString(new NettyResult(PONG, retryRequest.getReqId()));
|
||||
}
|
||||
}
|
||||
|
@ -14,9 +14,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static com.aizuda.easy.retry.common.core.constant.SystemConstants.HTTP_PATH.CONFIG;
|
||||
|
||||
/**
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 16:29
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
@ -26,11 +29,9 @@ public class ConfigHttpRequestHandler extends GetHttpRequestHandler {
|
||||
@Qualifier("configAccessProcessor")
|
||||
private ConfigAccess configAccess;
|
||||
|
||||
private static final String URI = "/config";
|
||||
|
||||
@Override
|
||||
public boolean supports(String uri) {
|
||||
return URI.equals(uri);
|
||||
public boolean supports(String path) {
|
||||
return CONFIG.equals(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -5,8 +5,11 @@ import cn.hutool.core.net.url.UrlQuery;
|
||||
import io.netty.handler.codec.http.HttpHeaders;
|
||||
|
||||
/**
|
||||
* 处理GRT请求
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 17:35
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public abstract class GetHttpRequestHandler implements HttpRequestHandler {
|
||||
|
||||
|
@ -5,12 +5,15 @@ import io.netty.handler.codec.http.HttpHeaders;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
|
||||
/**
|
||||
* 处理http请求
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 16:23
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public interface HttpRequestHandler {
|
||||
|
||||
boolean supports(String uri);
|
||||
boolean supports(String path);
|
||||
|
||||
HttpMethod method();
|
||||
|
||||
|
@ -5,8 +5,11 @@ import cn.hutool.core.net.url.UrlQuery;
|
||||
import io.netty.handler.codec.http.HttpHeaders;
|
||||
|
||||
/**
|
||||
* 处理POST请求
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 17:35
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public abstract class PostHttpRequestHandler implements HttpRequestHandler {
|
||||
|
||||
|
@ -14,23 +14,25 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static com.aizuda.easy.retry.common.core.constant.SystemConstants.HTTP_PATH.BATCH_REPORT;
|
||||
|
||||
/**
|
||||
* 处理上报数据
|
||||
*
|
||||
* @author: www.byteblogs.com
|
||||
* @date : 2022-03-07 16:39
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ReportRetryInfoHttpRequestHandler extends PostHttpRequestHandler {
|
||||
|
||||
private static final String URI = "/batch/report";
|
||||
|
||||
@Autowired
|
||||
private RetryService retryService;
|
||||
|
||||
@Override
|
||||
public boolean supports(String uri) {
|
||||
return URI.equals(uri);
|
||||
public boolean supports(String path) {
|
||||
return BATCH_REPORT.equals(path);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user