当前位置: 首页 > 面试题库 >

如何从Java连接到正在运行的BigTable模拟器

符献
2023-03-14
问题内容

我正在尝试使用gcloud beta仿真器中的bigtable仿真器。我启动模拟器,获取主机名(localhost)和端口(在本例中为8885)

gcloud beta模拟器bigtable启动

执行中:/ usr / local / Caskroom / google-cloud-sdk / latest / google-cloud-sdk
/ platform / bigtable-emulator / cbtemulator –host = localhost –port =
8885

我正在尝试从Java测试客户端连接到仿真器,这是我提供的:

Configuration conf = BigtableConfiguration.configure(projectId, instanceId);

if(!Strings.isNullOrEmpty(host)){
    conf.set(BigtableOptionsFactory.BIGTABLE_HOST_KEY, host);
    conf.set(BigtableOptionsFactory.BIGTABLE_PORT_KEY, Integer.toString(port));
}
connection = BigtableConfiguration.connect(configuration);
try (Table table = connection.getTable("tName")){
    table.put(<Put instance>);
}

当我执行测试代码时,我得到:

16:36:37.369 [bigtable-batch-pool-1] INFO com.google.cloud.bigtable.grpc.async.AbstractRetryingRpcListener - Retrying failed call. Failure #1, got: Status{code=UNAVAILABLE, description=null, cause=java.net.ConnectException: Connection refused: localhost/0:0:0:0:0:0:0:1:8885}
java.net.ConnectException: Connection refused: localhost/0:0:0:0:0:0:0:1:8885

我正在使用图书馆: com.google.cloud.bigtable:bigtable-hbase-1.2:0.9.1

知道我在做什么错吗?

谢谢 !


问题答案:

您需要设置一个附加的配置属性:

conf.set(BigtableOptionsFactory.BIGTABLE_USE_PLAINTEXT_NEGOTIATION, true);

另外,从日志消息中看,它似乎正在尝试连接到IPv6地址,我认为这不起作用。仔细检查这host是一个有效的IPv4地址。

Java客户端将在不久的将来使此操作变得更容易。



 类似资料:
  • 我想简单地启动一个docker容器,它执行一些最终启动JBoss的java代码。 这工作得很好,除了我不知道如何再次连接到容器并回到bash提示符。 这是我启动容器的方式: 这是runAutomate.sh 现在,我必须在最后做尾部,以在容器完成运行我的自动化代码后保持其运行。最终的结果是Jboss在正确配置我的应用程序的情况下运行。 现在,当我再次尝试连接到容器时,我只得到一个没有提示的空白屏幕

  • 我可以在Android emulator中做些什么来将其连接到我位于或? 我已经尝试过了,但是模拟器仍然像谷歌搜索一样接受我的请求localhost或者更糟的是,它说在我的网络服务器正常运行时没有找到这个页面。

  • 当尝试使用 MongoDB 连接字符串 mongodb 连接到 Azure CosmosDB 的本地模拟器,我收到以下错误: 我已从Microsoft下载中心安装了最新版本的模拟器(当前为v2.4.5),并按照Microsoft文档的安装说明进行了操作 我尝试过使用Mongoose connect with Node.js(与Azure云配置完美配合)进行连接,并使用VS代码Azure Cosmo

  • 问题内容: 连接到在Amazon EC2集群中运行的Java应用程序时遇到问题。我们绝对允许“ JMX端口”(通常是RMI注册表端口) 和 服务器端口(完成大部分工作)都进入所讨论实例的安全组。Jconsole连接但似乎挂起并且从不显示任何信息。 我们正在使用以下内容运行我们的java: 我们尝试过: Telnet 连接 到端口,但不显示任何信息。 我们可以在ssh上使用remote-X11在实例

  • 我们在连接到运行在AmazonEC2集群中的Java应用程序时遇到了问题。我们明确地允许“JMX端口”(它通常是RMI注册表端口)和服务器端口(它完成了大部分工作)对所讨论的实例的安全组。Jconsole连接但似乎挂起并且从未显示任何信息。 Telnets连接到端口,但不显示任何信息。 我们可以通过ssh使用remote-X11在实例本身上运行,它可以连接并显示信息。因此JRE将其导出到本地。 打

  • 我正在运行2个spring boot应用程序:一个客户端和rest-api。客户机与rest-api通信,rest-API与mongodb数据库通信。所有3层都在docker容器中运行。 我启动容器,通常指定docker文件中公开的端口,并将它们映射到主机上的端口,例如:-p 7070:7070,其中7070是docker文件中公开的端口。 当我通过< code > Java-jar[applic