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

Vertex multi-verticle在单微服务中的使用情况是什么?

王英彦
2023-03-14

在vertx中构建的大多数web应用程序中,我看到人们在一个微服务中创建了两个垂直条。

  • 一个是rest verpt来处理HTTP请求。
  • 另一种是将刀顶点通信到数据库。

无论何时有任何api请求,HTTP verticle都会通过事件总线与dao verticle通信。

但鉴于顶点是单线程的,在这里创建两个不同的垂直线有什么好处呢。在事件总线上会有不必要的通信开销,而我只能创建一个处理rest和I/o的verticle。

我能理解在阻塞呼叫的情况下有一个单独的工人垂直通道的情况。但是在非阻塞的情况下,i/o调用它的用例是什么?

共有1个答案

羊舌新荣
2023-03-14

垂直。x不是单线程的。它使用多反应器模式:

在标准的反应器实现中,有一个单事件循环线程,它在一个循环中运行,在所有事件到达时将它们传递给所有处理程序。

单线程的问题在于,它在任何时候都只能在单核上运行,因此,如果您希望单线程reactor应用程序(例如Node.js应用程序)在多核服务器上扩展,则必须启动和管理许多不同的进程。

垂直。x在这里的工作方式不同。每个Vertx实例维护多个事件循环,而不是单个事件循环。默认情况下,我们根据机器上可用的内核数量选择该数量,但这可以被覆盖。

这意味着一个Vertx进程可以跨服务器扩展,而不像节点。js。

因此,通过运行多个verticle,您可以让您的服务分布在多个线程/CPU核心上。

 类似资料:
  • 在Excel服务器中单一数据项目简单说就是在一份数据中,它们只能填写一次。单一数据项目是相对重复数据项目而言的。 管理软件中如附图的“客户编号”、“客户名称”、“联系地址”、“邮政编码”、“所属区域”、“省份”就是单一数据项目。 重复数据项目简单说就是在一份数据表中,它们就可以填写多次。 如附图的“姓名”、“职务”、“手机”、“固定电话”、“Email”这些则是重复数据项目,因为可以有多个联系人,

  • 本文向大家介绍容器在微服务中的用途是什么?相关面试题,主要包含被问及容器在微服务中的用途是什么?时的应答技巧和注意事项,需要的朋友参考一下 容器是管理基于微服务的程序以便单独开发和部署它们的好方法。你可以将微服务封装在容器镜像及其依赖项中,然后可以用它来滚动开发按需实例的微服务而无需任何额外的工作。

  • 主要内容:微服务架构,微服务架构 vs 单体架构,微服务的特点,微服务框架微服务(MicroServices)最初是由 Martin Fowler 于 2014 年发表的论文 《 MicroServices》 中提出的名词,它一经提出就成为了技术圈的热门话题。 微服务,我们可以从字面上去理解,即“微小的服务”,下面我们从“服务”和“微小”两个方面进行介绍。 1) 所谓“服务”,其实指的是项目中的功能模块,它可以帮助用户解决某一个或一组问题,在开发过程中表现为 IDE(集

  • 本文向大家介绍PACT 在微服务架构中的用途是什么?相关面试题,主要包含被问及PACT 在微服务架构中的用途是什么?时的应答技巧和注意事项,需要的朋友参考一下 PACT 是一个开源工具,允许测试服务提供者和消费者之间的交互,与契约隔离,从而提高微服务集成的可靠性。 在微服务中的用法: 用于在微服务中实现消费者驱动的契约。 测试微服务的消费者和生产者之间的消费者驱动的契约。

  • 本文向大家介绍Web、RESTful API 在微服务中的作用是什么?相关面试题,主要包含被问及Web、RESTful API 在微服务中的作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 微服务架构基于一个概念,为了构建业务功能其中所有服务应该能够彼此交互。因此要实现这一点,每个微服务必须具有接口。这使得 Web API 成为微服务的一个非常重要的推动者。 RESTful API 基于 W

  • Java 对字段具有不同的访问级别: 由于封装的概念,我们总是尝试使用<code>private</code>修饰符,以及所需访问级别的getter和setter。这个答案显示了它的各种优点。既然getter和setter很酷,我们应该在什么时候选择<code>public/protected/default对象字段 到<代码>私有对象字段 澄清:我完全理解为什么以及什么是getter、sette