Solon v2.8.4

怎样定制或对接自己的分布式服务?

</> markdown

Solon Cloud 是一套分布式接口标准与配置规范。所有的服务接口都可以定制,且方式都一样(细节可以参考现有的适配插件)。以配置服务 CloudConfigService 为例:

1、了解接口

/**
 * 分布式配置服务
 */
public interface CloudConfigService {
    /**
     * 拉取配置
     *
     * @param group 分组
     * @param name 配置名
     * @return 配置
     */
    Config pull(String group, String name);

    /**
     * 拉取配置
     *
     * @param name 配置名
     * @return 配置
     */
    default Config pull(String name){
        return pull(Solon.cfg().appGroup(), name);
    }

    /**
     * 推送配置
     *
     * @param group 分组
     * @param name 配置名
     * @param value 值
     * @return 是否成功
     */
    boolean push(String group, String name, String value);

    /**
     * 推送配置
     *
     * @param name 配置名
     * @param value 值
     * @return 是否成功
     */
    default boolean push(String name, String value) {
        return push(Solon.cfg().appGroup(), name, value);
    }


    /**
     * 移除配置
     *
     * @param group 分组
     * @param name 配置名
     * @return 是否成功
     */
    boolean remove(String group, String name);

    /**
     * 移除配置
     *
     * @param name 配置名
     * @return 是否成功
     */
    default boolean remove(String name){
        return remove(Solon.cfg().appGroup(), name);
    }

    /**
     * 关注配置
     *
     * @param group 分组
     * @param name 配置名
     * @param observer 观察者
     */
    void attention(String group, String name, CloudConfigHandler observer);
}

2、适配接口并注册

  • 适配接口(对接自己的体系,或其它中间件)
public class CloudConfigServiceImpl implements CloudConfigService{
   //...
}
  • 注册适配类

通过 插件扩展机制 进行服务注册

public class XPluginImpl implements Plugin{
    @Override
    public void start(AppContext context) throws Throwable {
        CloudManager.register(new CloudConfigServiceImpl())
    }
}

或者在 启动时 进行服务注册

public class App{
    public static void main(String[] args){
        Solon.start(App.class, args, app->{
            CloudManager.register(new CloudConfigServiceImpl());
        });
    }
}