rabbitmq-solon-cloud-plugin
<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));