2012-11-21 52 views
0

我正在寻找一种实现简单API来接收日志消息(针对各种系统中的各种事件)的方式。Java:HTTP异步无阻塞远程日志记录服务器?

我们得出结论,HTTP获取请求是需要发布到此服务器的不同代码库和系统的最开放(最低进入门槛)。

服务器本身需要提供一个HTTP GET api来发送消息,例如, logging.internal/?system=email&message=An email failed

但是,我们希望这是非阻塞的,因此任何应用程序都可以向此服务器抛出信息,而不必等待(不会减慢任何生产系统)。

有谁知道任何框架来实现这个在Java中,或适当的方法?

+0

您是否考虑过使用网络服务? –

+0

如果你想要集成一个Web服务器(即监听连接并提供HTTP请求的东西),你可以使用Jetty。但我建议你使用POST而不是GET来发布诸如日志消息之类的东西。 – aioobe

+2

为什么GET当这显然是一个POST?除此之外,实现异步性只是您内部设计的一个问题。服务器与OK同时响应并在内部将要完成的工作推送到某个工作队列。 –

回答

1

在java中,对于服务器,可以对Restful部分使用JAX-RS的任何实现,并且在处理消息时,只需调用异步EJB方法(http://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html),该方法将执行较长的处理。 这将允许RESTful请求尽快返回。

在这种情况下,唯一的阻塞部分将是http请求/响应。

如果您希望减少阻塞,请使用异步方法(或使用Java EE 5的消息驱动Bean)在客户端发出RESTful请求。