怎样定制或对接自己的分布式服务?
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());
});
}
}