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