【问题标题】:Cannot connect to dockerized Cassandra无法连接到 dockerized Cassandra
【发布时间】:2019-03-24 10:06:12
【问题描述】:

代码抛出以下异常:

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cassandraConfiguration': Invocation of init method failed; nested exception is 

 com.datastax.driver.core.exceptions.NoHostAvailableException:
 All host(s) tried for query failed
 (
   tried:

   localhost/127.0.0.1:9042
   (com.datastax.driver.core.exceptions.TransportException: [localhost/127.0.0.1:9042]
    Cannot connect),

   localhost/0:0:0:0:0:0:0:1:9042
   (com.datastax.driver.core.exceptions.TransportException: [localhost/0:0:0:0:0:0:0:1:9042]
    Cannot connect)
 )

我正在使用JHipster example found at GitHub。运行mvnw clean test 不会返回任何失败。

端口 9042 和 9160 已在防火墙中打开。

依赖项是 cassandra-driver-extras、cassandra-driver-mapping 和 spring-boot-starter-data-cassandra。

【问题讨论】:

  • 您是否使用 docker-compose 启动了 cassandra?它不是嵌入式的,你必须单独启动它
  • 我认为你使用了错误的 ip。试试这个: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

标签: spring docker cassandra jhipster


【解决方案1】:

这是 application-dev.yml 的重要部分:

spring:
    data:
        cassandra:
            contactPoints: localhost
            protocolVersion: V4
            compression: LZ4
            keyspaceName: demo_ks
            entityPackage: com.demo.domain
            port: 9042

必须使用启动容器 cassandra:3.11.3、端口 9042、9160、7199、7000、7001 和卷 cassandra_data:/data 的 docker-compose 文件。稍后我会将其全部放在某个 GitHub 存储库中,并使用完整代码编辑此答案。

我的CassandraConfiguration 类有返回CassandraCustomConversionsClusterBuilderCustomizerSession 的bean,也自动连接ClusterMetricRegistry

pom.xml的重要部分:

<properties>
    <spring-boot.version>2.0.5.RELEASE</spring-boot.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.cassandraunit</groupId>
        <artifactId>cassandra-unit-spring</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-cassandra</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-cassandra</artifactId>
    </dependency>

    <dependency>
        <groupId>com.datastax.cassandra</groupId>
        <artifactId>cassandra-driver-extras</artifactId>
    </dependency>

    <dependency>
        <groupId>com.datastax.cassandra</groupId>
        <artifactId>cassandra-driver-mapping</artifactId>
    </dependency>
</dependencies>

【讨论】:

  • 您是否有机会将您的解决方案放在 Github 上?我也面临同样的问题。
  • @QuintenScheppermans 我不知道我是否还有此代码,因为我使用的是公司计算机,但我稍后会检查它。
猜你喜欢
  • 2019-11-05
  • 1970-01-01
  • 2018-06-10
  • 2021-03-07
  • 1970-01-01
  • 2016-06-05
  • 2017-12-29
  • 2013-09-14
  • 1970-01-01
相关资源
最近更新 更多