首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当前Java中分布式程序的最佳实践

当前Java中分布式程序的最佳实践
EN

Stack Overflow用户
提问于 2013-01-12 20:05:40
回答 3查看 1.5K关注 0票数 5

我有兴趣实现一些跨越机器的进程,即形成一个分布式程序。这些过程提供的功能是我想要分发的,而不是数据。

那么,目前Java中的分布式编程规范是什么呢?

还是人机界面吗?还是某种信息系统?

我最初认为RMI和一些JMX用于远程管理,但我想知道当前的最佳实践是什么。似乎RMI总是“埋”在另一个层下(例如EJB,对吗?)

更新:

在回答和评论之后,似乎目前的趋势是使用消息传递系统?这不是在分布式设计中引入了“集中式”组件吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-12 20:25:49

我不认为RMI是应该走的路,如果RMI适合您的任务,那么只需使用EJB就行了,因为您将从应用服务器上获得许多特性,如安全/访问控制、事务管理、数据库管理等,在RMI中实现这些特性是痛苦的,浪费时间。

分布式编程的另一种选择是使用GridGain,这是一种强大的框架,您可以使用它轻松地在一组商品机器上运行您的程序。类似地,您可能会考虑Apache Hadoop

我从GridGain开始,因为它非常容易安装,只需解压缩和运行,而且与应用程序集成也相对简单。

编辑

RMI和消息传递系统有一点不同,因为同步通信和异步通信的使用应该取决于整个系统架构以及不同组件之间的交互方式。例如,当服务调用需要很长时间才能完成时,异步通信可能更适合,例如进行批处理操作或存档大数据。在这种情况下,服务客户端不保存系统资源(例如套接字和线程)。

另一方面,当服务/函数完成时间较短且每个远程服务取决于前一个服务的结果时,同步通信可能更合适。

票数 3
EN

Stack Overflow用户

发布于 2013-01-12 22:40:01

最近,我使用卡霍项目在java桌面(Swing)应用程序的几个实例中进行远程处理。这个项目已经有一段时间没有更新过了,但是它确实很容易使用,而且只起作用了,只需要尽量少的小题大做。

它是RMI的一个很薄的包装,所以它非常轻量级,而且非常快速。

有关一些示例,请参阅"Cajo,用Java完成分布式编程的最简单方法“一文

票数 2
EN

Stack Overflow用户

发布于 2013-01-13 19:54:40

如果您在应用服务器/Java堆栈中运行,最佳实践通常是EJB。

我喜欢异步消息传递解决方案。即使用JMS。您可以轻松地将ActiveMQ设置为经纪人网络,然后依赖发布订阅模式。在这种情况下,将没有中心组成部分。还有其他经纪人也这样做。

你看过阿克卡吗?它不是任何接近标准的东西,而是一个nische概念,如果您的应用程序在它的本质上是非常分布式的,那么它是有用的。

对于您来说,另一种趋势可能过于以数据为中心,那就是使用分布式内存/数据网格。例如hadoop等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14297445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档