Verticles 核心上的多个实例
Verticles multiple instances on cores
我是Vertx的新手,我有一个疑问,不幸的是Whosebug还没有解决。我有 ubuntu 个 2 核服务器,我想使用此代码。
@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的作用。您必须对不同的设置进行基准测试以确定适合您的特定用例的设置。
在此过程中您可能会考虑的事情:如果您有一个 "database" Verticle,您可能会做一些小处理(例如重新格式化数据),而 http 服务器 Verticle 只会转发事件总线上的数据。在这种情况下,也许有更多的数据库 Verticle 实例会更好。但同样,在做出决定之前对不同的设置进行基准测试。
我是Vertx的新手,我有一个疑问,不幸的是Whosebug还没有解决。我有 ubuntu 个 2 核服务器,我想使用此代码。
@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的作用。您必须对不同的设置进行基准测试以确定适合您的特定用例的设置。
在此过程中您可能会考虑的事情:如果您有一个 "database" Verticle,您可能会做一些小处理(例如重新格式化数据),而 http 服务器 Verticle 只会转发事件总线上的数据。在这种情况下,也许有更多的数据库 Verticle 实例会更好。但同样,在做出决定之前对不同的设置进行基准测试。