mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2025-06-06 21:37:56 +08:00
【fix】 添加服务端、客户端路由管理接口
This commit is contained in:
parent
3f7f10bcd5
commit
8728cd5d54
@ -5,6 +5,7 @@ import org.framework.lazy.cloud.network.heartbeat.client.context.NettyClientSock
|
|||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.permeate.event.ClientChangeEvent;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.permeate.event.ClientChangeEvent;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.permeate.tcp.advanced.*;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.permeate.tcp.advanced.*;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.permeate.udp.advanced.*;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.permeate.udp.advanced.*;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced.ClientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced.ClientHandleDistributeHttpClientProxyServerTransferTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced.ClientHandleDistributeHttpClientProxyServerTransferTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced.ClientHandleHttpClientProxyClientTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced.ClientHandleHttpClientProxyClientTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced.ClientHandleHttpClientProxyServerTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced.ClientHandleHttpClientProxyServerTypeAdvanced;
|
||||||
@ -348,5 +349,10 @@ public class ClientAutoConfiguration {
|
|||||||
public ClientHandleHttpClientProxyServerTypeAdvanced clientHandleHttpClientClientProxyServerTypeAdvanced() {
|
public ClientHandleHttpClientProxyServerTypeAdvanced clientHandleHttpClientClientProxyServerTypeAdvanced() {
|
||||||
return new ClientHandleHttpClientProxyServerTypeAdvanced();
|
return new ClientHandleHttpClientProxyServerTypeAdvanced();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ClientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced clientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced() {
|
||||||
|
return new ClientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package org.framework.lazy.cloud.network.heartbeat.client.netty.proxy.http.advanced;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import io.netty.channel.Channel;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerTransferTypeAdvanced;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.ServerProxyRoute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* http 远程代理
|
||||||
|
* 客户端:客户端远程到服务端、客户端远程到客户端
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class ClientHandleDistributeHttpClientProxyServerServerRouteTypeAdvanced extends
|
||||||
|
AbstractHandleHttpDistributeClientProxyServerTransferTypeAdvanced<NettyProxyMsg> {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理当前数据
|
||||||
|
*
|
||||||
|
* @param channel 当前通道
|
||||||
|
* @param nettyProxyMsg 通道数据
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void doHandler(Channel channel, NettyProxyMsg nettyProxyMsg) {
|
||||||
|
|
||||||
|
byte[] data = nettyProxyMsg.getData();
|
||||||
|
ServerProxyRoute serverProxyRoute = JSON.parseObject(data, ServerProxyRoute.class);
|
||||||
|
RouteContext.setRoute(serverProxyRoute);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client;
|
||||||
|
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.AbstractHandleChannelTypeAdvanced;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.HandleChannelTypeAdvanced;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.enums.TcpMessageTypeEnums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下发服务端路由
|
||||||
|
* @param <MSG>
|
||||||
|
*/
|
||||||
|
public abstract class AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced<MSG> extends AbstractHandleChannelTypeAdvanced<NettyProxyMsg> implements HandleChannelTypeAdvanced {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否支持当前类型
|
||||||
|
*
|
||||||
|
* @param nettyProxyMsg 通道数据
|
||||||
|
* @return 布尔类型 是、否
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected boolean doSupport(NettyProxyMsg nettyProxyMsg) {
|
||||||
|
return TcpMessageTypeEnums.HTTP_CLIENT_PROXY_SERVER_SERVER_ROUTE_DISTRIBUTE_.getTypeByte() == nettyProxyMsg.getType();
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +1,15 @@
|
|||||||
package org.framework.lazy.cloud.network.heartbeat.common.constant;
|
package org.framework.lazy.cloud.network.heartbeat.common.constant;
|
||||||
|
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.AbstractTcpHandleChannelHeartbeatTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.client.*;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.client.*;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.server.*;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.server.*;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpLocalProxyTypeAdvanced;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyClientTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyClientTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyServerTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyServerTypeAdvanced;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpLocalProxyTypeAdvanced;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerTransferTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerTransferTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.AbstractTcpHandleChannelHeartbeatTypeAdvanced;
|
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.enums.TcpMessageTypeEnums;
|
import org.framework.lazy.cloud.network.heartbeat.common.enums.TcpMessageTypeEnums;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -264,6 +265,13 @@ public class TcpMessageType {
|
|||||||
* @see AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced
|
* @see AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced
|
||||||
*/
|
*/
|
||||||
public static final byte HTTP_CLIENT_PROXY_SERVER_TRANSFER_CLOSE_REPORT_ = HTTP_CLIENT_PROXY_SERVER_TRANSFER_DISTRIBUTE_ + 1;
|
public static final byte HTTP_CLIENT_PROXY_SERVER_TRANSFER_CLOSE_REPORT_ = HTTP_CLIENT_PROXY_SERVER_TRANSFER_DISTRIBUTE_ + 1;
|
||||||
|
/**
|
||||||
|
* 下发服务端路由
|
||||||
|
*
|
||||||
|
* @see TcpMessageTypeEnums#HTTP_CLIENT_PROXY_SERVER_SERVER_ROUTE_DISTRIBUTE_
|
||||||
|
* @see AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced
|
||||||
|
*/
|
||||||
|
public static final byte HTTP_CLIENT_PROXY_SERVER_SERVER_ROUTE_DISTRIBUTE_ = HTTP_CLIENT_PROXY_SERVER_TRANSFER_CLOSE_REPORT_ + 1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.s
|
|||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpLocalProxyTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpLocalProxyTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyClientTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyClientTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyServerTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.AbstractHttpClientProxyServerTypeAdvanced;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerTransferTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.client.AbstractHandleHttpDistributeClientProxyServerTransferTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.proxy.http.server.AbstractHandleHttpReportClientProxyServerTransferTypeAdvanced;
|
||||||
@ -162,6 +163,11 @@ public enum TcpMessageTypeEnums {
|
|||||||
* @see AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced
|
* @see AbstractHandleHttpReportClientProxyServerTransferCloseTypeAdvanced
|
||||||
*/
|
*/
|
||||||
HTTP_CLIENT_PROXY_SERVER_TRANSFER_CLOSE_REPORT_(TcpMessageType.HTTP_CLIENT_PROXY_SERVER_TRANSFER_CLOSE_REPORT_, "http远程服务端代理传输数据下发"),
|
HTTP_CLIENT_PROXY_SERVER_TRANSFER_CLOSE_REPORT_(TcpMessageType.HTTP_CLIENT_PROXY_SERVER_TRANSFER_CLOSE_REPORT_, "http远程服务端代理传输数据下发"),
|
||||||
|
/**
|
||||||
|
* 下发服务端路由
|
||||||
|
* @see AbstractHandleHttpDistributeClientProxyServerServerRouteTypeAdvanced
|
||||||
|
*/
|
||||||
|
HTTP_CLIENT_PROXY_SERVER_SERVER_ROUTE_DISTRIBUTE_(TcpMessageType.HTTP_CLIENT_PROXY_SERVER_SERVER_ROUTE_DISTRIBUTE_, "http下发服务端路由"),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,14 +50,17 @@ public class ServerAutoConfiguration {
|
|||||||
LazyServerPermeateClientMappingApplication lazyServerPermeateClientMappingApplication,
|
LazyServerPermeateClientMappingApplication lazyServerPermeateClientMappingApplication,
|
||||||
LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication,
|
LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication,
|
||||||
LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication,
|
LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication,
|
||||||
|
LazyNettyServerRouteApplication lazyNettyServerRouteApplication,
|
||||||
LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication,
|
LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication,
|
||||||
ServerNodeProperties serverNodeProperties
|
ServerNodeProperties serverNodeProperties
|
||||||
) {
|
) {
|
||||||
return new ServerHandleTcpClientConnectSuccessTypeAdvanced(lazyClientStatsChangeApplication,
|
return new ServerHandleTcpClientConnectSuccessTypeAdvanced(
|
||||||
|
lazyClientStatsChangeApplication,
|
||||||
lazyNettyClientBlacklistApplication,
|
lazyNettyClientBlacklistApplication,
|
||||||
lazyServerPermeateClientMappingApplication,
|
lazyServerPermeateClientMappingApplication,
|
||||||
lazyClientPermeateServerMappingApplication,
|
lazyClientPermeateServerMappingApplication,
|
||||||
lazyClientPermeateClientMappingApplication,
|
lazyClientPermeateClientMappingApplication,
|
||||||
|
lazyNettyServerRouteApplication,
|
||||||
lazyNettyClientTokenBucketApplication,
|
lazyNettyClientTokenBucketApplication,
|
||||||
serverNodeProperties
|
serverNodeProperties
|
||||||
);
|
);
|
||||||
|
@ -9,13 +9,17 @@ import org.framework.lazy.cloud.network.heartbeat.common.constant.TcpMessageType
|
|||||||
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.server.AbstractHandleTcpClientConnectSuccessTypeAdvanced;
|
import org.framework.lazy.cloud.network.heartbeat.common.advanced.permeate.tcp.server.AbstractHandleTcpClientConnectSuccessTypeAdvanced;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils;
|
import org.framework.lazy.cloud.network.heartbeat.common.utils.ChannelAttributeKeyUtils;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.ServerProxyRoute;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.properties.ServerNodeProperties;
|
import org.framework.lazy.cloud.network.heartbeat.server.properties.ServerNodeProperties;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.*;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.*;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.permeate.client.mapping.LazyClientPermeateClientMappingQueryListCommand;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.permeate.client.mapping.LazyClientPermeateClientMappingQueryListCommand;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.permeate.server.mapping.LazyClientPermeateServerMappingQueryListCommand;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.permeate.server.mapping.LazyClientPermeateServerMappingQueryListCommand;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.state.LazyNettyClientLoginCommand;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.client.state.LazyNettyClientLoginCommand;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.netty.server.route.LazyNettyServerRouteQueryListCommand;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyClientPermeateClientMappingDTO;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyClientPermeateClientMappingDTO;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyClientPermeateServerMappingDTO;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyClientPermeateServerMappingDTO;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.application.dto.LazyNettyServerRouteDTO;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.blacklist.LazyNettyClientBlacklist;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.client.blacklist.LazyNettyClientBlacklist;
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.context.annotation.Role;
|
import org.springframework.context.annotation.Role;
|
||||||
@ -41,16 +45,18 @@ public class ServerHandleTcpClientConnectSuccessTypeAdvanced extends AbstractHan
|
|||||||
private final LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication;
|
private final LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication;
|
||||||
private final LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication;
|
private final LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication;
|
||||||
|
|
||||||
|
private final LazyNettyServerRouteApplication lazyNettyServerRouteApplication;
|
||||||
private final LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication;
|
private final LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication;
|
||||||
|
|
||||||
private final ServerNodeProperties serverNodeProperties;
|
private final ServerNodeProperties serverNodeProperties;
|
||||||
|
|
||||||
public ServerHandleTcpClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyServerPermeateClientMappingApplication lazyServerPermeateClientMappingApplication, LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication, LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication, LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication, ServerNodeProperties serverNodeProperties) {
|
public ServerHandleTcpClientConnectSuccessTypeAdvanced(LazyClientStatsChangeApplication lazyClientStatsChangeApplication, LazyNettyClientBlacklistApplication lazyNettyClientBlacklistApplication, LazyServerPermeateClientMappingApplication lazyServerPermeateClientMappingApplication, LazyClientPermeateServerMappingApplication lazyClientPermeateServerMappingApplication, LazyClientPermeateClientMappingApplication lazyClientPermeateClientMappingApplication, LazyNettyServerRouteApplication lazyNettyServerRouteApplication, LazyNettyClientTokenBucketApplication lazyNettyClientTokenBucketApplication, ServerNodeProperties serverNodeProperties) {
|
||||||
this.lazyClientStatsChangeApplication = lazyClientStatsChangeApplication;
|
this.lazyClientStatsChangeApplication = lazyClientStatsChangeApplication;
|
||||||
this.lazyNettyClientBlacklistApplication = lazyNettyClientBlacklistApplication;
|
this.lazyNettyClientBlacklistApplication = lazyNettyClientBlacklistApplication;
|
||||||
this.lazyServerPermeateClientMappingApplication = lazyServerPermeateClientMappingApplication;
|
this.lazyServerPermeateClientMappingApplication = lazyServerPermeateClientMappingApplication;
|
||||||
this.lazyClientPermeateServerMappingApplication = lazyClientPermeateServerMappingApplication;
|
this.lazyClientPermeateServerMappingApplication = lazyClientPermeateServerMappingApplication;
|
||||||
this.lazyClientPermeateClientMappingApplication = lazyClientPermeateClientMappingApplication;
|
this.lazyClientPermeateClientMappingApplication = lazyClientPermeateClientMappingApplication;
|
||||||
|
this.lazyNettyServerRouteApplication = lazyNettyServerRouteApplication;
|
||||||
this.lazyNettyClientTokenBucketApplication = lazyNettyClientTokenBucketApplication;
|
this.lazyNettyClientTokenBucketApplication = lazyNettyClientTokenBucketApplication;
|
||||||
this.serverNodeProperties = serverNodeProperties;
|
this.serverNodeProperties = serverNodeProperties;
|
||||||
}
|
}
|
||||||
@ -176,6 +182,26 @@ public class ServerHandleTcpClientConnectSuccessTypeAdvanced extends AbstractHan
|
|||||||
newChannel.writeAndFlush(nettyMsg);
|
newChannel.writeAndFlush(nettyMsg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// 下发服务端路由
|
||||||
|
LazyNettyServerRouteQueryListCommand lazyNettyServerRouteQueryListCommand = new LazyNettyServerRouteQueryListCommand();
|
||||||
|
lazyNettyServerRouteQueryListCommand.setIsDeleted(false);
|
||||||
|
lazyNettyServerRouteApplication.findList(lazyNettyServerRouteQueryListCommand)
|
||||||
|
.accept(lazyNettyServerRouteDTOS -> {
|
||||||
|
for (LazyNettyServerRouteDTO lazyNettyServerRouteDTO : lazyNettyServerRouteDTOS) {
|
||||||
|
String routeIp = lazyNettyServerRouteDTO.getRouteIp();
|
||||||
|
String routePort = lazyNettyServerRouteDTO.getRoutePort();
|
||||||
|
ServerProxyRoute serverProxyRoute = new ServerProxyRoute();
|
||||||
|
serverProxyRoute.setServerIp("default");
|
||||||
|
serverProxyRoute.setAllowIp(routeIp);
|
||||||
|
serverProxyRoute.setAllowPort(routePort);
|
||||||
|
serverProxyRoute.setRouteType(RouteType.CLIENT_PROXY_SEVER);
|
||||||
|
NettyProxyMsg nettyMsg = new NettyProxyMsg();
|
||||||
|
nettyMsg.setType(TcpMessageType.HTTP_CLIENT_PROXY_SERVER_SERVER_ROUTE_DISTRIBUTE_);
|
||||||
|
nettyMsg.setData((JSON.toJSONString(serverProxyRoute)
|
||||||
|
.getBytes(StandardCharsets.UTF_8)));
|
||||||
|
newChannel.writeAndFlush(nettyMsg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,20 @@
|
|||||||
package org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.persistence;
|
package org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.persistence;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import io.netty.channel.Channel;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.ChannelContext;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.NettyProxyMsg;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.common.constant.TcpMessageType;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteContext;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.RouteType;
|
||||||
|
import org.framework.lazy.cloud.network.heartbeat.protocol.route.ServerProxyRoute;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyNettyServerRouteDO;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.entity.LazyNettyServerRouteDO;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyNettyServerRouteConverter;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.converter.LazyNettyServerRouteConverter;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.mapper.LazyNettyServerRouteMapper;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.infrastructure.mapper.LazyNettyServerRouteMapper;
|
||||||
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.server.route.LazyNettyServerRouteRepository;
|
import org.framework.lazy.cloud.network.heartbeat.server.standalone.domain.model.lazy.netty.server.route.LazyNettyServerRouteRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyUpdateSetValueWrappers;
|
import org.wu.framework.lazy.orm.database.lambda.stream.wrapper.LazyUpdateSetValueWrappers;
|
||||||
@ -43,6 +53,27 @@ public class LazyNettyServerRouteRepositoryImpl implements LazyNettyServerRout
|
|||||||
public Result<LazyNettyServerRoute> story(LazyNettyServerRoute lazyNettyServerRoute) {
|
public Result<LazyNettyServerRoute> story(LazyNettyServerRoute lazyNettyServerRoute) {
|
||||||
LazyNettyServerRouteDO lazyNettyServerRouteDO = LazyNettyServerRouteConverter.INSTANCE.fromLazyNettyServerRoute(lazyNettyServerRoute);
|
LazyNettyServerRouteDO lazyNettyServerRouteDO = LazyNettyServerRouteConverter.INSTANCE.fromLazyNettyServerRoute(lazyNettyServerRoute);
|
||||||
lazyLambdaStream.upsert(lazyNettyServerRouteDO);
|
lazyLambdaStream.upsert(lazyNettyServerRouteDO);
|
||||||
|
// 更新服务端路由
|
||||||
|
String routeIp = lazyNettyServerRoute.getRouteIp();
|
||||||
|
String routePort = lazyNettyServerRoute.getRoutePort();
|
||||||
|
ServerProxyRoute serverProxyRoute = new ServerProxyRoute();
|
||||||
|
serverProxyRoute.setServerIp("default");
|
||||||
|
serverProxyRoute.setAllowIp(routeIp);
|
||||||
|
serverProxyRoute.setAllowPort(routePort);
|
||||||
|
serverProxyRoute.setRouteType(RouteType.CLIENT_PROXY_SEVER);
|
||||||
|
RouteContext.setRoute(serverProxyRoute);
|
||||||
|
// 发送所有客户端本地路由刷新
|
||||||
|
ChannelContext.getChannels().forEach((clientId, channels) -> {
|
||||||
|
NettyProxyMsg nettyMsg = new NettyProxyMsg();
|
||||||
|
nettyMsg.setType(TcpMessageType.HTTP_CLIENT_PROXY_SERVER_SERVER_ROUTE_DISTRIBUTE_);
|
||||||
|
nettyMsg.setData((JSON.toJSONString(serverProxyRoute)
|
||||||
|
.getBytes(StandardCharsets.UTF_8)));
|
||||||
|
// 发送所有客户端ID
|
||||||
|
for (Channel channel : channels) {
|
||||||
|
channel.writeAndFlush(nettyMsg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return ResultFactory.successOf();
|
return ResultFactory.successOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user