注解和通用客户端
1、注解清单
注解 | 适用范围 | 说明 |
---|---|---|
@CloudConfig | 类、字段、参数 | 配置注入 |
@CloudEvent | 类 | 事件 |
@CloudJob | 类、函数 | 任务 |
@CloudBreaker | 类、函数 | 融断器 |
2、通用客户端
通用客户端,提供了所有不同框架的统一使用界面,同时提供了自由手动操控的机制。当然,注解支持不会少!
//手动获取配置(不管背后是哪个配置框架,都是如此)
Config val1 = CloudClient.config().pull("demo.ds");
//手动生成ID
long val2 = CloudClient.id().generate();
//手动发布事件(不管背后是哪个消息队列,都是如此)
CloudClient.event().publish(new Event("demo.user.login","1"));
//分布式锁
if(CloudClient.lock().tryLock("demo.lock.key")){
//...业务处理
CloudClient.lock().unlock("demo.lock.key");
}
//分布式名单
if(CloudClient.list().inListOfIp("safelist",ip)){
//...业务处理
}
//分布式文件
String demoJson= CloudClient.file().get("demo.file.key").bodyAsString();
//分布式计数
CloudClient.metric().addCount("demo","demo.api.user.add", 1);
//等等
3、注解能力开关
开关,应该在应用初始化时配置。
//配置:是否启用 @CloudConfig 注解(默认,开启)
CloudClient.enableConfig();
//配置:是否启用 @CloudEvent 注解(默认,开启)
CloudClient.enableEvent();
//配置:是否启用 @CloudBreaker 注解(默认,开启)
CloudClient.enableBreaker();
//配置:是否启用 @CloudJob 注解(默认,开启)
CloudClient.enableJob();
示例:
public class App {
public static void main(String[] args) {
Solon.start(app.class, args, app->{
CloudClient.enableEvent(false);
});
}
}