Solon

rabbitmq-solon-cloud-plugin

v2.7.5 </> markdown
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>rabbitmq-solon-cloud-plugin</artifactId>
</dependency>

1、描述

分布式扩展插件。基于 rabbitmq client 适配的 solon cloud 插件。提供事件总线服务。

2、能力支持

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

3、配置示例

简要配置

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

solon.cloud.rabbitmq:
  server: localhost:5672   #rabbitmq 服务地址
  username: root           #rabbitmq 链接账号
  password: 123456         #rabbitmq 链接密码

更多的可选配置

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

solon.cloud.rabbitmq:
  server: localhost:5672   #rabbitmq 服务地址
  username: root           #rabbitmq 链接账号
  password: 123456         #rabbitmq 链接密码
  event:  #v2.4.4 后调整为:(与应用基本信息结合起来)
      publishTimeout: 3000                       #发布超时,默认为3000毫秒
      virtualHost: "${solon.app.nameSpace}"      #虚拟主机,默认为应用命名空间(当为空时,则为"/")
      exchange:  "${solon.app.group}"            #交换机名,默认为应用组
      queue:  "${exchange}_${solon.app_name}"    #队列名,默认为交换机_应用名
      #提示:每个队列名,会生成三个队列(用于实现 retry 效果)

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);


//发布 - 定时10天后发(找个地方发放一下)
Event event = new Event("hello.demo2", msg).group("test");
Date eventTime = DateTime.Now().addDay(10);
return CloudClient.event().publish(event.scheduled(eventTime));