问题标签 [vert.x]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1374 浏览

lua - redis lua 脚本与单个调用

我有以下设置:

  • 2 种不同的数据结构:集合、字符串
  • 它们在不同的命名空间*:collections:*中,*:resources:*
  • 客户对此一无所知,我每次都尝试获取这两个名称空间。
  • 基于exists我决定最终获得哪个数据结构。
  • 所有对 redis 的调用都是异步完成的(vert.x redis-mod)

现在我必须决定是作为 lua 脚本还是作为单个命令执行。

我想出的lua脚本:

单个调用或 lua 脚本有什么优缺点吗?

0 投票
4 回答
1195 浏览

java - vert.x 和 BIO 线程

最近我开始学习非阻塞 Java 框架,其中有一个引起了我的注意reactive- .event-drivenvert.x

我想同样的问题可能适用于akka(Play 框架),因为他们的理念或目标之一是相同的——那就是减少线程数,从而提高应用程序的可扩展性

vert.x建议它消耗的线程数〜相当于 CPU 内核的数量,但它也牢记有时您必须执行阻塞操作,因此它鼓励开发人员在单独的工作线程上执行阻塞操作(工人垂直于vert.x 的条款)。

这就是我们提出我的问题的地方:

  • 如果我应该在一个新的单独线程上执行阻塞 IO 操作,这意味着每个执行阻塞操作的用户都有一个新线程,因此线程数再次等于经典阻塞线程模型中的用户数?

一个真实的例子是 JDBC 查询——如果 1000 个并发用户通过 JDBC 查询一个 SQL 数据库,每个用户都会为该阻塞操作生成它自己的工作线程。从我的角度来看,与经典的阻塞线程模型相比,没有线程备用、改进的可扩展性或 RAM 备用。我一定是错过了什么……或者没有?提前感谢所有答案。

0 投票
1 回答
235 浏览

java - Access the object Inside Anonymous Handler function

I have a very basic question. I have just started with vertx Framework. There is one thing I am not able to understand like

but if I write the handler function separately like this

Handler can be anywhere in the same java class or other java class. Please help me me how I can write handler separately and still access the socket object.

0 投票
1 回答
883 浏览

java - 带有“io.vertx~mod-web-server~2.0.0”的 Vertx 事件总线桥,未获取数据

我只是想创建一个 html 页面来获取一个字符串并在同一页面中再次显示它。我的 index.html ,

当我将浏览器指向 localhost:8080 时,出现这些错误

这两个错误都发生在 sockjs-0.3.js 中。

我的client.js:

我的java垂直,

我在我的示例中使用 gradle 模板,并使用“gradlew.bat runMod”运行它。

0 投票
1 回答
3149 浏览

macos - 尝试扩展 Vert.x 服务器时出现“对等连接重置”和“打开的文件过多”异常

我正在尝试在 Mac OS X 上测试 Java Vert.x 网络服务器(基于 Netty)的可扩展性。为此,我将连接限制增加到 100 万:

然后我创建了 localhost 别名:

我现在可以连接到这些 IP 地址;但是,在建立了大约 1000-2000 个连接后,我得到“对等连接重置”连接:

它们之后是“打开的文件太多”异常:

有趣的是,当我使用 netstat 列出所有连接时,我看到有很多连接处于 FIN_WAIT_1 状态:

其他结果:

服务器代码(简化):

客户端代码(简化):

两者都以(在同一台计算机上)开始:

有人知道可能是什么问题吗?我还没有这种设置的经验,也许我只是犯了一个简单的错误。增加接受积压无济于事。

更多信息:

更新:

添加后

到 /etc/launchd.conf 和

到 /etc/sysctl.conf 并重新启动计算机,它已经好一点了。但是,在我现在得到“打开的文件太多”异常之后,即使打开的文件不超过 10000 个,即使读取普通文件也是如此:

更新 2

我也尝试了其他几个选项,但似乎恰好有 10180 个连接的限制,不能超过。除非有人有其他想法,否则我可能会切换到 linux。

更新 3

添加 JVM 选项“-XX:-MaxFDLimit”后,我现在可以打开 16331 个连接,直到出现以下异常:

这可能是因为默认端口范围(16383 个端口):

但是,由于我使用 50 个 localhost 别名,因此我预计最多可以打开 16383 * 50 = 819150 个连接。或者您不能为不同的别名使用相同的端口是一个已知的限制?

更新 4

我试图用networksetup创建虚拟接口,但结果是一样的:

0 投票
1 回答
747 浏览

build - Vert.x Gradle 多模块构建

Vert.x 和 Gradle 对我来说都是全新的。我熟悉基础知识和 Hello World 演示。我正在寻找设置多模块构建的指南。

项目要求:

  • 依赖项在顶层管理(不在每个模块中)
  • 所有模块都位于同一级别(没有子模块)
  • 模块属性在一个地方进行管理(例如,版本和 groupId/owner 为整个项目定义一次)
  • 有一个启动模块负责从其他模块加载所有顶点(因此模块之间存在依赖关系)
  • 生成单个(可执行)胖罐作为构建结果
  • build 应该生成将项目导入 IDE 所需的文件(例如 Eclipse)
  • 可以使用不同的语言进行开发(Java、Scala、JS 等)

我用vertx-gradle-templatevertx-gradle-plugin做了一些测试。它们都不适合我的要求。

0 投票
1 回答
246 浏览

groovy - Observable.create 在通过 container.deployVerticle 部署的 Verticle 中运行时导致 groovy.lang.MissingMethodException

Groovy verticle (Bar.start) groovy.lang.MissingMethodException 中的异常:没有方法签名:静态 rx.Observable.create() 适用

类加载器问题?没有把握。 Vertx 文档建议container.deployVerticle verticles 将使用父类加载器。

马文:

Vert.x 版本:2.1M5

谢谢

0 投票
1 回答
2797 浏览

vert.x - Vert.x - 在当前运行的 verticle 中获取部署 ID

我正在寻找当前正在运行的 Verticle 的部署 ID。

目标是允许 Verticle 自行取消部署。我目前通过事件总线将deploymentID 传递到已部署的verticle 以完成此操作,但更喜欢一些直接的访问方式。

container.undeployVerticle(deploymentID)

0 投票
1 回答
1580 浏览

java - 从 start() 方法运行 Verticle

我是 Vert.x 的新手,我对如何运行\部署 Vert.x 应用程序有点困惑。

我习惯通过使用带有静态 main() 方法的主类来编写服务器,该方法执行我所有的初始启动代码,例如:连接到数据库、读取配置文件、初始化内部服务并最终创建侦听套接字以接受新的连接。

例如:

现在我的问题:

Vert.x 迫使我让我的主类扩展 Verticle 类并重写 start() 方法来初始化监听套接字。

所以现在我所有的初始化过程都必须在这个 start() 方法中完成。

这有意义吗??

而且我永远不能像以前那样通过命令行运行我的应用程序,而是使用“顶点”应用程序

我错过了什么吗?

0 投票
1 回答
278 浏览

cluster-computing - 在多服务器中构建简单的 Vertx Web 服务器

我是 Vert.x 的新手,有很多问题。有一个关于它的小文档和教程我想通过 Vert.x 构建一个在多服务器中运行的 Web 服务。如果我这样做,我是否需要配置任何东西,例如 DNS ...?任何人都有关于 Vert.x 的文档,请分享