Solon

zookeeper-solon-plugin

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

1、描述

分布式扩展插件。基于 zookeeper 适配的 solon cloud 插件。提供配置服务、注册与发现服务。

2、配置示例

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

solon.cloud.zookeeper:
  server: "localhost:2181"           #WATER服务地址
  config:
    load: "demoapp.yml"                #默认加载的配置

3、代码应用

public class DemoApp {
    public void main(String[] args) {
        //启动时,服务会自动注册
        SolonApp app = Solon.start(DemoApp.class, args);
    }
}

@Slf4j
@Controller
public class DemoController{
    @CloudConfig(name = "demoDb", autoRefreshed = true)  //配置服务的功能(注解模式)
    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) {

    }
}