etcd-solon-cloud-plugin
此插件,由社区成员(Luke)贡献
<dependency>
<groupId>org.noear</groupId>
<artifactId>etcd-solon-cloud-plugin</artifactId>
</dependency>
1、描述
分布式扩展插件。基于 etcd 适配的 solon cloud 插件。提供配置服务、注册与发现服务。
2、能力支持
云端能力接口 | 说明 | 备注 |
---|---|---|
CloudConfigService | 云端配置服务 | 不支持 namespace;支持 group |
CloudDiscoveryService | 云端注册与发现服务 | 不支持 namespace;支持 group |
3、配置示例
solon.app:
name: "demoapp"
group: "demo"
solon.cloud.etcd:
server: "localhost:2379" #etcd 服务地址
config:
load: "demoapp.yml" #加载配置到应用属性(多个以","隔开)
更丰富的配置:
solon.app:
name: "demoapp"
group: "demo"
meta: #添加应用元信息(可选)
version: "v1.0.2"
author: "noear"
tags: "aaa,bbb,ccc" #添加应用标签(可选)
solon.cloud.etcd:
server: "localhost:2379" #etcd 服务地址
config:
load: "demoapp.yml" #加载配置到应用属性(多个以","隔开)
提醒:通过 "...config.load" 加载的配置,会进入 Solon.cfg() 可使用 @Inject 注入
4、代码应用
public class DemoApp {
public void main(String[] args) {
//启动时,服务会自动注册
SolonApp app = Solon.start(DemoApp.class, args);
}
}
@Slf4j
@Controller
public class DemoController{
//配置服务的功能(注解模式) //只有接收实体为单例,才能用 autoRefreshed
@CloudConfig(name = "demoTitle", autoRefreshed = true)
String demoTitle;
//配置服务的功能(注解模式)
@CloudConfig("demoDb")
DbContext demoDb;
@NamiClient //RPC服务发现的功能(注解模式)
RockService rockService;
@Mapping("/")
public void test(){
//配置服务:使用配置的数据库上下文进行查询
Map map = demoDb.table("water_reg_service").limit(1).selectMap("*");
//Rpc发现服务:调用Rpc接口
AppModel app = rockService.getAppById(12);
}
}
//配置订阅:关注配置的实时更新
@CloudConfig("demoDb")
public class TestConfigHandler implements CloudConfigHandler {
@Override
public void handler(Config config) {
}
}