【发布时间】:2013-08-06 01:49:06
【问题描述】:
我们应用程序的架构由几个模块组成。这些模块可以作为单个进程运行,也可以在不同的服务器上单独运行。当模块位于不同的服务器上时,我们使用 REST 进行模块之间的交互。现在我们需要处理模块之间的流数据。一个模块发送请求——另一个模块异步发回数据块(对象)。我们尝试使用 KryoNet 和 Apache Mina。我们选择了最后一个,总的来说一切正常。但是解决方案有几个问题,有种重新发明轮子的感觉。
也许有现成的框架可用于创建异步 API 以传输流数据并支持多种传输和内置序列化:
- 本地——当模块/服务在单个进程中交互时
- netty 或模拟 -- 当模块在不同机器上相互交互时
- REST -- 通过 HTTP 与模块交互
类似于 elasticsearch Java API——所有操作都可以通过网络、本地或通过 REST 异步执行。 有没有现成的框架来创建这样的 API?
我们使用的是 Scala 2.10 和 Java。
【问题讨论】:
-
vert.x 是一个成熟的异步通信框架。
-
vert.x 是否支持不同的传输和内置序列化来创建如上所述的 API?
标签: java scala asynchronous elasticsearch netty