科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用JMS客户端利用空闲的计算机资源

用JMS客户端利用空闲的计算机资源

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

可以把JMS客户端放置在这些未充分利用的计算机上,从而分担一些通常应由服务器执行的工作。该客户端可以监听某个要执行的工作单元的请求队列,然后在应答队列上做出响应。

作者:中国IT实验室 来源:中国IT实验室 2007年8月24日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
  这里有一个有趣的方法叫做onMessage()。这个方法的用途仅仅是从应答队列接收已完成的对象。接着,它将调用其print()和store()方法。我的目标是让服务器把它对这个工作单元的处理工作分发给其他计算机。我已经通过JMS客户端实现了这一点,并使用消息驱动bean把结果返回给服务器。
可扩展性方面的考虑
  在这个框架的实际实现中,我们应该要解决几个问题,从而让例子变得可以扩展。

考虑使用一个大小可以调整的消息驱动bean池来处理响应。
如果请求队列没有外部使用者,应该创建一些消息驱动bean来使用服务器上的请求队列。这与本文的主旨不相符,但是可以防止队列溢出,或者在没有使用者的情况下请求队列利用不充分。
如果存在多种类型的工作单元,那么每种类型都应该有自己的请求和响应队列。
对于WebLogic Server,考虑使用JMS页面调度技术,以便防止当队列中存在过多没有及时使用的消息时,出现内存不足问题。
对于WebLogic Server,如果生产者(servlet)生产出过多没有使用的工作,考虑使用WebLogic JMS的调节功能。
对于WebLogic Server,考虑对队列使用分布式目的地,因为这可以把队列分布到多台服务器上。在这种情况下,应该集群化servlet本身,并对其进行协调,以避免创建重复的工作请求单元。
  还应该考虑本文结尾处的参考资料。此外,对其他服务器也适用的考虑事项是把客户端部分交付给各台计算机的方式。一种方式是自愿,即每台计算机的所有者都下载一个可以在客户端计算机上配置和运行的安装程序。另一种方式是使用商业软件分发包,它可以自动下载客户端的最新版本,并把它安装在客户端计算机上。
使用WebLogic Integration工作流来分发工作
  前面给出了一种把工作单元分发给客户端的直观方法,即使用servlet和消息驱动bean。尽管该方法实现起来相当容易,但是它不能解决的问题还很多,比如如何以自支持的方式启动过程,定时把请求交付给请求队列。当然,我们不希望让管理员编写一个shell脚本来不停地调用该servlet。此外,还应该以一种应用程序可以预先控制的方式限制所使用的请求数量。考虑到这一点,下面给出一个更加复杂的例子,用于把工作单元分发给远程JMS客户端并对其做出响应,从而利用未充分使用的计算机。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章