集群管理

如果当前登录用户为团队管理员,可以看到集群配置入口,如下图:

可以添中多个集群节点,这样在规则项目发布知识包时,就可以自动推送到这里配置的集群上,http://[host]:[port]/[context] ,如下图:

配置完成后,进行在当前团队中项目知识包发生启动、禁用、版本切换时都会自动推送,并提示推送状态。

如果推送失败,可以在失败的节点上右键,查看失败的详细原因。

集群动态配置

​ 如果我们向通过自己的逻辑提供集群节点的配置,比如我们可能会在诸如docker之类的容器中部署集群应用,在这种情况下,集群节点的IP地址不是固定的,采用上面的方法就行不通了。

​ 为了兼容这种IP地址动态变化的场景,在URule Pro当中提供了一个名为ClusterProvider接口,通过实现这个接口来动态指定集群节点地址,ClusterProvider接口类源码如下:

undefined

​ 实现了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;
    }

}

undefined

results matching ""

    No results matching ""