jedis-solon-cloud-plugin
<dependency>
<groupId>org.noear</groupId>
<artifactId>jedis-solon-cloud-plugin</artifactId>
</dependency>
1、描述
分布式扩展插件。基于 redis client 适配的 solon cloud 插件。
- 提供“分布式事件总线”服务(只适合无ACK需求的单体场景)
- 以及“分布式锁”服务
2、能力支持
云端能力接口 | 说明 | 备注 |
---|---|---|
CloudEventService | 云端事件服务 | 不支持 namespace;不支持 group |
3、配置示例
solon.app:
group: demo #配置服务使用的默认组
name: helloproducer #发现服务使用的应用名
#配置字段可参考:https://gitee.com/noear/redisx
solon.cloud.jedis:
event:
server: "localhost:6379"
db: 0 #默认为 0,可不配置
maxTotaol: 200 #默认为 200,可不配
lock:
server: "localhost:6379"
db: 1 #默认为 0,可不配置
maxTotaol: 200 #默认为 200,可不配
注:event 和 lock 配置,可以按需添加
4、应用示例
分布式事件总线应用:(需要有 event 配置节)
//订阅
@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);
分布式锁应用:(需要有 lock 配置节)
@Controller
public class LockController {
@Mapping("lock")
public Object lock() {
if (CloudClient.lock().tryLock("lock", 3)) {
return new Date();
} else {
return "0000";
}
}
}