caching - 在 Vert.x 中的 verticle 之间共享数据

标签 caching vert.x

在 Vert.x 中,Verticle 之间共享数据的最佳方式是什么?我最感兴趣的是低开销、直接、并发访问。当多个 verticle 需要访问的内容足够大而无法经济地以 json 形式发送时,事件系统似乎并不合适。

简单示例 - 考虑使用 Vert.x 的虚构邮政服务。假设它有两个垂直点:一个用于计算下一个要发送的包裹,另一个用于计算运送包裹的车辆在前一小时内消耗的燃料。

假设在任何给定时刻都有 1000 个包裹。可能有一个数据库返回这些数据,但随后它需要返回所有包,因为确定发送哪个包/消耗燃料的算法足够复杂并且由两个 verticle 执行。

到目前为止我发现了这些:

一些建议是:

  • 通过vertx.getMap使用JSON.stringify/JSON.parse。这对我来说看起来是相当大的开销,尤其是当内容经常更新时(例如包裹位置可以包含 GPS 坐标)
  • 使用 EHCache、Hazelcast 等,但这些大多会以“你可以尝试”的结论而消失,而没有详细信息

这里是否有我无法识别的规范 Vert.x 解决方案?我同意以不同的方式划分事物,拥有更多的 verticle、更低/更高的粒度等,如果这是可行的方法的话 - 也就是说,这更多的是关于 Vert.x 模型的架构问题。

我也有兴趣查看与上述相关的开源示例(如果有)。

最佳答案

node 应用程序的集群故事并不好,特别是如果您不想使用 Java。

由于听起来您想要对数据共享进行最低级别的控制,因此我建议使用传统的 Websocket 在 verticle 之间桥接事件总线。

关于caching - 在 Vert.x 中的 verticle 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296119/

相关文章:

php - 使用 PHP 缓存生成的图像

php - 注销后浏览器后退按钮

caching - Guava Cache 的 BiMap 功能?

java - Vert.x,RoutingContext无法接收json数组

java - 如何使我的Keystore文件与Java Vert.x项目一起使用(无效的Keystore格式)

javascript - 哪些浏览器在缓存 XMLHTTPRequest 响应时有问题?

database - flutter 中使用 sqflite 保存嵌套模型的有效方法

java - vertx auth2 工作示例

java - synchronized(){} 的异步(非阻塞)版本

java - 如果 vertx setPeriodic 延迟小于其处理程序执行时间会发生什么