单个服务器的Aerospike心跳配置,错误“无法为节点ID找到任何合适的网络设备”

时间:2016-11-19 10:53:19

标签: aerospike

我想在单服务器模式下运行Aerospike服务器。 现在我有了这个配置:

service {
    paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
    service-threads 4
    transaction-queues 4
    transaction-threads-per-queue 4
    proto-fd-max 15000
}

logging {
    console {
        context any info
    }
}

network {
    service {
        address 127.0.0.1
        port 3000
    }

    heartbeat {
        mode multicast
        multicast-group 239.1.99.222
        port 9918

        # To use unicast-mesh heartbeats, remove the 3 lines above, and see
        # aerospike_mesh.conf for alternative.

        interval 150
        timeout 10
    }

    fabric {
        port 3001
    }

    info {
        port 3003
    }
}

namespace test {
    replication-factor 1
    memory-size 20M
    default-ttl 1d # 30 days, use 0 to never expire/evict.

    storage-engine memory
}

当我尝试启动服务器时,我在日志中遇到错误:

  

“无法为节点ID找到任何合适的网络设备”

我不希望服务器可用于互联网。 如何实现这一目标并解决问题?

1 个答案:

答案 0 :(得分:2)

使用主机上接口的MAC ID生成节点ID。

https://github.com/aerospike/aerospike-server/blob/master/cf/src/socket.c#L2470

如果你没有aerospike知道的任何默认接口名称,那么你可能会收到此错误。

要解决此问题,您可以指定您的接口名称。

http://www.aerospike.com/docs/operations/troubleshoot/startup#problem-with-network-interface

为避免在Internet上暴露您的aerospike节点,您只能将其绑定到localhost或仅绑定到专用接口,或使用其他网络工具/设备以避免暴露服务器端口(如防火墙或ACL)。避免在互联网上暴露空中加速器的最佳方法是确保托管空中加速器的服务器不会暴露于互联网。如果这不可行,那么仅使用防火墙限制您的aerospike端口访问您的aerospike客户端IP。此外,您还可以使用企业版中提供的数据库凭据。

http://www.aerospike.com/docs/guide/security.html