gpt4 book ai didi

java - Verticle 核心上的多个实例

转载 作者:行者123 更新时间:2023-11-30 01:45:48 27 4
gpt4 key购买 nike

我是 Vertx 新手,我有一个疑问,不幸的是 stackoverflow 尚未解决。我有 2 个内核的 ubuntu 服务器,我想使用此代码。

  @Override
public void start() throws Exception {
vertx.deployVerticle(StringName, new DeploymentOptions().setInstances(2));
}

上面的verticle是我个人网站的http服务器。 doc说的是

This is useful for scaling easily across multiple cores. For example you might have a web-server verticle to deploy and multiple cores on your machine, so you want to deploy multiple instances to utilise all the cores.

好吧,我的英特尔处理器中有 2 个核心,因此我 setInstances(2) 进行缩放。

<小时/>

假设我明天醒来,我想添加一个 verticle 来管理数据库和其他逻辑。我还有2个核心。哪个是正确的代码?

v1

  @Override
public void start() throws Exception {
//2 instances of http server verticle
vertx.deployVerticle(StringName, new DeploymentOptions().setInstances(2));
//2 instances of database verticle
vertx.deployVerticle(StringName, new DeploymentOptions().setInstances(2));
}

v2

  @Override
public void start() throws Exception {
//1 instance of http server verticle
vertx.deployVerticle(StringName, new DeploymentOptions().setInstances(1));
//1 instance of database verticle
vertx.deployVerticle(StringName, new DeploymentOptions().setInstances(1));
}

换句话说,我在问这个。知道我有 2 个核心;实例的 TOTAL SUM 必须为 2(即 1 个 http 和 1 个数据库)?或者每个实例的最大值必须为 2?

实际上这不是必须的,但我想做最佳实践

最佳答案

你的问题没有绝对的答案,这完全取决于你的每个垂直体的作用。您必须对不同的设置进行基准测试,以确定什么最适合您的特定用例。

在此过程中您可能会考虑的事情:如果您有一个“数据库”verticle,您可能会做一些小的处理(例如重新格式化数据),而http服务器verticle只会通过eventbus转发数据。在这种情况下,也许拥有更多的数据库 Verticle 实例会更好。但再次强调,在做出决定之前,请对不同的设置进行基准测试。

关于java - Verticle 核心上的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58017683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com