Spring boot hazelcast群集期间jclouds连接被拒绝 问题 为什么它使用localhost keystone与此有什么关系? 我似乎无法配置keystone端点 上下文 应用程序:SpringBoot(1.5.6)RESTAPI 冬眠5.2 Hazelcast 3.9-仅作为二级缓存 hazelcast jclouds 3.7.1 jclouds compute和jclouds allcompute 2.0.2 运行应用程序的虚拟机的Openstack云 设置

Spring boot hazelcast群集期间jclouds连接被拒绝 问题 为什么它使用localhost keystone与此有什么关系? 我似乎无法配置keystone端点 上下文 应用程序:SpringBoot(1.5.6)RESTAPI 冬眠5.2 Hazelcast 3.9-仅作为二级缓存 hazelcast jclouds 3.7.1 jclouds compute和jclouds allcompute 2.0.2 运行应用程序的虚拟机的Openstack云 设置,spring-boot,hazelcast,openstack-nova,jclouds,Spring Boot,Hazelcast,Openstack Nova,Jclouds,我的hazelcast.xml配置如下: <discovery-strategies> <discovery-strategy class="com.hazelcast.jclouds.JCloudsDiscoveryStrategy" enabled="true"> <properties> <property name="modules"&

我的
hazelcast.xml
配置如下:

        <discovery-strategies>
            <discovery-strategy class="com.hazelcast.jclouds.JCloudsDiscoveryStrategy" enabled="true">
                <properties>
                    <property name="modules">org.jclouds.logging.slf4j.config.SLF4JLoggingModule</property>
                    <property name="provider">openstack-nova</property>
                    <property name="endpoint">http://dev.nova.cloud.youdontknow.net:8774/v2/</property>
                    <property name="identity">redacted</property>
                    <property name="credential">cens0red</property>
                </properties>
            </discovery-strategy>
        </discovery-strategies>
其他注释
看起来它使用的是
org.jclouds.openstack.keystone.v2_0.keysteoapimetadata中配置的默认
keystone
地址,但我不知道这是怎么回事。

通过查看代码,我认为
hazlecast jclouds
不准备管理通用API。当连接到时,您不需要指定端点,因为它是众所周知的(AWS端点、Google、Azure等),但是当使用OpenStack或CloudStack等通用API时,您需要告诉jclouds在哪里连接。不幸的是,
hazlecast jclouds
似乎不支持为通用API配置自定义端点

不过,快速查看一下代码就可以发现,添加代码可能很容易。要考虑的属性在中定义,然后在to中读取


我不熟悉Hazlecast,但我想说的是,添加“endpoint”属性的定义,然后,如果存在,通过调用jclouds
contextBuilder对其进行配置。endpoint(endpoitn)
方法应该可以做到这一点。

但是:我遵循了这个自述:它有到提供者的链接(这里:)其中包括
openstack nova
——所以看起来应该支持它?哦,顺便说一句,我想我可能应该调用属性
openstack nova.endpoint
EDIT:不,这没有帮助。我刚刚用我提到的修复程序创建了一个
hazlecast jclouds
分支。你能试试我叉子上的这根树枝,看看它是否管用吗?我将试一试——但请注意,当我使用该示例进行配置时,我并没有编写任何代码来直接访问jclouds。我只是在hazelcast中将其配置为集群,并将其用作hibernate二级缓存。是的。我的更改(希望)将使hazlecast读取已配置的endpoint属性,而不是忽略它。非常好。我构建并安装了库,并将我的应用程序的pom升级到
3.7.2-SNAPSHOT
。它现在使用指定的端点。但有一个奇怪的日志说明:
TRACE 3896---[restartedMain]o.j.r.internal.RestAnnotationProcessor:使用默认端点Optional.of(http://dev.nova.cloud.blizzard.net:8774/v2/)对于org.jclouds.openstack.keystone.v2_0.AuthenticationApi来说,这似乎很奇怪,因为这不是默认的
。现在,我得到一个auth失败错误,所以我相信这是一个进步:)
[TRACE] o.j.r.internal.RestAnnotationProcessor   : looking up default endpoint for org.jclouds.openstack.keystone.v2_0.AuthenticationApi.public abstract org.jclouds.openstack.keystone.v2_0.domain.Access org.jclouds.openstack.keystone.v2_0.AuthenticationApi.authenticateWithTenantNameAndCredentials(java.lang.String,org.jclouds.openstack.keystone.v2_0.domain.PasswordCredentials)[bnet-web, PasswordCredentials{username=redacted, password=*****}]
[TRACE] o.j.r.internal.RestAnnotationProcessor   : using default endpoint Optional.of(http://localhost:5000/v2.0/) for org.jclouds.openstack.keystone.v2_0.AuthenticationApi.public abstract org.jclouds.openstack.keystone.v2_0.domain.Access org.jclouds.openstack.keystone.v2_0.AuthenticationApi.authenticateWithTenantNameAndCredentials(java.lang.String,org.jclouds.openstack.keystone.v2_0.domain.PasswordCredentials)[bnet-web, PasswordCredentials{username=redacted, password=*****}]
[TRACE] o.j.rest.internal.InvokeHttpMethod       : << converted AuthenticationApi.authenticateWithTenantNameAndCredentials to POST http://localhost:5000/v2.0/tokens HTTP/1.1
Caused by: com.hazelcast.core.HazelcastException: Failed to get registered addresses
at com.hazelcast.jclouds.JCloudsDiscoveryStrategy.discoverNodes(JCloudsDiscoveryStrategy.java:93)
at com.hazelcast.jclouds.JCloudsDiscoveryStrategy.discoverLocalMetadata(JCloudsDiscoveryStrategy.java:106)
at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.discoverLocalMetadata(DefaultDiscoveryService.java:91)

...

Caused by: org.jclouds.http.HttpResponseException: Connection refused: connect connecting to POST http://localhost:5000/v2.0/tokens HTTP/1.1
    at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:122)
    ...
    at com.sun.proxy.$Proxy147.authenticateWithTenantNameAndCredentials(Unknown Source)
    at org.jclouds.openstack.keystone.v2_0.functions.AuthenticatePasswordCredentials.authenticateWithTenantName(AuthenticatePasswordCredentials.java:43)