问题标签 [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.
lua - redis lua 脚本与单个调用
我有以下设置:
- 2 种不同的数据结构:集合、字符串
- 它们在不同的命名空间
*:collections:*
中,*:resources:*
- 客户对此一无所知,我每次都尝试获取这两个名称空间。
- 基于
exists
我决定最终获得哪个数据结构。 - 所有对 redis 的调用都是异步完成的(vert.x redis-mod)
现在我必须决定是作为 lua 脚本还是作为单个命令执行。
我想出的lua脚本:
单个调用或 lua 脚本有什么优缺点吗?
java - vert.x 和 BIO 线程
最近我开始学习非阻塞 Java 框架,其中有一个引起了我的注意reactive
- .event-driven
vert.x
我想同样的问题可能适用于akka(Play 框架),因为他们的理念或目标之一是相同的——那就是减少线程数,从而提高应用程序的可扩展性。
vert.x
建议它消耗的线程数〜相当于 CPU 内核的数量,但它也牢记有时您必须执行阻塞操作,因此它鼓励开发人员在单独的工作线程上执行阻塞操作(工人垂直于vert.x 的条款)。
这就是我们提出我的问题的地方:
- 如果我应该在一个新的单独线程上执行阻塞 IO 操作,这意味着每个执行阻塞操作的用户都有一个新线程,因此线程数再次等于经典阻塞线程模型中的用户数?
一个真实的例子是 JDBC 查询——如果 1000 个并发用户通过 JDBC 查询一个 SQL 数据库,每个用户都会为该阻塞操作生成它自己的工作线程。从我的角度来看,与经典的阻塞线程模型相比,没有线程备用、改进的可扩展性或 RAM 备用。我一定是错过了什么……或者没有?提前感谢所有答案。
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.
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”运行它。
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创建虚拟接口,但结果是一样的:
build - Vert.x Gradle 多模块构建
Vert.x 和 Gradle 对我来说都是全新的。我熟悉基础知识和 Hello World 演示。我正在寻找设置多模块构建的指南。
项目要求:
- 依赖项在顶层管理(不在每个模块中)
- 所有模块都位于同一级别(没有子模块)
- 模块属性在一个地方进行管理(例如,版本和 groupId/owner 为整个项目定义一次)
- 有一个启动模块负责从其他模块加载所有顶点(因此模块之间存在依赖关系)
- 生成单个(可执行)胖罐作为构建结果
- build 应该生成将项目导入 IDE 所需的文件(例如 Eclipse)
- 可以使用不同的语言进行开发(Java、Scala、JS 等)
我用vertx-gradle-template和vertx-gradle-plugin做了一些测试。它们都不适合我的要求。
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
谢谢
vert.x - Vert.x - 在当前运行的 verticle 中获取部署 ID
我正在寻找当前正在运行的 Verticle 的部署 ID。
目标是允许 Verticle 自行取消部署。我目前通过事件总线将deploymentID 传递到已部署的verticle 以完成此操作,但更喜欢一些直接的访问方式。
java - 从 start() 方法运行 Verticle
我是 Vert.x 的新手,我对如何运行\部署 Vert.x 应用程序有点困惑。
我习惯通过使用带有静态 main() 方法的主类来编写服务器,该方法执行我所有的初始启动代码,例如:连接到数据库、读取配置文件、初始化内部服务并最终创建侦听套接字以接受新的连接。
例如:
现在我的问题:
Vert.x 迫使我让我的主类扩展 Verticle 类并重写 start() 方法来初始化监听套接字。
所以现在我所有的初始化过程都必须在这个 start() 方法中完成。
这有意义吗??
而且我永远不能像以前那样通过命令行运行我的应用程序,而是使用“顶点”应用程序
我错过了什么吗?
cluster-computing - 在多服务器中构建简单的 Vertx Web 服务器
我是 Vert.x 的新手,有很多问题。有一个关于它的小文档和教程我想通过 Vert.x 构建一个在多服务器中运行的 Web 服务。如果我这样做,我是否需要配置任何东西,例如 DNS ...?任何人都有关于 Vert.x 的文档,请分享