首页 > 解决方案 > Vertx - 用于事件处理的多个与单个 Verticle

问题描述

设想

我在 Vertx 事件总线的特定“地址”中收到一条消息 - 该消息可以有四种类型。处理程序应处理消息并将结果发送到另一个事件总线“地址”,其处理程序将其发布到外部服务 api。

问题

如何为此设计Verticle?我在下面描述了两种方法——考虑到这将部署在 Kubernetes 中,哪一种更高效、更快并且能够很好地扩展。工人verticles怎么样?我还缺少其他任何有效的方法吗?

方法

  1. 为每种类型编写一个verticle,由一个事件总线消费者消费和处理这种类型。将处理后的数据发送到“external-service-call”地址。
  2. 只写一个 verticle - eventbus handler 可以根据消息的类型决定并调用适当的方法,最后将其发布到“external-service-call”地址。

据我了解,我可以通过部署该 Verticle 的多个实例来扩展第二种方法。通过缩放,我的意思是这可以同时接受和处理大量的音量?第一种方法怎么样?

你认为我应该知道的其他方法?

标签: vert.xvertx-verticlevertx-eventbus

解决方案


第一种方法更可取,原因有两个:

  1. 做更少的检查 => 更少的 CPU 时间 => 更多的并发
  2. 每个verticle中的代码更少=>更易于维护

话虽如此,这不是你应该关心的事情。您external-service-call将比 EventBus 上的任何微优化慢一个数量级。


推荐阅读