jfinal-zbus - JFinal极简zbus插件


Apache
跨平台
Java

软件简介

JFinal极简zbus插件,

该插件具有以下特点:

1)简化设计,去掉了异步发送,仅支持同步发送。
2)信息发送/接收支持泛型,类型安全。
3)可直接发送/接收JFinal中特有的Model对象和Record对象。

导入dist目录下的jfinal-zbus-3.1.0.jar
同时还需要导入zbus,znet,fastjson,jfinal等jar包
配置代码如下:

//初始化zbus插件
ZbusPlugin zp = new ZbusPlugin();
//创建一个MQ
zp.createMq("MyMQ");
//创建一个Topic(zbus中topic必须属于某个队列,所以第一个参数是mq名,第二个参数是topic名)
zp.createTopic("Topic", "Check");
//注册MQ的消息到达(收到消息)回调泛型(Dict类型,Dict继承子Model)接口。
zp.registerMqMessageCallback("MyMQ", new TMessageCallback<Dict>(){
    @Override
    public void onMessage(Dict msg) {
        LOG.info("receive from MyMQ: key=" + msg.getStr("key") + ",value=" + msg.getStr("value"));
    }
});
//注册Topic的消息到达(收到消息)回调泛型(String类型)接口。
zp.registerTopicMessageCallback("Topic", "Check", new TMessageCallback<String>(){
    @Override
    public void onMessage(String msg) {
        LOG.info("receive from Topic.Check: msg=" + msg);
    }
});
//添加插件
me.add(zp);

如何发送消息?

//初始化一个MQ泛型(Dict类型,Dict继承子Model)发送器,构造函数参数为MQ名
Sender<Dict> mqSender = new MqSender<Dict>("MyMQ");
Dict dict = new Dict();
dict.setId(1L);
dict.set("key", "key"+1);
dict.set("value", "value"+1);
//发送对象到MQ
mqSender.send(dict);
//初始化一个Topic泛型(String类型)发送器,构造函数参数为,MQ名,Topic名
Sender<String> topicSender = new TopicSender<String>("Topic", "Check");
//发送对象到topic
topicSender.send("这时一个订阅消息");

使用时,可在需要发送的类里定义一个特定类型的发送器。建议发送器的类型不要太复杂。只通过zbus来发送简单的消息。