Solon

jedis-solon-cloud-plugin

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

1、描述

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

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

2、配置示例

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 配置,可以按需添加

3、应用示例

分布式事件总线应用:(需要有 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";
        }
    }
}