SPRING CLOUD BUS 自定义事件
引人依赖 <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>配置rabbit参数 rabbitmq:
host: 172.21.126.136
port: 5672
username: cares
password: Cares123
定义事件package com.cares.fids.server.events;
import org.springframework.cloud.bus.event.RemoteApplicationEvent;
/**
* @author wangcj
* @desc
* @date 2021/1/5 14:25
**/
2021-01-06
SPRING CLOUD
spring cloud bus
FutureTask 获取异步处理结果
public byte[] getScreenShot(String mac) {
if (!ClientConnectionMap.keySet().contains(mac)) {
throw new BusinessException("航显ID " + mac + " 不存在");
}
Channel channel = ClientConnectionMap.getClientChannelBytoken(mac);
if (null == channel) {
throw new BusinessException("连接异常");
}
String reqId = UUID.randomUUID().toString();
FidsScreenShotReq req = new FidsScreen
2020-12-25
JAVA
SPING CLOUD GATEWAY 自定义负载均衡
问题微服务和航显设备通过socket连接,微服务端管理socket的连接,用户从web发送指令到航显设备执行。如果用户发送的指令到一台没有soket连接的微服务,那么控制指令将无法到达航显设备。
解决思路用户发送的请求通过 spring cloud gateway负载,自定义负载均衡,发送请求的时候带航显设备连接的微服务ip,自定义负载根据ip去选择转发的服务器,这样请求就不会到达没有连接的微服务
自定义负载均衡全局过滤器 LoadBalancerClientFilter根据自动配置规则,如果用户定义了LoadBalancerClientFilter ,就使用用户定义的
package com.cares.gateway.filter;
import com.cares.gateway.rules.FidsLoadBalanceRule;
import com.google.common.collect.Maps;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.c
2020-12-24
SPRINGCLOUD
Netty 服务端连接管理
FidsServer.javapackage com.cares.fids.server.comm;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @author wangcj
* @desc
* @date 2020/12/19 19:38
**/
2020-12-23
JAVA
netty 连接管理