nacos-solon-cloud-plugin
<dependency>
<groupId>org.noear</groupId>
<artifactId>nacos-solon-cloud-plugin</artifactId>
</dependency>
1、描述
分布式扩展插件。基于 nacos(代码仓库)适配的 solon cloud 插件。提供配置服务、注册与发现服务。
2、能力支持
云端能力接口 | 说明 | 备注 |
---|---|---|
CloudConfigService | 云端配置服务 | 支持 namespace;支持 group |
CloudDiscoveryService | 云端注册与发现服务 | 支持 namespace;支持 group |
3、配置示例
solon.app:
name: "demoapp"
group: "demo"
namespace: "test"
solon.cloud.nacos:
server: "localhost:8848" #nacos 服务地址
config:
load: "demoapp.yml" #加载配置到应用属性(多个以","隔开)//对应 dataId
更丰富的配置:
solon.app:
name: "demoapp"
group: "demo"
meta: #添加应用元信息(可选)
version: "v1.0.2"
author: "noear"
tags: "aaa,bbb,ccc" #添加应用标签(可选)
solon.cloud.nacos:
server: "localhost:8848,localhost:8847" #nacos 服务地址
namespace: "3887EBC8-CD24-4BF7-BACF-58643397C138" #nacos 命名空间
contextPath: "nacosx" #nacos 服务的上下文路径(可选)
username: "aaa"
password: "bbb"
config:
load: "demoapp.yml,group:test.yml" #加载配置到应用属性(多个以","隔开)
提醒:通过 "...config.load" 加载的配置,会进入 Solon.cfg() 可使用 @Inject 注入。"group:key" 是指定分组的配置加载。
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) {
}
}