java发布订阅框架_百万级高性能分布式发布订阅系统

netty-pubsub

介绍

百万级高性能分布式发布订阅系统,基于nio,netty开发,无锁并发,充分发挥cpu极限, 该项目已自带心跳检测功能,断线自动重连,非常稳定。 注意该项目软件编码为GBK,导入的时候一定要看清项目编码格式。

软件架构

软件架构说明

netty+zookeeper+disruptor分布式发布订阅系统

安装教程

xxxx

xxxx

xxxx

使用说明

broker启动 运行boot类

client 有订阅者和发布者,具体代码可以在test中有测试用例

现阶段分布式还没发布,需要测试的可以有单机版,切换单机版,需要在resouces下的config.properties的enableCluster=false

代码用例

1.broker启动src/main/java 下的 Boot.java

2.client测试

//创建客户端

NettyPubAndSubClient client = NettyPubAndSubClient.getInstance();

//客户端连接

client.connect("127.0.0.1",9999);

//传入订阅主题,和监听器

client.subscribe("mm", new SubscribListener() {

@Override

public void subOk(Message message) {

System.out.println("订阅成功");

}

@Override

public void msgActive(Message message) {

try {

System.out.println("收到消息mm:"+new String(message.getData(),"utf-8"));

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

//接收广播

client.acceptBraodCast(new SubscribListener() {

@Override

public void msgActive(Message message) {

try {

System.out.println("接收广播消息:"+new String(message.getData(),"utf-8"));

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

//发布消息

client.publish("mm", "哈哈");

//发送广播

client.broadcast("hello 广播");

//优雅关闭

client.shutdown();

参与贡献

Fork 本仓库

新建 Feat_xxx 分支

提交代码

新建 Pull Request

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值