集群管理(lǐ)

如果當前登錄用(yòng)戶為(wèi)团隊管理(lǐ)員,可(kě)以看到集群配置入口,如下图:

可(kě)以添中(zhōng)多(duō)個集群節點,這樣在規則項目發布知識包時,就可(kě)以自動推送到這裏配置的集群上,http://[host]:[port]/[context] ,如下图:

配置完成後,進行在當前团隊中(zhōng)項目知識包發生啓動、禁用(yòng)、版本切換時都會自動推送,并提示推送狀态。

如果推送失敗,可(kě)以在失敗的節點上右鍵,查看失敗的詳細原因。

集群動态配置

​ 如果我們向通過自己的邏輯提供集群節點的配置,比如我們可(kě)能(néng)會在諸如docker之類的容器中(zhōng)部署集群應用(yòng),在這種情況下,集群節點的IP地址不是固定的,采用(yòng)上面的方法就行不通了。

​ 為(wèi)了兼容這種IP地址動态變化的場景,在URule Pro當中(zhōng)提供了一個名(míng)為(wèi)ClusterProvider接口,通過實現這個接口來動态指定集群節點地址,ClusterProvider接口類源碼如下:

undefined

​ 實現了ClusterProvider接口後,隻需要将實現類配置到Spring上下文(wén)當中(zhōng),使之成為(wèi)一個标準的Spring Bean即可(kě),這樣引擎在獲取配置的集群信息時就會嘗試從這個實現類中(zhōng)獲取。

​ 一旦我們實現了該接口,并将其配置到Spring中(zhōng),重啓應用(yòng),在客戶端配置頁(yè)面就可(kě)以看到該接口實現類中(zhōng)加載的集群列表,同時該頁(yè)面也不再提供集群信息的編輯功能(néng)。

示例代碼


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,所有(yǒu)团隊的集群節點将會一樣。
        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 ""