You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Docker部署Infinispan12.1报ISPN004016错误连接失败如何解决?

问题根因分析
  • Host网络模式不兼容:Windows Docker Desktop基于Linux虚拟机运行容器,--network host参数仅对原生Linux环境的Docker生效,Windows下使用该参数不会将容器端口暴露到宿主机网络,导致端口无法访问。
  • 服务端地址广播错误:默认配置下,Infinispan会将容器内部IP地址作为节点地址返回给客户端,宿主机无法直接访问容器内部IP,即使配置了端口映射,客户端拿到错误的节点地址也会连接失败。
  • SASL认证机制不匹配:Infinispan 12.1默认禁用了弱安全等级的DIGEST-MD5认证机制,客户端使用该机制无法通过服务端认证。
解决方案

1. 修正Docker启动命令

使用端口映射模式启动,新增两个环境变量指定服务端绑定地址和对外暴露的地址,命令如下:

docker run -p 11222:11222 -e USER="Titus Bramble" -e PASS="Shambles" -e INFINISPAN_BIND_ADDRESS=0.0.0.0 -e INFINISPAN_EXTERNAL_ADDRESS=127.0.0.1 --name infinispan infinispan/server:12.1

INFINISPAN_BIND_ADDRESS 让服务端在容器内绑定所有网卡,INFINISPAN_EXTERNAL_ADDRESS 指定服务端返回给客户端的节点地址为宿主机127.0.0.1,避免返回容器内部IP。

2. 调整客户端连接配置

保留客户端基础智能配置,同时将SASL认证机制替换为12.1版本默认支持的SCRAM-SHA-256,修改后代码如下:

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.addServer()
       .host("127.0.0.1")
       .port(ConfigurationProperties.DEFAULT_HOTROD_PORT)
       .clientIntelligence(ClientIntelligence.BASIC)
     .security().authentication()
       .username("Titus Bramble")
       .password("Shambles")
       .realm("default")
       .saslMechanism("SCRAM-SHA-256");    

// Connect to the server
RemoteCacheManager client = new RemoteCacheManager(builder.build());

3. 前置验证

容器启动完成后,先在Windows宿主机执行telnet 127.0.0.1 11222确认端口连通正常,再运行客户端代码即可。

内容的提问来源于stack exchange,提问作者Florian Schaetz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:21:02