Solon

local-solon-cloud-plugin

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

1、描述

分布式扩展插件。在 solon.cloud 插件的基础上。它比较特别,是分布式能力的本地模拟实现(是个假的分布式插件)。(v1.11.2 之后支持)

场景定位:

  • 让所有项目统一使用 solon cloud 接口进行开发
  • 通过切换配置;就可以在 "本地单体服务" 和 "分布式服务(或微服务)"之间自由切换

比如:

  • 定时任务可以在本地调度,配置改动就可以由 water 或 xxl-job 进行调度
  • 或者配置,自由在本地配置与云端配置之间切换

2、能力说明:

2.1、云端配置服务(本地模拟)

内容格式支持: yml, properties, json (后缀做为name的一部分,可有可无)
文件地址格式: META-INF/solon-cloud/config@{group}_{name},例示:

  • META-INF/solon-cloud/config@demo_demo-db
  • META-INF/solon-cloud/config@demo_demoapp.yml

两种应用:

可以通过配置加载配置

solon.cloud.local:
  config:
    load: "demoapp.yml"

可以通过注解直接注入

@Configuration
public class Config {
    @Bean
    public void init1(@CloudConfig("demo-db") Properties props) {
        System.out.println("云端配置服务直接注入的:" + props);
    }
}
2.2、云端注册与发现服务(本地模拟)

让服务注册有地方去,也有地方可获取(即发现)

2.3、云端事件服务(本地模拟)

本地摸拟实现。不支持ACK,不支持延时。最好还是引入消息队列的适配框架

2.4、云端国际化配置服务(本地模拟)

内容格式支持: yml, properties, json (不能有手缀名,为了更好的支持中文)
文件地址格式: META-INF/solon-cloud/i18n@{group}_{name}-{locale},例示:

  • META-INF/solon-cloud/i18n@demo_demoapp-zh_CN
  • META-INF/solon-cloud/i18n@demo_demoapp-en_US
2.5、云端定时任务调度服务(本地模拟)

时间到就会启动新的执行(不管上次是否执行完成了)

2.6、云端名单服务(本地模拟)

内容格式支持: json
文件地址格式: META-INF/solon-cloud/list@{name}-{type}.json,例示:

  • META-INF/solon-cloud/list@whitelist-ip.json
2.7、云端度量服务(本地模拟)

一个空服务。只为已有调用不出错

具体参考

https://gitee.com/noear/solon-examples/tree/main/9.Solon-Cloud/demo9010-local