netty 实现消息推送
基本介绍
registry:注册中心,存储receiver的host、port
receiver:消息消费,将host、port数据推送到注册中心
sender:消息发送者,从注册中心获取receiver元数据,然后发送消息
Message:发送的消息
@Data
public class Message implements Serializable {
private String topic;
private Object content;
}
RegistryProtocol:receiver向注册中心注册的数据
@Data
public class RegistryProtocol implements Serializable {
private String consumerHost;
private Integer consumerPort;
}
RegistryInfo:注册中心向sender返回的数据
@Data
public class RegistryInfo implements Serializable {
private String host;
private Integer port;
}
Person:消息内容
@Data
public class Person implements Serializable {
private String name;
private Integer age;
}
Product:消息内容
@Data
public class Product implements Serializable {
private String name;
private Float price;
private Integer num;
}
注册中心
RrgistryCache:存储receiver的host、port
public class RegistryCache {
public static String consumerHost;
public static Integer consumerPort;
}
RegistryRegisterInfosHandler:处理receiver元数据注册
public class RegistryRegisterInfosHandler extends SimpleChannelInboundHandler<RegistryProtocol> {
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, RegistryProtocol registryProtocol) throws Exception {
if (registryProtocol != null){
RegistryCache.consumerHost = registryProtocol.getConsumerHost();
RegistryCache.consumerPort &