【发布时间】:2018-06-06 21:42:10
【问题描述】:
我已经尝试了几个小时来使用 Orient DB 建立一个分布式数据库。我在这里https://orientdb.com/docs/last/Tutorial-Setup-a-distributed-database.html 遵循了他们的指示,但没有运气。我能够在第一个节点上启动服务器。然后我复制目录并在该复制目录中启动服务器,但两个节点不会相互通信。他们每个人都只是充当第一个节点。我尝试在 hazelcast.xml 文件中使用 tcp 而不是多播,但这似乎没有帮助。任何帮助将不胜感激。
【问题讨论】:
-
如果您的网络上未启用多播,那么这也会阻止新节点加入旧节点。 tcp 应该在大多数环境中工作。 hazelcast.xml 中的 tcp 配置是什么?
-
我将每次安装 OrientDB 时的 hazelcast.xml 文件更改为:
<tcp-ip enabled="true"> <member>IP:2434</member> <member>IP:2434</member> </tcp-ip>这似乎不起作用。这些看起来像是要使用的正确端口吗? -
这两台机器是否可以在这些 IP 地址和端口上 ping 通? HC 默认使用 5701,但由于您已明确配置端口,因此将使用您的设置。如果通过配置的设置可以访问两台机器,那么下一步就是从两个节点共享完整的 Hazelcast 日志。
-
好的,谢谢它使用 tcp 工作。除了一个问题外,似乎运行良好:如果我在 machine1 上启动服务器,然后与 machine2 连接,一切正常。如果我在 machine1 上断开连接,所有权不会转移到 machine2。我收到此错误
[machine2] Cannot remove server 'machine1' because it is enlisted in 'servers' of the distributed configuration for database 'demodb'。有什么想法吗? -
这似乎与 Orient DB 中的演示应用程序有关,看起来像是在“demodb”中硬编码的东西。我建议查看它的源代码和/或 ping OrientDB 家伙。
标签: orientdb hazelcast multicast