```xml
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>jedis-solon-cloud-plugin</artifactId>
</dependency>
```


#### 1、描述

分布式扩展插件。基于 redis client 适配的 solon cloud 插件。

* 提供“分布式事件总线”服务（只适合无ACK需求的单体场景）
* 以及“分布式锁”服务



#### 2、能力支持

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




#### 3、配置示例

```yml
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 配置节）

```java
//订阅
@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 配置节）

```java
@Controller
public class LockController {
    @Mapping("lock")
    public Object lock() {
        if (CloudClient.lock().tryLock("lock", 3)) {
            return new Date();
        } else {
            return "0000";
        }
    }
}
```
