简单分布式 Haskell / 云 Haskell 示例中的空节点列表

Empty node list in simple Distributed Haskell / Cloud Haskell example

我正在尝试关注 the simple example in the official docs,但是当我 运行:

./example slave localhost 8080 &
./example slave localhost 8081 &
./example slave localhost 8082 &
./example slave localhost 8083 &
./example master localhost 8084

我的预期:

Slaves: [nid://localhost:8083:0,nid://localhost:8082:0,nid://localhost:8081:0,nid://localhost:8080:0]

我看到的:

Slaves: []

我做错了什么?

事实证明,从站绑定到 IPv6 localhost 而不是 IPv4:

ͳ ss -nlp '( sport = 8080 or dport = 8080 )'
Netid             State               Recv-Q              Send-Q                            Local Address:Port                           Peer Address:Port              
tcp               LISTEN              0                   128                                       [::1]:8080                                   [::]:* 

告诉他们绑定到 127.0.0.1 而不是 localhost 就可以了。

尝试提供您机器的实际 IP,而不是本地主机。它在我的机器上工作。

➜  ~ ./minimal-example slave 192.168.1.104 8082 &
[1] 710
➜  ~ ./minimal-example slave 192.168.1.104 8081 &
[2] 715
➜  ~ ./minimal-example slave 192.168.1.104 8083 &
[3] 720
➜  ~ ./minimal-example master 192.168.1.104 8084 &
[4] 725
➜  ~ Slaves: [nid://192.168.1.104:8081:0,nid://192.168.1.104:8082:0,nid://192.168.1.104:8083:0]