创建AerospikeClient后,我收到:
Aerospike.Client.AerospikeException.Connection
HResult=0x80131500
Message=Failed to connect to host(s):
localhost 3000 Error -1: An established connection was aborted by the software in your host machine
我使用以下命令创建了一个新的Aerospike容器,该容器在端口3000的本地计算机上运行:
docker run -d -p 3000:3000 aerospike/aerospike-server
并且我已经通过以下命令设法将其与AerospikeClient和AQL连接起来:
docker run -it aerospike/aerospike-tools aql -h 172.17.0.2 -p 3000
后来我玩了docker容器命令(停止和启动),它仍然有效。
现在由于某种原因它不再起作用,我仍然设法连接AQL,但不能连接AerospikeClient。
asClient = new AerospikeClient(HostName, Port); //throws Exception
这是完整的异常日志:
Source=AerospikeClient
StackTrace:
at Aerospike.Client.Cluster.SeedNodes(Boolean failIfNotConnected)
at Aerospike.Client.Cluster.Tend(Boolean failIfNotConnected)
at Aerospike.Client.Cluster.WaitTillStabilized(Boolean failIfNotConnected)
at Aerospike.Client.Cluster.InitTendThread(Boolean failIfNotConnected)
at RestaurantDecider.DataAccess.AerospikeRestaurantRepo..ctor() in C:\Users\etianc\source\repos\AeroSpikeDemo\RestaurantDecider.DataAccess\AerospikeRestaurantRepo.cs:line 28
at AeroSpikeDemo.Program.Main(String[] args) in C:\Users\etianc\source\repos\AeroSpikeDemo\AeroSpikeDemo\Program.cs:line 30
答案 0 :(得分:3)
我对Aerospike不太熟悉,但是从我看来,您正在运行两个单独的容器-一个是“服务器”,另一个是连接到它的客户端。在不使用docker-compose.yml的情况下执行此操作时需要考虑的事情
如果我是你,我只会使用类似于以下内容的docker-compose.yml文件:
version: "3"
services:
server:
image: aerospike/aerospike-server
client:
depends_on:
- server
image: aerospike/aerospike-tools
command: ["aql", "-h", "172.17.0.2", "-p", "3000"]
但是根据我在docker hub上看到的内容,您应该使用自定义配置文件并定义访问地址(请参见访问地址配置下的https://hub.docker.com/_/aerospike)