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

vertx垂直实例

湛博易
2023-03-14

我被vertx实例搞糊涂了。第一次看到文档时,我认为实例意味着事件循环线程的数量
当我深入研究源代码(vertx 2.1.2)时,我发现verticle实例意味着事件循环线程组中的一项任务。事件循环线程总是等待选择器并运行任务。

在vertx中有必要有顶点实例吗?因为顶点只由一个事件循环运行一次。更准确地说,事件循环线程运行Verentlestart方法并将其丢弃,它就像一个条目一样工作,仅此而已。

如何收集多个事件的结果?

  1. 使用同一处理程序实例在事件总线上发送多个查询

当多个事件回调时,多个事件循环线程有可能执行处理程序,因此存在作业将被多次运行的竞争条件。我怎样才能避免呢?

任何解决办法都将得到证实。

共有1个答案

董昕
2023-03-14

在vertx中有必要有顶点实例吗?

不,这不是必需的。您不必创建Verticle类的任何实例。

如何收集多个事件的结果?

问题

当多个事件回调时,多个事件循环线程有可能执行处理程序,因此存在作业将被多次运行的竞争条件。我怎样才能避免呢?

通过事件总线发送的每个查询都将有一个相应的处理程序对象。它们不会共享同一个处理程序实例。对于查询的每个响应,都会调用相应的Handler对象的handle()方法。因此,在特定的处理程序对象上没有竞争条件的位置。

 类似资料:
  • 新手警报。 我正在尝试在Vertx中编写一个简单的模块,它每10秒轮询一次数据库(PostGres)并将结果推送给客户端。我正在考虑将阻塞代码(通过JDBC查询数据库)限制在工作垂直中,上面的其余层是完全非阻塞和异步的。 此模块将打包为一个jar,并分发到不同的应用程序(通常是webapps),这些应用程序可以通过javascript桥订阅事件总线。 我这里的问题是在集群环境中,我有5个运行ver

  • 当我需要在Vertx中创建新的垂直线时,有人能给我提供最佳实践吗。我知道,每个垂直节点都可以远程部署并放入集群。然而,我仍然有一个问题,如何设计我的应用程序。那么我的问题是: 有很多垂直线可以吗 例如,我可以将vertx作为参数传递到每个endpoint,并使用它来创建路由器:

  • 我对Vert.x非常陌生,就像几天前一样。我来自一个JAX式的,安逸的世界。我可能大错特错,请指正。 我的问题是:如何使顶点公开自己的REST接口(子路由器),以及如何将其子路由器注册到应用程序的主路由器中? 我尝试过类似的东西,但是当我请求/产品/所有:( } }

  • 我知道,在vert. x中,默认的版本将在每次我们不需要在处理程序中写入线程安全时运行在相同的事件循环中。 例如,如果我有一个运行HttpServer的版本- } 可以保证,在任何时候,我的请求处理程序都会在两个事件循环上被调用两次(针对2个不同的请求)。因此,我不必在请求处理程序中处理线程安全问题。 如果我运行多个HttpServer顶点实例- 我需要注意线程安全吗?多个请求处理程序(最大值=1

  • 本文向大家介绍如何实现垂直居中?相关面试题,主要包含被问及如何实现垂直居中?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 父元素固定宽高,利用定位及设置子元素margin值为自身的一半。 父元素固定宽高,子元素设置position: absolute,margin:auto平均分配margin css3属性transform。子元素设置position: absolute; left:

  • 垂直对齐 1. grid-template-areas 属性值保持换行,并使用空格保持每列垂直对齐。 例如: .foo { grid-template-areas: "header header" "nav main" "footer ...."; } 2. grid、grid-template