繁体   English   中英

Vert.x-Verticles与服务之间的差异

[英]Vert.x - differences between Verticles and Services

我们几天前开始使用vert.x。 阅读文档(A温柔指导异步编程与Eclipse Vert.x的Java开发人员- https://vertx.io/docs/guide-for-java-devs/ )我理解verticle概念。 我不了解的是“服务”和“服务代理”的概念:

“这是服务代理的主要目的。它使您可以在事件总线上公开服务,因此,任何其他Vert.x组件只要知道发布服务的地址就可以使用它。描述了服务Java接口包含遵循异步模式的方法。在幕后,消息在事件总线上发送以调用服务并获取响应。但是为了易于使用,它生成了可以直接调用的代理。

但是,如何将单个服务链接到verticle和事件循环概念? 它是否属于一个单独的独立Verticle,并具有其单独的事件循环,还是属于一个特定Verticle? 我应该在何时何地注册服务? 在垂直启动方法内部还是在main方法中?

谢谢!

粒度级别是相当自由的,但是从根本上说,一个顶点可以以不同的方式(例如, 这是三种常见方式 )公开一个或多个服务(单个实现具有业务目的的接口)。

事件总线是一种本机方式,允许顶点在消息队列模型上在它们之间异步通信。

因此,一个顶点可以通过侦听一个或多个事件总线的通道来公开一个或多个服务(并在此通道上进行回复),并可以通过在事件总线上的其他通道上发送消息来调用某些其他顶点所公开的其他服务。

PS:

1)没有必要写一个main使用vert.x方法(可以使用io.vertx.core.Launcher脂肪罐子或内部vertx可执行文件来运行你的主要verticle)。

2)您可以使用胖jar或vertx可执行文件中的io.vertx.core.Launcher类将所有顶点作为单独的pids启动,也可以在io.vertx.core.Launcher内部启动多个vertx以便默认情况下它们共享相同的事件循环(但您还可以根据以下网址声明一个工人池并使用“工人顶点”: https : //vertx.io/docs/vertx-core/java/#worker_verticles )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM