使用Spring数据连接到AWS上的远程Couchbase实例会返回专用IP地址

问题描述 投票:0回答:1

我正在运行一个Spring启动应用程序,该应用程序使用Spring数据连接到AWS上的Couchbase远程实例。

我的Couchbase配置类如下所示:

@Value(value = "${couchbase-url}")
private String couchBaseUrl;

@Value("${couchbase-bucket}")
private String couchbaseBucketName;

@Value("${couchbase-password}")
private String couchbasePassword;

@Override
protected List<String> getBootstrapHosts() {
    return Arrays.asList(couchBaseUrl);
}

@Override
protected String getBucketName() {
    return couchbaseBucketName;
}

@Override
protected String getBucketPassword() {
    return couchbasePassword;
}

我的param值看起来像这样:

couchbase-url=34.168.163.36:8091

couchbase-bucket=conversion-data

couchbase-password=secretpassword

针对本地实例运行此操作时,一切都按预期工作。当我对远程实例运行时,我收到以下错误:

com.couchbase.client.deps.io.netty.channel.ConnectTimeoutException: connection timed out: /10.0.10.140:8093

其中10.0.10.140是私有IP地址。所以初始连接似乎没问题,但之后它将我的服务重定向到私有IP地址。

任何人都可以解释我如何让Couchbase响应公共IP地址?

java spring amazon-web-services spring-data couchbase
1个回答
0
投票

将服务器添加到couchbase群集时,它会询问服务器的IP地址或主机名,只需输入服务器的public ip即可。

您用于在群集中配置服务器的ip地址是couchbase为任何操作返回给客户端的内容(例如添加键值)

参考

但作为一般做法,不建议通过public ip进行沟通

如果您使用的是AWS,则可以在专用VPC中部署couchbase群集,并在另一个VPC中部署spring应用程序。然后,您可以使用VPC Peering在这两个VPC之间建立内部网络连接。

上述设置启动并运行后,您可以使用private ip与couchbase群集中的服务器进行通信

© www.soinside.com 2019 - 2024. All rights reserved.