集群管理
如果当前登录用户为团队管理员,可以看到集群配置入口,如下图:
可以添中多个集群节点,这样在规则项目发布知识包时,就可以自动推送到这里配置的集群上,http://[host]:[port]/[context] ,如下图:
配置完成后,进行在当前团队中项目知识包发生启动、禁用、版本切换时都会自动推送,并提示推送状态。
如果推送失败,可以在失败的节点上右键,查看失败的详细原因。
集群动态配置
如果我们向通过自己的逻辑提供集群节点的配置,比如我们可能会在诸如docker之类的容器中部署集群应用,在这种情况下,集群节点的IP地址不是固定的,采用上面的方法就行不通了。
为了兼容这种IP地址动态变化的场景,在URule Pro当中提供了一个名为ClusterProvider接口,通过实现这个接口来动态指定集群节点地址,ClusterProvider接口类源码如下:
实现了ClusterProvider接口后,只需要将实现类配置到Spring上下文当中,使之成为一个标准的Spring Bean即可,这样引擎在获取配置的集群信息时就会尝试从这个实现类中获取。
一旦我们实现了该接口,并将其配置到Spring中,重启应用,在客户端配置页面就可以看到该接口实现类中加载的集群列表,同时该页面也不再提供集群信息的编辑功能。
示例代码
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Service;
import com.bstek.urule.console.ClusterProvider;
import com.bstek.urule.console.database.model.UrlConfig;
import com.bstek.urule.console.database.model.UrlType;
@Service
public class MyClusterProvider implements ClusterProvider {
@Override
public List<UrlConfig> loadClusters(String groupId) {
//如果不判断groupId,所有团队的集群节点将会一样。
ArrayList<UrlConfig> lstUrlConfig = new ArrayList<UrlConfig>();
System.out.println("Group ID:"+groupId);
UrlConfig config1=new UrlConfig();
config1.setId(1);
config1.setName("集群1");
config1.setUrl("http://localhost:8182/urulepro4");
config1.setType(UrlType.cluster);
lstUrlConfig.add(config1);
UrlConfig config2=new UrlConfig();
config2.setId(2);
config2.setName("集群2");
config2.setUrl("http://localhost:8181/urulepro4");
config2.setType(UrlType.cluster);
lstUrlConfig.add(config2);
return lstUrlConfig;
}
}