有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用vert处理异步操作。十、

我使用vert编写了Java web服务。x、 我想我遗漏了一些关于infra如何工作的事情

我部署了一个verticle,我们称之为HttpVerticle。内部有一个路由(router.post("/dowork").handler(new MyHandler())

MyHandler正在执行非常快速的预处理操作,然后向事件总线发送消息

还有第二个verticle Workerticle,它是在部署HttpVerticle时部署的,它使用事件总线获取来自MyHandler的消息。这里有一段代码可能很长(等待REST api调用/DB write/S3 write等),完成后,我只需将message.reply()返回给MyHandler

当我尝试处理大约150个并发请求时,看起来不错,但当我尝试处理200个或更多请求时,我开始超时。 我增加了HttpVerticle的实例数量,这很有帮助

我不明白的是为什么? HttpVerticle的线程基本上什么都不做,只是向总线写入数据,所以它应该能够响应1000个请求,不是吗

我的第二个问题是,如果我的处理模式->;写入总线->;Verticle consume from bus是正确的,因为我看到了第二种模式,即只使用处理程序,而不使用事件总线


共 (0) 个答案