首页 > 解决方案 > Cassandra / Spring boot 错误:协议初始化请求,第 1 步(选项):发送请求失败(java.nio.channels.NotYetConnectedException))

问题描述

我正在使用 docker compose 将两个容器与下面的 docker-compose.yml 文件连接起来:

version: '3'

services:
  cassandra:
    image: ubuntu-cassandra-v2
    ports:
      - "9044:9042"
    container_name: cassandra
    networks: 
      - net1

  APP:
    image: centos7-spring-boot
    ports:
      - "8086:8080"
    container_name: app
    links:
    - cassandra
    networks: 
      - net1
networks:
  net1:
    driver: "bridge"

当我运行命令行 :docker-compose up -d时,在 tomcat 日志中出现了这个错误:

2021-11-07 19:27:48.951 WARN 1 --- [s0-admin-1] cdodiccontrol.ControlConnection: [s0] 连接到节点时出错(endPoint=192.168.176.2:9042,hostId=null,hashCode=63fea1f6) ,尝试下一个节点(ConnectionInitException: [s0|control|connecting...] 协议初始化请求,第 1 步(OPTIONS):发送请求失败(java.nio.channels.NotYetConnectedException))

码头工人检查:

[
    {
        "Name": "tmp_net1",
        "Id": "bba35a62c141c02d09c6a230a5ff643889166d9a09b25163986562b3e24adb71",
        "Created": "2021-11-07T17:05:34.786777218-05:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.176.0/20",
                    "Gateway": "192.168.176.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "0ff6698ce04c265b2972ed6269ce3e403b11b48053866d277e2ec8153c28a7e8": {
                "Name": "cassandra",
                "EndpointID": "a3d87993deff70923c89d1e656c1a613aac9b3537a80052190fc085407eaa004",
                "MacAddress": "02:42:c0:a8:b0:02",
                "IPv4Address": "192.168.176.2/20",
                "IPv6Address": ""
            },
            "2a293e9d4442664557dd80226193942deb9ef023c51f0ea0c010191e20a7e379": {
                "Name": "app",
                "EndpointID": "55ca479d6a62ba6d325b615f8b2191c702fa41766c7f8814ee2dbe4b2d6cbd06",
                "MacAddress": "02:42:c0:a8:b0:03",
                "IPv4Address": "192.168.176.3/20",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "net1",
            "com.docker.compose.project": "tmp",
            "com.docker.compose.version": "1.23.2"
        }
    }
]

我在application.properties中设置了 Cassandra 的 IP 192.168.176.2:

# CASSANDRA (CassandraProperties)
cassandra.cluster = Test Cluster
cassandra.contactpoints=192.168.176.2

一些建议表示赞赏。

标签: spring-bootdockerdocker-composecassandra-3.0

解决方案


推荐阅读