大家好我是目前正在开展一个项目,涉及广泛的使用爪哇马绍尔群岛共和国和我想知道,如果任何人知道任何良好的资源。

这问题我有用的材料,我发现目前是其通常相当出的日期(如Java1.3)和/或一半完成。我甚至会很乐意买一本书,但在亚马逊找所有的书都像7岁。

因此,如果有人知道的任何良好的资源、书籍或很好的例子实现的,我将非常感兴趣听到关于他们。在此先感谢您的帮助。

有帮助吗?

解决方案

RMI Hello World 一开始看起来不错。当然,它仍然是一个简单的例子,因此有关RMI性能/可扩展性的提示可能会有用因为你已经熟悉RMI了。

其他提示

多年来Java.RMI的变化很小,因此仍然可以引用大多数旧文档。请注意,如果您使用的是Java 5.0版本,则需要编译RMI存根。 大多数人已经离开了RMI,并且已经为分布式系统采用了 River (以前称为Jini)。

如果您仍在考虑继续使用RMI,那么我建议您阅读 Oracle文档或在他们的论坛上发布您的问题

至于书籍… William Grosso的 Java RMI 或Elliotte Harold的 Java网络编程

马绍尔群岛共和国并没有改变那么多。我认为1.3时代的书会是很好。

谢谢大家的回答我认为人们所说的关于RMI没有太多变化的说法是正确的,但是教程仍然可以更好地掩盖一些重点。

到目前为止,我发现的最好的书,包括一些非常好的RMI,如激活是 Java网络编程和分布式计算

我确实看过其他 O'reilly Java RMI对于任何比最小的RMI项目都要大的东西,书和我的观点都不是很好。

如果您要大量使用RMI,我建议您查看 Spring Remoting 。它有助于抽象远程协议,帮助您在以后需要时切换远程实现(例如切换到Hessian或SOAP)。

如果使用RMI或任何其他远程对象协议,请记住一件事是,您可以通过调用远程对象上的方法来生成大量流量。在您的代码中,这些对象可能是远程的,这可能并不明显。它可能会产生性能问题。

如果可以的话,我建议您建立一个或多或少面向服务的架构,在这里您可以调用远程服务来获取数据对象,但不要对这些对象有太多行为......

您是否尝试过不要 RMI教程? Sun教程都非常好,它们通常是我开始学习Java的第一个地方。

我们在学校使用的具有良好示例代码的书籍是 J2EE Developer's Handbook 。请记住,这是一本大约1500页的大型参考书,在RMI上只有一章(约50页)。

O'Reilly RMI的书非常好。去吧。

关于多宿主RMI的绝对宝贵的文章(具有多个IP的主机)以非常容易理解的方式解释RMI,并讨论在具有多个IP地址的计算机上托管注册表的问题以及如何处理私有IP。保存了我的培根。

除了已经提到的文章之外,了解Java RMI内部相当不错的恕我直言,稍微通过内部。

这是使用Redisson框架远程方法调用的另一个很好的例子:

让我们假设 YourServiceImpl 包含您需要远程调用并实现 YourService 接口的方法。

YourServiceImpl应该通过RemoteService对象在Redisson中注册:

YourService yourService = new YourServiceImpl();

RRemoteService remoteService = redisson.getRemoteService();
remoteService.register(YourService.class, yourService);

要远程调用方法,只需要服务接口:

RRemoteService remoteService = redisson.getRemoteService();
YourService service = remoteService.get(YourService.class);

MyObject result = service.myMethod(someParam1, someParam2);

它也支持异步调用。

// async interface for YourService
@RRemoteAsync(YourService.class)
public interface YourServiceAsync {

    RFuture<Long> someMethod1(Long param1, String param2);

    RFuture<Void> someMethod2(MyObject param);

}

RRemoteService remoteService = redisson.getRemoteService();
YourServiceAsync asyncService = remoteService.get(YourServiceAsync.class);

RFuture<Long> res = asyncService.someMethod1(12L, "param");
res.thenApply(r -> {
 ...
});

更多细节此处

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top