当前位置: 首页 > 知识库问答 >
问题:

用于jdbc的Vertx worker verticle池

巫研
2023-03-14

我是Vert.x的新手,我想实现一个worker verticles池来使用Bonecp进行数据库查询。然而,我对如何“调用”它们工作以及如何在它们之间共享BoneCP连接池有点困惑。

我在Vertx DeploymentManager源代码中看到,start(Future)方法被同步调用,然后verticle被保存在内存中,直到未部署为止。在start方法完成后,在辅助verticle上调用方法的正确方式是什么?如果我部署了许多verticle实例(使用DeploymentOptions.setInstances()),那么Vertx会在它们之间进行负载平衡吗?

我看到Vert.x附带了一个JDBC客户机和一个工作池,但是我可以使用的数据类型有限,因为它使用EventBus并序列化数据库返回的所有数据。我需要处理许多不同的数据类型(包括dates、BigDecimals和binary对象),我希望尽可能避免序列化,而是在worker verticle中进行查询,处理结果并通过Future或AsyncResult返回一个对象(我认为这是在堆上完成的,所以不需要序列化;这对吗?)。

请帮我理清所有这些问题:)如果你给我如何使这工作的例子,我将非常感激!

谢了!

共有1个答案

齐昊焱
2023-03-14

我试着一一回答你的问题。

如何‘叫’他们去工作

您使用EventBus将工作人员称为verticles。那是他们之间沟通的恰当方式。请参见此示例:
https://github.com/vert-x3/vertx-examples/blob/master/core-examples/src/main/java/io/vertx/example/core/verticle/worker/mainverticle.java#l27

不要。相反,为每个创建一个小的连接池。否则会引起意外行为。

config.setMinConnectionsPerPartition(1);
config.setMaxConnectionsPerPartition(5);
config.setPartitionCount(1);

Vertx会在它们之间进行负载平衡吗

不。这就是@Jochen Bedersdorfer和我建议使用EventBus的原因。正如您所建议的,您可以有一个对worker verticle的引用,但这样您就会被1:1配置所困扰。

 类似资料:
  • 我正试图使用IntelliJ IDE从Spark连接到老虎机数据库。有人能帮助jdbc驱动程序(。jar)文件吗?我正在寻找“com.tigergraph.jdbc.驱动程序”。 我确实找到了下面的gitHub存储库,其中包含了所有必需的信息。java文件。但是,我不知道如何在我的spark项目中使用它。https://github.com/tigergraph/ecosys/tree/maste

  • 问题内容: 美好的一天, 你们知道GBQ的任何JDBC接口或驱动程序吗? 请只使用Java-Python库已经完成。 预先感谢,祝您有美好的一天,迈克 问题答案: 有一个第三方JDBC驱动程序,可以从以下位置获得: http://code.google.com/p/starschema-bigquery- jdbc/ 它支持与原始Google BigQuery相同的SQL SELECT语法,并且不

  • 我是Spring Boot的新手。 我正在尝试编写一个 rest api,它应该从数据库中获取数据并将其显示给消费者。我不知道如何处理这个问题。 请帮助在Liberty Server上使用JDBC数据源运行应用程序。简单的Spring启动Rest服务工作正常。 如果有很多问题,请原谅我。我想学这个。 这是我的pom文件: DemoService.java OracleDatabaseConfigu

  • 我有一台运行在bluehost机器上的数据库服务器,我给自己提供远程IP访问(通过我的IP地址)。 在我的客户端机器上,我有MySQL工作台,我有一些Java代码。MySQL工作台正在使用我想要的数据库获取连接。使用驱动程序管理器连接,我无法指定我的数据库,例如在URL中的端口#之后使用正斜杠,否则会出现连接错误。 我可以使用Workbench或驱动程序管理器使用相同的用户ID和密码获得连接,但使

  • 问题内容: Spring JDBC模板调用存储过程的正确方法是什么? 说,我有一个同时声明和参数的存储过程,如下所示: 我遇到了一些基于方法,我们必须显式地注册和参数化。在课堂上考虑以下方法: 当然,我知道我可以这样使用它: 我已经在实现中注册它们的目的是什么?换句话说,为什么我需要传递一个csc春天可以简单地在内部完成的事情?基本上,我不能传递其中一个而不是两个吗? 或者,是否有比我到目前为止遇

  • 问题是关于RowMapper在主/细节场景中的最佳实践用法,我们希望使用Spring jdbc急切地获取细节。 假设我们有Invoice和InvoiceLine类。 当将Spring Jdbc与行映射器一起使用时,我们通常有 现在的问题是我想急切地获取与此发票实例相关的InvoiceLine。如果我在rowmapper类中查询数据库可以吗?或者有人喜欢另一种方式?我使用下面的模式,但对此不满意。