簡體   English   中英

以編程方式為集群中的Infinispan開發Jgroup渠道

[英]Develop programmatically a Jgroup Channel for Infinispan in a Cluster

我正在集群設置中使用infinispan 8.1.0 Final和Wildfly 10。

每個服務器開始運行

C:\wildfly-10\bin\standalone.bat --server-config=standalone-ha.xml -b 10.09.139.215 -u 230.0.0.4  -Djboss.node.name=MyNode

我想在分布式模式下使用Infinispan以獲得分布式緩存。 但是對於強制性要求,我需要構建一個JGroups通道以動態讀取文件中的某些屬性。

該通道對於我基於TYPE和NAME(例如Type1-MyCluster)構建集群組是必需的。 每個要加入群集的服務器都必須使用相關的通道。

在網上航行時,我發現了一些類似於以下代碼的代碼:

public class JGroupsChannelServiceActivator implements ServiceActivator  { 
    @Override 
public void activate(ServiceActivatorContext context) { 
    stackName = "udp"; 
    try { 
        channelServiceName = ChannelService.getServiceName(CHANNEL_NAME); 
        createChannel(context.getServiceTarget()); 
    } catch (IllegalStateException e) { 
        log.log(Level.INFO, "channel seems to already exist, skipping creation and binding."); 
    } 
}
void createChannel(ServiceTarget target) { 

    InjectedValue<ChannelFactory> channelFactory = new InjectedValue<>(); 
    ServiceName serviceName = ChannelFactoryService.getServiceName(stackName); 
    ChannelService channelService = new ChannelService(CHANNEL_NAME, channelFactory); 

    target.addService(channelServiceName, channelService) 
    .addDependency(serviceName, ChannelFactory.class, channelFactory).install(); 
} 

我已經創建了META-INF / services / .... JGroupsChannelServiceActivator文件。

當我將戰爭部署到服務器時,操作失敗,並顯示以下錯誤:

"{\"WFLYCTL0180: Services with missing/unavailable dependencies\" => [\"jboss.jgroups.channel.clusterWatchdog is missing [jboss.jgroups.stack.udp]\"]}"

我究竟做錯了什么? 如何以自己的方式建立渠道? 我可以通過什么方式告訴infinispan使用該通道進行分布式緩存?

您發現的建議取決於實現,並且在升級過程中可能會引起很多問題。 我不推薦它。

讓我檢查一下我是否正確理解了您的問題-您需要能夠手動創建JGroups頻道,因為您為此使用了一些自定義屬性。

如果是這種情況,您可以按照此處的建議獲取JGroups通道。 但是然后您獲得一個已經連接的JChannel實例(因此對於您的情況來說可能為時已晚)。

不幸的是,由於Wildfly管理JChannel (集群會​​話,EJB等需要它),因此要完全控制JChannel創建過程, JChannel方法是使用Infinispan嵌入式(庫)模式。 這將需要在您的WAR依賴項中添加infinispan-embedded 之后,您可以類似於此測試來初始化它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM