Solon

mqtt5-solon-cloud-plugin

v2.7.1 </> markdown
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>mqtt5-solon-cloud-plugin</artifactId>
</dependency>

1、描述

分布式扩展插件。基于 mqtt client (for v5)适配的 solon cloud 插件。提供事件总线服务。v2.4.4 后支持

2、能力支持

云端能力接口说明备注
CloudEventService云端事件服务不支持 namespace;不支持 group

3、配置示例

简要配置

solon.app:
  group: demo       #配置服务使用的默认组
  name: helloproducer    #发现服务使用的应用名

solon.cloud.mqtt.event:
  server: "tcp://localhost:41883"   #mqtt服务地址

更多的配置

solon.app:
  group: demo       #配置服务使用的默认组
  name: helloproducer    #发现服务使用的应用名

solon.cloud.mqtt.event:
  server: "tcp://localhost:41883"   #mqtt服务地址
  client:  #对应 MqttConnectOptions 类的字段
    connectionTimeout: 1000
    keepAliveInterval: 100

4、应用示例

//订阅
@CloudEvent(topic="hello/demo2", group = "test")
public class EVENT_hello_demo2 implements CloudEventHandler {
    @Override
    public boolean handle(Event event) throws Throwable {
        System.out.println(LocalDateTime.now() + ONode.stringify(event));
        return true;
    }
}

//发布(找个地方安放一下)
Event event = new Event("hello/demo2", msg).group("test");
return CloudClient.event().publish(event);

5、Topic Filter(主题过滤器)

  • 大小写敏感
  • 可以使用任何UFT-8字符
  • 避免使用$符号开头
  • 通配符 + #(publish时不能使用通配符)//+ 占一段 //# 不限段

例:

//订阅
@CloudEvent(topic="hello/demo/+", group = "test")
public class EVENT_hello_demo implements CloudEventHandler {
    @Override
    public boolean handle(Event event) throws Throwable {
        System.out.println(LocalDateTime.now() + ONode.stringify(event));
        return true;
    }
}

//发布(找个地方安放一下)
Event event1 = new Event("hello/demo/t1", msg).group("test");
Event event2 = new Event("hello/demo/t2", msg).group("test");
CloudClient.event().publish(event1);
CloudClient.event().publish(event2);