远程EJB调用与同一JVM中的本地EJB调用性能

时间:2016-03-09 10:24:36

标签: java java-ee ejb ejb-3.1

当我在同一个JVM中通过其本地接口/远程接口调用服务时,我试图找出是否有任何区别。

基于这篇文章: http://www.onjava.com/pub/a/onjava/2004/11/03/localremote.html?page=last&x-showcontent=text 本地调用应该更快一些,特别是在对象集合的情况下。

根据我的测试,我找不到两者之间的巨大差异,但是我可能会尝试使用少量数据。

但无论如何我想知道当我们在同一个JVM中时通过其远程接口调用服务是否有任何挫折,因为在我的项目中我们生成本地/远程接口但是没有真正的远程调用,客户端和服务在同一个JVM中,我正在考虑清理混乱并删除不必要的生成的远程视图,因为人们开始毫无理由地使用它们。

谢谢!

1 个答案:

答案 0 :(得分:1)

  • 实现将在容器之间因远程接口的执行方式而异,您不能依赖它执行类似于本地接口(尽管大多数容器将意识到您实际上正在访问“本地”远程接口)。可能存在差异,例如为远程调用生成新线程,通过引用传递值(例如,您可以在jboss中为on-vm远程调用启用此选项)等等。
  • 序列化总是很慢,应该尽可能避免
  • 基本上只是不这样做,绝对没有理由使用远程接口,除非你打算将你的应用程序拆分成多个EAR