我是Vertx的新手,我怀疑不幸的是,堆栈溢出问题还没有解决。我有2核的ubuntu服务器,我想使用这段代码。
@Override
public void start() throws Exception {
vertx.deployVerticle(StringName, new DeploymentOptions().setInstances(2));
}上面的垂直线是我个人网站的http服务器。文档说
这对于跨多个核很容易地扩展是有用的。例如,您可能有一个要部署的web服务器垂直线和您的计算机上的多个核心,因此您希望部署多个实例来使用所有的核心。
好吧,我有两个核心在我的英特尔处理器,所以我setInstances(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(所以1 http和1数据库)吗?还是每个实例的最大值必须是2?
这实际上不是必须的,但我想要做最好的实践。
发布于 2019-09-20 08:30:55
你的问题没有绝对的答案,这完全取决于你的每个垂直线做什么。您必须对不同的设置进行基准测试,以确定什么对您的特定用例有好处。
在这个过程中您可能会考虑的事情:如果您有一个“数据库”垂直线,很可能您会做一些小的处理(例如,重新格式化数据),而http服务器垂直线将只在事件总线上转发数据。在这种情况下,拥有更多的数据库垂直实例可能会更好地工作。但是,在做出决定之前,要对不同的设置进行基准测试。
https://stackoverflow.com/questions/58017683
复制相似问题