首页 文章

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

提问于
浏览
0

我正在运行一个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地址?

1 回答

  • 0

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

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

    参考

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

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

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

相关问题