集群管理(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接口類源碼如下:
實現了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;
}
}