集群管理(lǐ)

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

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

配置完成後,進行(xíng)在當前團隊中項目知識包發生(shēng)啓動、禁用、版本切換時(shí)都會(huì)自動推送,并提示推送狀态。

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

集群動态配置

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

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

undefined

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

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

示例代碼


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)團隊的集群節點将會(huì)一樣。
        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 ""