首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在hazelcast集群期间拒绝jclouds连接

在hazelcast集群期间拒绝jclouds连接
EN

Stack Overflow用户
提问于 2017-11-20 17:05:15
回答 1查看 202关注 0票数 1

问题

  • 为什么它使用本地主机?
  • keystone和它有什么关系?
    • 我似乎无法配置keystone端点

上下文

  • App: Spring (1.5.6) REST
  • 冬眠5.2
  • Hazelcast 3.9 -作为仅的二级缓存
  • hazelcast-jclouds 3.7.1
  • jclouds计算和jclouds and计算2.0.2
  • 用于运行应用程序的VM的Openstack云

设置

我的hazelcast.xml配置如下:

代码语言:javascript
复制
        <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>

问题所在

应用程序初始化失败。以下是一些日志小贴士:

代码语言:javascript
复制
[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

下面是一些异常堆栈跟踪:

代码语言:javascript
复制
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)

其他备注

看起来它使用的是在org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata中配置的默认org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata地址,但我不知道这是怎么回事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-20 17:32:04

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

不过,快速查看一下代码就会发现,添加代码很容易。考虑到的属性在JCloudsDiscoveryStrategyFactory中定义,然后在ComputeServiceBuilder中读取到创建jclouds上下文

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47397348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档