首页 / 知识
关于jakarta ee:在Web和业务层之间使用RMI或JMS有什么优缺点?
2023-04-15 20:40:00

What are the pros and cons of using RMI or JMS between web and business tiers?对于典型的Web客户端到Servlet / WS到业务层(Spring或EJB)应用程序,在诸如远程RPC或用于Web(Servlet)层的消息传递到远程业务层的方法之间需要权衡取舍,除了基本的同步/异步方面? 对于Web客户端,您是指Web浏览器?如果是这样的话,我建议您看一下DWR或JAX-RS之类的东西。仅当双方都是Java代码时,RMI或JMS才真正起作用。 对于任何远程处理技术,使用它们的最大问题往往是该技术对您的业务对象的侵入程度。例如在任何地方使用RMI接口/异常,或在业务代码中使用JMS API。 我的建议是在Java中到处使用POJO,然后使用诸如Spring Remoting之类的技术在中间件上分层(无论是RMI还是JMS或其他任何东西),但要完全将中间件代码与业务逻辑分离,以便您可以在各种技术之间进行切换在任何时候(并使您的业务逻辑代码更简单,并专注于您的业务问题)。 例如,请参阅Spring Remoting的Camel实现,然后允许您使用这些传输和协议中的任何一个,例如RMI,JMS甚至纯HTTP,电子邮件,文件或XMPP-然后使用简单的URI字符串轻松地在它们之间进行切换变化。 我们通过Spring使用RMI,发现它非常易于使用,相当健壮和快速。尽管我们的要求是要有一个响应能力强的链接,并且实际上并不需要添加消息传递组件。 SUN RMI为我们破产了。 一个非常长时间运行的应用程序的设置和垃圾收集,并进行连续的测量。我们正在修补程序,以使其能够连续工作。我们运行的JMS应用程序不会遇到RMI出现的内存不足错误或gc问题。需要定期调用System.gc()且不与增量收集一起工作以恢复资源的所有内容都被编码为错误。 通过JDK 6和正确的属性设置,RMI的可靠性得以提高,但是JHC是一个坚固的框架。通过在nio中使用通道并修复system.gc()的sun nio使用,可以极大地改善RMI。 正确的答案-与域代码分开进行通信(机制)。 RPC是紧密耦合的,协议和应用程序可能会相互干扰。 JMS将协议与应用程序分开,这是一个更好的范例。 |
最新内容
相关内容
linux命令测试客户端?
linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,linux测试网速的工具1、speedtest-cli是一个用Python编写的轻量级linux有什么好玩命令?
linux有什么好玩命令?,地址,系统,工作,信息,命令,环境,管理,做好,时间,衍生,linux酷炫的命令怎么安装你需要安装 Perl 的 curses 包和 Term:Ani关闭linux客户机命令?
关闭linux客户机命令?,系统,工作,命令,状态,时间,用户,目的,客户机,方式,方法,linux关机命令1、shutdown命令 shutdown命令用于安全关闭Linuxlinux客户访问命令?
linux客户访问命令?,网络,系统,地址,服务,管理,信息,数字,基础,密码,命令,Linux下定制SSH来简化远程访问教程1、/etc/ssh/ssh_config 为默认的linux命令都有什么?
linux命令都有什么?,系统,工作,地址,信息,管理,命令,单位,标准,数据,目录,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令安卓linux命令客户端?
安卓linux命令客户端?,系统,软件,名字,设备,互动,服务,工具,基础,发展,代码,android系统,在终端可以输入那些命令1、logcat 输出日志 printenv安装客户端linux命令?
安装客户端linux命令?,软件,中心,在线,发行,全国,公司,工作,国家,信息,命令,请列出linux下安装软件的命令.aptitude——详细查看已安装或可用linux访问客户机命令?
linux访问客户机命令?,系统,信息,网络,软件,名称,地址,管理,工具,设备,服务,在linux下如何访问服务器首先连接到Linux主机并进入命令行状态。linux命令和应用程序?
linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,在linux下如何装应用程序?需要什么命令啊首先从官网下载hdf5,根据linux客户端连接命令?
linux客户端连接命令?,系统,地址,服务,工具,位置,基础知识,网络,工作,基础,命令,Linux中使用ln命令在文件之间建立连接的用法讲解1、ln 在文件Python编程语言的优缺点
Python编程语言的优缺点,代码,网站,航空,管理系统,培训,系统,概念,网络,基础,机器人,Python是一种编程语言,它的名字来源于一个喜剧。是由Guid线上Python培训和线下有什么不同?
线上Python培训和线下有什么不同?,培训,基础,实战,电脑,项目,教育,时间,地方,初级,技术,学习互联网技术的人越来越多,很多机构都采取线上和线下