Vertx Hazelcast群集错误“使用AWS联接策略时没有发现策略工厂可创建...”

问题描述 投票:0回答:1

我正在尝试在aws中设置一个简单的vertx集群。(您可以找到所有代码here

在pom文件中,我已经添加了我需要的所有功能,包括vertx-hazelcast和aws的hazelcast插件。

至于主类,这很简单,并且所有的hazelcast设置都是在主类中准备的。

public class Main {
    public static void main(String[] args) {
        Logger log = Logger.getLogger(Main.class.getSimpleName());
        Config hazelcastConfig = new Config();


        hazelcastConfig.getNetworkConfig().getInterfaces().
                 setEnabled(true).addInterface("10.0.*.*");
        JoinConfig joinConfig = hazelcastConfig.getNetworkConfig().getJoin();
        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getAwsConfig()
                .setEnabled(true)
                .setProperty("region", "ap-southeast-1")
                .setProperty("tag-key", "aws:cloudformation:stack-name")
                .setProperty("tag-value", "EC2ContainerService-test-cluster");
        hazelcastConfig.getNetworkConfig().setJoin(joinConfig);


        ClusterManager mgr = new HazelcastClusterManager(hazelcastConfig);
        String hostAddress = getAddress();

        VertxOptions options = new VertxOptions()
                .setClusterManager(mgr)
                .setHAEnabled(true);

        EventBusOptions ebOptions = new EventBusOptions()
                .setClustered(true)
                .setHost(hostAddress);

        options.setEventBusOptions(ebOptions);

        Vertx.clusteredVertx(options, handler->{
            if(handler.succeeded()){
                DeploymentOptions containerOption = new DeploymentOptions().setHa(false); 
                handler.result().deployVerticle(Verticle.class,containerOption,deployHandler->{
                    if(handler.succeeded()){
                        log.info("Verticle Deployed");
                    }else{
                        log.severe("Verticle Deployment Failed");
                    }
                });
            } else{
                log.severe(handler.cause().getMessage());
            }
        });

    }
}

每当我运行胖子罐子时,我总是遇到此错误。

Caused by: com.hazelcast.config.properties.ValidationException: There is no discovery strategy factory to create 'D
iscoveryStrategyConfig{properties={tag-value=EC2ContainerService-test-cluster, region=ap-southeast-1, tag-key=aws:c
loudformation:stack-name}, className='com.hazelcast.aws.AwsDiscoveryStrategy', discoveryStrategyFactory=null}' Is i
t a typo in a strategy classname? Perhaps you forgot to include implementation on a classpath?

我的代码中是否缺少任何内容?

java jvm hazelcast vert.x
1个回答
0
投票
我看到您在Maven依赖项中拥有它,但是请确保:

您将兼容的hazelcast-aws版本与hazelcast版本一起使用(可以找到兼容性信息here)。

    您的JAR实际上包括com.hazelcast.aws包中的类。
  1. 您的JAR包含文件resources/META-INF/services/com.hazelcast.spi.discovery.DiscoveryStrategyFactory
© www.soinside.com 2019 - 2024. All rights reserved.