寻找一个好的解决方案来调用bean中的http客户端方法(即MDB,会话)

时间:2010-04-22 15:16:54

标签: java http asynchronous nio javabeans

我想在bean中调用http客户端方法(HTTP PUT,GET,),但我希望这些bean(MDB或无状态会话bean)尽可能快地运行(极短的寿命)。

 ---[ejb request]--> bean -----[http request]---->  host

问题是,HTTP连接太慢(尤其是连接到慢速主机时)。 以MDB为例,由于HTTP延迟,MDB运行时间太长,并且队列很快就会因持续的消息而停滞不前。 (消息生成器比http方法调用快。)

我该如何解决这个问题?

  1. 使用NIO http客户端?会有帮助吗?
  2. 打开额外的线程来执行http调用? (但不建议在Java EE中运行bean中的显式线程)
  3. 一些异步http客户端?有没有这样的库?他们不使用Thread?

1 个答案:

答案 0 :(得分:0)

使用基于NIO的客户端不会解决您的连接和目标主机太慢的问题。完全停止。听起来你有一个可以通过其他方法解决的基本问题:

  • 超时连接。只有在客户失败的情况下才有可行。
  • 增加并发性,即一次运行的客户端连接数。这对我来说似乎是最合乎逻辑的一步。