如何解决没有可用的 Hazelcast 实例“HazelcastCachingProvider.HAZELCAST_CONFIG_LOCATION”
关于这个错误的任何想法:
没有可用的 Hazelcast 实例。请通过“HazelcastCachingProvider.HAZELCAST_CONFIG_LOCATION”指定您的 Hazelcast 配置文件路径
在本地 kubernetes 中使用此 cfg 可以正常工作,但是当我将 Kubernetes = true 和多播设置为 false 时总是出现此错误。我正在尝试将它用于 IBMCloud Kubernetes 中的 Liberty。
<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>
这就是我所做的:
我有一个使用自由的 docker 镜像,在自由配置中我将以下配置设置为使用 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 并且多播 = true 在我的本地 kubernetes 上工作正常,但是当我将它部署在云上时,hazelcast 找不到其他 pod(看起来 ips 在不同的网络上)
<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 插件进行发现,请确保您configured RBAC,例如使用以下命令。
kubectl apply -f https://raw.githubusercontent.com/hazelcast/hazelcast-kubernetes/master/rbac.yaml
还请确保 default parameters 对您有用(您在相同的命名空间中运行 Hazelcast,等等)。
如果这没有帮助,请分享完整的 StackTrace 日志。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。