gpt4 book ai didi

node.js - 将 docker 容器上托管的 cassandra 与 nodejs 连接时,出现 NoHostAvailableError : No host could be resolved

转载 作者:行者123 更新时间:2023-12-02 19:18:04 25 4
gpt4 key购买 nike

我通过运行以下命令来设置 Cassandra 容器:
这将从 docker hub 拉取 Cassandra docker 镜像并使用 Cassandra 启动一个容器

  • docker 网络创建 cassandra-net
  • docker run --name my-cassandra --network cassandra-net -d cassandra:latest
  • docker run --name my-cassandra-1 --network cassandra-net -d -e CASSANDRA_SEEDS=my-cassandra cassandra:latest
  • docker run -it --rm --network cassandra-net cassandra:latest cqlsh my-cassandra

  • 然后创建了一个keyspace

    CREATE KEYSPACE user_keyspace WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 3};

    其中有一个用户表。

    我的 node.js 代码是
    const cassandra = require('cassandra-driver');
    var contactPoints = ['my-cassandra:9042'];
    const client = new cassandra.Client({
    contactPoints: contactPoints,
    localDataCenter: 'datacenter1',
    keyspace: 'user_keyspace'
    });

    client.connect(function (err) {
    if (err) {
    console.log('Error in connnection: ', err); return;
    }
    console.log('Cassandra connected');
    });

    连接时出错

    NoHostAvailableError:无法解析主机
    在 ControlConnection.init (/app/node_modules/cassandra-driver/lib/control-connection.js:203:13)
    在异步 Client._connect (/app/node_modules/cassandra-driver/lib/client.js:513:5) {
    name: 'NoHostAvailableError',
    info: '当由于没有主机可用或驱动程序无法访问而无法执行查询时表示错误。',
    消息:'无法解析主机',
    内部错误:{}

    我对 Cassandra 或 Docker 没有太多经验,所以我不确定为什么我的应用程序没有连接到数据库,也许是端口没有对传入请求开放,但我不知道我将如何检查那个或改变它。

    最佳答案

    驱动程序将尝试解析用作联系点的主机名。联系点需要主机名或 IP 地址。

    在你的情况下,而不是使用 my-cassandra这是用户定义的网络名称,使用 IP 地址:

    const contactPoints = ['127.0.0.1'];

    在 docker run 上,您可以使用桥接/主机网络或使用 -P-p 9042:9042 :

    docker run -it --rm -P cassandra:latest cqlsh my-cassandra

    关于node.js - 将 docker 容器上托管的 cassandra 与 nodejs 连接时,出现 NoHostAvailableError : No host could be resolved,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62049517/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com