问题描述
我正在尝试使用以下配置将我的服务与 AWS Cassandra (Keyspaces
) 集成:
cassandra:
default:
advanced:
ssl: true
ssl-engine-factory: DefaultSslEngineFactory
Metadata:
schema:
enabled: false
auth-provider:
class: PlainTextAuthProvider
username: "XXXXXX"
password: "XXXXXX"
basic:
contact-points:
- ${CASSANDRA_HOST:"127.0.0.1"}:${CASSANDRA_PORT:"9042"}
load-balancing-policy:
local-datacenter: "${CASSANDRA_DATA_CENTER}:datacenter1"
session-keyspace: "keyspace"
Message: Could not reach any contact point,make sure you've provided valid addresses (showing first 1 nodes,use getAllErrors() for more): Node(endPoint=cassandra.eu-west-1.amazonaws.com/3.248.244.41:9142,hostId=null,hashCode=7296b27b): [com.datastax.oss.driver.api.core.DriverTimeoutException: [s0|control|id: 0x1f1c50a1,L:/172.17.0.3:54802 - R:cassandra.eu-west-1.amazonaws.com/3.248.244.41:9142] Protocol initialization request,step 1 (OPTIONS): timed out after 5000 ms]
关于 cassandra-micronaut
库的文档很少,所以我不确定我在这里做错了什么。
更新:
为了清楚起见:我们的环境变量的值如下:
export CASSANDRA_HOST=cassandra.eu-west-1.amazonaws.com
export CASSANDRA_PORT=9142
export CASSANDRA_DATA_CENTER=eu-west-1
请注意,即使我将值硬编码到 application.yml
中,问题仍然存在。
解决方法
所以:
contact-points:
- ${CASSANDRA_HOST:"127.0.0.1"}:${CASSANDRA_PORT:"9042"}
与此不符:
Node(endPoint=cassandra.eu-west-1.amazonaws.com/3.248.244.41:9142,
仔细检查 Cassandra 正在广播的 IP 和端口(通常用 nodetool status
看到)并调整服务以不在 127.0.0.1 上查找。