为了账号安全,请及时绑定邮箱和手机立即绑定

Golang gocql无法连接到Cassandra(使用Docker)

Golang gocql无法连接到Cassandra(使用Docker)

Go
慕的地8271018 2023-04-04 14:15:41
我正在尝试使用 docker 和 Golang 设置并连接到 Cassandra 单节点实例,但它无法正常工作。我能找到的最接近解决 golanggocql包和 Cassandra 之间的连接问题的信息可以在这里找到:Cassandra cqlsh - connection refused,但是有许多不同的 upvote 答案没有明确指出哪个是首选。这也是一个受保护的问题(没有“我也是”),所以很多社区成员似乎都遇到了这个问题。这个问题应该略有不同,因为它使用的是 Docker 并且我已经尝试了大部分(如果不是上面链接的所有解决方案)。version: "3"  services:    cassandra00:    restart: always    image: cassandra:latest    volumes:       - ./db/casdata:/var/lib/cassandra    ports:       - 7000:7000      - 7001:7001      - 7199:7199      - 9042:9042      - 9160:9160    environment:      - CASSANDRA_RPC_ADDRESS=127.0.0.1      - CASSANDRA_BROADCAST_ADDRESS=127.0.0.1      - CASSANDRA_LISTEN_ADDRESS=127.0.0.1      - CASSANDRA_START_RPC=true  db:    restart: always    build: ./db    environment:      POSTGRES_USER: patientplatypus      POSTGRES_PASSWORD: SUPERSECRETFAKEPASSD00T      POSTGRES_DB: zennify    expose:      - "5432"    ports:      - 5432:5432    volumes:      - ./db/pgdata:/var/lib/postgresql/data  app:    restart: always    build:       context: .      dockerfile: Dockerfile    command: bash -c 'while !</dev/tcp/db/5432; do sleep 10; done; realize start --run'    # command: bash -c 'while !</dev/tcp/db/5432; do sleep 10; done; go run main.go'    ports:      - 8000:8000    depends_on:      - db      - cassandra00    links:      - db      - cassandra00    volumes:      - ./:/go/src/github.com/patientplatypus/webserver/诚然,我对应该在环境部分传递给 Cassandra 的监听地址有点犹豫,所以我只是传递了“home”:  - CASSANDRA_RPC_ADDRESS=127.0.0.1  - CASSANDRA_BROADCAST_ADDRESS=127.0.0.1  - CASSANDRA_LISTEN_ADDRESS=127.0.0.1如果您尝试并通过,0.0.0.0则会收到以下错误:cassandra00_1  | Exception (org.apache.cassandra.exceptions.ConfigurationException) encountered during startup: listen_address cannot be a wildcard address (0.0.0.0)!cassandra00_1  | listen_address cannot be a wildcard address (0.0.0.0)!cassandra00_1  | ERROR [main] 2018-09-10 21:50:44,530 CassandraDaemon.java:708 - Exception encountered during startup: listen_address cannot be a wildcard address (0.0.0.0)!
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

cassandra00根据 docker-compose 文档https://docs.docker.com/compose/compose-file/#links使用服务名称作为主机名

链接服务的容器可通过与别名相同的主机名访问,如果未指定别名,则为服务名称。

根据https://docs.docker.com/samples/library/cassandra/保留CASSANDRA_LISTEN_ADDRESSenvvar 未设置(或通过)auto

默认值为 auto,这会将 cassandra.yaml 中的 listen_address 选项设置为容器启动时的 IP 地址。此默认值应适用于大多数用例。


查看完整回答
反对 回复 2023-04-04
  • 1 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信