java - 在 C# 和 Java 应用程序之间传递数据

标签 java c# file-upload asyncsocket message-passing

<分区>

我在 C# .Net 中有一个 API,用于上传大小在 10 B - 100 KB 之间的文件。每秒,系统会收到大约 5 个这样的调用。现在我想将这个文件传递给 JAVA 进程(因为它是 Kafka 的生产者,我们希望它基于 JVM,而 C# API 是遗留的)。两者几乎总是驻留在同一台机器上。这样做的最佳方法是什么?

我阅读了有关 jni4net 的信息,它是用于从 C# 与 Java 交互的 IKVM。它们会更好还是我应该让它基于套接字(Java 中的 Web API 接受文件),或者我应该从 C# App 上传的本地文件系统或我缺少的任何其他选项读取?

最佳答案

在高并发环境下,从本地文件系统读取可能不是一个好主意。

您可以使用 Java 支持的内存映射文件和 FileChannel。

根据操作系统,您还可以为 IPC 使用命名管道,这里有一篇文章展示了如何在 .Net 和 Java 之间使用管道:

http://v01ver-howto.blogspot.com/2010/04/howto-use-named-pipes-to-communicate.html

考虑到所有选项,我会选择套接字。它们便于携带且易于操作,很可能会满足您的性能要求。

关于java - 在 C# 和 Java 应用程序之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29740567/

相关文章:

c# - 将字母类型转换为 int 时,C# 会做什么?

c# - 并发集合和唯一元素

c# - 具有多个数据库的存储库模式

html - 如何检测浏览器中的目录选择功能?

java - 优先队列和优先阻塞队列

java - 提交jar执行

wordpress - 多文件上传字段的重力形式预览缩略图

angularjs - 使用 angular 和 angular-file-upload 上传文件

java - 如何从 Stanford Core NLP 包中获取短语级情绪

java - Google oauth2 Java 联系人服务 - 文档中的冲突