【问题标题】:Riak "Node is not reachable"Riak “节点不可访问”
【发布时间】:2018-08-22 04:41:23
【问题描述】:

我在亚马逊使用 Riak 2.1.4 系列。对它完全陌生,有几个问题:

  1. 我部署了一个 Riak 实例。它部署在 EC2 实例中?
  2. 我们真的需要 app.config 和 vm.args 文件来进行 Riak 配置吗?我认为如果 Riak.conf 中提供了节点名,那就足够了,不是吗?
  3. 我看到实例的 IP 地址与之前在 riak.conf 中配置的不同,可以吗?即 nodename 例如实例名称是 ec2-35-160-XXX-XX.us-west-2.compute.amazonaws.com 和 riak.conf 有 riak@172.31.XX.XX

仅在 Riak.conf 中更改

ring_size = 64

erlang.distribution.port_range.minimum = 6000
erlang.distribution.port_range.maximum = 7999

transfer_limit = 2
search = on

此配置存在于每个实例中。我在这里错过了什么吗?如何为五节点集群进行设置?

【问题讨论】:

  • 2000 个端口(6000-7999)是一个很大的范围。所有这些端口(加上 EPMD 的端口 4369)是否都允许通过您的防火墙?

标签: amazon riak


【解决方案1】:
  1. 我部署了一个 Riak 实例。它部署在 EC2 实例中?

不知道你在这里问什么

  1. 我们真的需要 app.config 和 vm.args 文件来进行 Riak 配置吗?我认为如果节点名在 Riak.conf 中可用,那就是 够了吧?

'app.config' 和 'vm.args' 文件是配置 Riak 的旧方法。 'riak.conf' 和 'advanced.config' 文件是新的方式。旧方式仍然被接受,可能是为了支持遗留安装,但我希望在未来的版本中放弃对它的支持。见http://docs.basho.com/riak/kv/2.1.4/configuring/basic/

  1. 我看到实例的 IP 地址与之前在 riak.conf 中配置的不同,可以吗?即节点名例如 实例名称为 ec2-35-160-XXX-XX.us-west-2.compute.amazonaws.com 和 riak.conf 有 riak@172.31.XX.XX

一般来说,如果您希望 Erlang 节点进行通信,它们必须能够使用节点名称来定位彼此。节点名称使用local@domain 模式。所有其他节点必须能够将域部分解析为对该节点运行的机器有效的 IP 地址,并且节点本身将使用本地 erlang 端口映射器守护程序 (EPMD) 注册本地部分。

因此,riak@172.31.x.x 是否是有效的节点名称将取决于您集群的其他节点是否能够访问该私有地址。

大多数 riak-admin 命令在本地生成第二个维护节点,然后使用远程过程调用与正在运行的 Riak 实例对话。因此,如果 172.31.x.x IP 地址实际上并未分配给本地机器,那么这些 riak-admin 命令将无法找到要与之通信的节点。

【讨论】:

  • 当我 ping 另一个盒子时,主机无法访问,这可能是 riak 无法访问其他节点的原因吗?更新了 Riak.conf 更改。你能开个聊天吗?今天我会在你的时间有空。谢谢
  • 运行 riak 的机器需要能够通过网络进行通信。如果基本 ping 失败,您需要先解决主机名/IP/网络/防火墙问题。一旦服务器可以通信,您就可以计算出允许 Erlang 节点形成分布式集群的节点名。
  • 我来晚了,详情已经发到stackoverflow.com/questions/40495788/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
  • 1970-01-01
  • 2011-01-11
相关资源
最近更新 更多