Solon

polaris-solon-cloud-plugin

v2.7.5 </> markdown

此插件,由社区成员(4&79)贡献

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

1、描述

分布式扩展插件。基于 polaris(代码仓库)适配的 solon cloud 插件。提供配置服务、注册与发现服务。v1.11.6 后支持

2、能力支持

云端能力接口说明备注
CloudConfigService云端配置服务支持 namespace;支持 group;不支持写操作
CloudDiscoveryService云端注册与发现服务支持 namespace;支持 group

3、配置示例

solon.app:
  name: "demoapp"
  group: "demo"
  namespace: "test"

solon.cloud.polaris:
  config:
    server: localhost:8093   #polaris 配置服务地址
    load: "demoapp.yml"    #加载配置到应用属性(多个以","隔开)
  discovery:
    server: localhost:8091   #polaris 发现服务地址

更丰富的配置:

solon.app:
  name: "demoapp"
  group: "demo"
  meta:                   #添加应用元信息(可选)
    version: "v1.0.2" 
    author: "noear"
  tags: "aaa,bbb,ccc"     #添加应用标签(可选)

solon.cloud.polaris:
  username: polaris        #polaris链接账号
  password: polaris        #polaris链接密码
  config:
    server: localhost:8093   #polaris 配置服务地址
    load: "demoapp.yml"    #加载配置到应用属性(多个以","隔开)
  discovery:
    server: localhost:8091   #polaris 发现服务地址

提醒:通过 "...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) {

    }
}

5、演示项目

暂无...