问题描述
我正在尝试在具有Windows Docker桌面的Windows 10计算机上运行infinispan docker映像。
我编写了一个小型测试Java程序,该程序使用hotrod连接到localhost:11222并访问缓存。
问题在于,初始连接后,客户端会从服务器接收到新地址172.17.0.3:11222
,并且由于该地址是docker内部地址,因此无法连接到该地址。
Windows的docker桌面无法将消息直接路由到内部容器地址。
infinispan或Windows计算机上是否有任何解决方法?
解决方法
最简单的解决方案是在Hot Rod客户端中禁用对拓扑更新的处理:
infinispan.client.hotrod.client_intelligence=BASIC
有关客户智能here的更多信息。
请注意,在生产环境中不建议这样做:客户端将忽略即将出现的新服务器,并且它将在停止之后很长时间尝试与初始服务器列表中的服务器联系。