假设我有一些通过 ZeroMQ 套接字进行通信的服务,并且我想向单页 Web 应用程序提供对该服务的访问。我希望 Web 应用程序与提供 REST API(用于控制和查询)和 WebSockets(用于监视)的服务通信,并且通过将 ZeroMQ 与第一个服务通信来实现这一点。我想用 Scala 写这个。
我可以使用哪些选项来构建第二个服务?
一个非常集成的解决方案是为此使用 Akka/Play2。
Akka 将是通过 akkas ZeroMQ Module与 ZeroMQ socktes 通信的核心组件,它为您提供了一个很好的 Scala-API 和 Akka/Actor 集成。然后可以使用play-mini或play2通过 HTTP/WebSockets 访问此 Akka/Actor 系统,主要区别在于定义 HTTP 端点的风格。
对于 REST API,我会推荐Spray - 一个很好的库,具有非常简洁和灵活的 DSL,用于定义 Web 服务。我们已将 Spray 集成到我们当前的项目中,并且对它非常满意。至于play-mini,AFAIK,它取决于整个play2项目,所以你最终会得到很多你不需要的东西。