没有可用的 Hazelcast 实例"HazelcastCachingProvider.HAZELCAST_CONFIG_LOCATION"



对这个错误有什么想法吗:

没有可用的Hazelcast实例。请通过"HazelcastCachingProvider.HAZELCAST_CONFIG_LOCATION"指定您的Hazelcast配置文件路径

在本地kubernetes中使用这个cfg可以正常工作,但是当我将kubernetes = true和multicast设置为false时,总是得到这个错误。我正在尝试在IBMCloud Kubernetes中使用它。

<hazelcast xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hazelcast.com/schema/config
https://hazelcast.com/schema/config/hazelcast-config-3.12.xsd">
<group>
<name>cluster</name>
</group>
<network>
<join>
<multicast enabled="true"/>
<kubernetes enabled="false"/>
</join>
</network>
</hazelcast>

server.xml

<httpSessionCache libraryRef="jCacheVendorLib" 
uri="file:${server.config.dir}hazelcast-config.xml" />
<library id="jCacheVendorLib">
<file name="${shared.config.dir}/lib/global/hazelcast-3.12.6.jar" />
</library>

我是这样做的:

我有一个使用liberty的docker映像,在liberty配置中,我设置了以下配置来使用hazelcast:

<server>
<featureManager>
...
<feature>sessionCache-1.0</feature>
...
</featureManager>
...
<httpSessionCache libraryRef="jCacheVendorLib" 
uri="file:${server.config.dir}hazelcast-config.xml" />
<library id="jCacheVendorLib">
<file name="${shared.config.dir}/lib/global/hazelcast-3.12.6.jar" />
</library>
...
</server>

然后在hazelcast-config.xml中设置配置。当我设置kubernetes=true和multicast=false时,我只得到错误。如果我让kubernetes = false和multicast = true在我的本地kubernetes上工作得很好,但是当我在云上部署它时,hazelcast找不到其他pod(看起来ip在不同的网络上)

<hazelcast xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hazelcast.com/schema/config
https://hazelcast.com/schema/config/hazelcast-config-3.12.xsd">
<group>
<name>cluster</name>
</group>
<network>
<join>
<multicast enabled="true"/>
<kubernetes enabled="false"/>
</join>
</network>
</hazelcast>

我还运行了RBAC yaml。

并运行以下yaml来部署它:

apiVersion: apps/v1
kind: Deployment
metadata:
name: employee-service
labels:
app: employee-service
spec:
replicas: 3
selector:
matchLabels:
app: employee-service
template:
metadata:
labels:
app: employee-service
spec:
containers:
- name: myapp
image: myapp
ports:
- name: http
containerPort: 8080
- name: multicast
containerPort: 5701
------------------------------
apiVersion: v1
kind: Service
metadata:
name: service
spec:
type: NodePort
selector:
app: employee-service
ports:
- protocol: TCP
port: 9080
targetPort: 9080
nodePort: 31234

如果您使用Hazelcast Kubernetes插件进行发现,请确保您配置了RBAC,例如使用以下命令。

kubectl apply -f https://raw.githubusercontent.com/hazelcast/hazelcast-kubernetes/master/rbac.yaml

还请确保默认参数为您工作(您在相同的命名空间中运行Hazelcast等)。

如果没有帮助,请分享完整的StackTrace日志。

相关内容

  • 没有找到相关文章

最新更新