java - 两个Java进程之间的快速通信

标签 java jvm protocol-buffers rmi

我有两个小型 Java 应用程序想要进行通信。应该有一个简单的请求消息和 JSON 格式的响应。

我找到了两个解决方案:

RMI 和 Protocol Buffer 。

什么是最快的方法以及什么是最容易实现的?

最佳答案

RMI 或 ProtocolBuffers 都不满足您的要求。 RMI 使用 Java 对象序列化编码发送和接收数据。 ProtoBuffers 也使用自己的编码方案。两者都不兼容 JSON。

What would be the fastest way and what the easiest to implement? are suitablestated requirements

忽略上述问题...

  • RMI 更简单,尽管这一点值得商榷。 (这取决于你对这两种技术的了解程度)

  • ProtoBuffers 会更加高效。

<小时/>

Saying JSON I mean a String whichs content has the JSON format.

如果您正在发送和接收 JSON 字符串,并且已经处理了编码/解码,那么最快、最简单的方法是使用普通的套接字。在这种情况下,RMI 或 ProtoBuffers 都没有给您带来任何实际值(value)。

另一种选择是 HTTP 或 HTTPS。这些更有可能被允许通过防火墙。如果实现得当,HTTP 也会更加安全。但这种安全性是以性能为代价的。

如果防火墙不是问题,那么普通套接字级通信是一个不错的选择,根据消息大小、可靠性要求、是否需要一次性或重复消息交换等,使用 TCP 或 UDP。

关于java - 两个Java进程之间的快速通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41997211/

相关文章:

java - 访问当前对象所属的对象

c# - Google Protocol Buffer 不为 C# 编译

c++ - 已编译的 Protocol Buffer 代码文件没有 ParseFromIstream 方法

java - 如何分析PermGen空间?

java - 如何发送以protocol buffers作为有效负载格式的HTTP请求?

java - 连接到 sql server 时端口号无效

java - Google Tango 更新监听器 onXyzIjAvailable 回调永远不会被调用

java - Spring Boot ,gradle,angularJS和一个 fat jar

java - 相对于 JVM 的字符串池,在 Java 中创建一个字符串的时间成本是多少?

java - 连续 2 个完整 GC 周期内存未清除