vert.x - Vertx - 用于事件处理的多个与单个 Verticle
问题描述
设想
我在 Vertx 事件总线的特定“地址”中收到一条消息 - 该消息可以有四种类型。处理程序应处理消息并将结果发送到另一个事件总线“地址”,其处理程序将其发布到外部服务 api。
问题
如何为此设计Verticle?我在下面描述了两种方法——考虑到这将部署在 Kubernetes 中,哪一种更高效、更快并且能够很好地扩展。工人verticles怎么样?我还缺少其他任何有效的方法吗?
方法
- 为每种类型编写一个verticle,由一个事件总线消费者消费和处理这种类型。将处理后的数据发送到“external-service-call”地址。
- 只写一个 verticle - eventbus handler 可以根据消息的类型决定并调用适当的方法,最后将其发布到“external-service-call”地址。
据我了解,我可以通过部署该 Verticle 的多个实例来扩展第二种方法。通过缩放,我的意思是这可以同时接受和处理大量的音量?第一种方法怎么样?
你认为我应该知道的其他方法?
解决方案
第一种方法更可取,原因有两个:
- 做更少的检查 => 更少的 CPU 时间 => 更多的并发
- 每个verticle中的代码更少=>更易于维护
话虽如此,这不是你应该关心的事情。您external-service-call
将比 EventBus 上的任何微优化慢一个数量级。
推荐阅读
- tensorflow - 当损失再次开始上升时,这意味着什么?
- mysql - Mysql json列约束错误(按json深度)
- python - 制作可以使用 Python 更改 .DOCX 元数据的应用程序
- hugo - Hugo 显示帖子目录而不是最近的帖子
- flutter - 当孩子和反馈相同时如何防止在可拖动的内部重建
- angular - 自定义模块内的角度嵌套组件
- javascript - 它只有两行程序,控制台显示错误“Uncaught TypeError: btn.addEventListener is not a function”
- mysql - 加入来自另一个表的列数
- python-3.x - 对熊猫中的两列进行成对检查
- camera - Filepond:如何允许相机输入