java - 如何在集群上使用 JVM 程序? (比如停产的 cJVM/JavaSplit)

标签 java linux multithreading jvm cluster-computing

我一直在深入研究 IBM 关于 JavaSplit 的研究和 cJVM因为我想在一个由 4 个 Raspberry Pi 3 Model B 组成的集群上运行 JVM 程序,例如 This .

我对集群和分布式计算几乎一无所知,所以我开始深入研究,尝试让 Minecraft 服务器在它们之间运行。

我的问题是,是否有一种相对简单的方法可以让在 JVM 上运行的 Java 程序在无需访问源代码的情况下跨集群拆分?

注意事项:

主要问题是大多数 Java 程序(包括玩具程序)并不是为跨集群运行而构建的,但我希望我能找到一种方法来破解 JVM 以使其正常工作。

我已经看到了一些可能的解决方案,但由于 Minecraft 和 Java 的性质,更新如此频繁,而且情况不断变化,我什至不知道什么是可能的。

据我所知,FastCraft实现多线程支持,或者过去是,现在是内置的。

目的:

这对我来说既是玩具程序又是实际问题。我这样做是为了了解集群的工作原理,了解有关 Linux 管理和分布式计算的更多信息,因为它很有趣。我这样做不是为了设置我的世界服务器。服务器是最重要的,但如果它不能正常工作,我会把它推到戴尔塔上。

最佳答案

MineCraft 可以使用有效的分区服务进行扩展。通常使用的工具是BungeeCord这允许客户端连接到一个服务,该服务将 session 传递给多个后端服务器,这些服务器在很大程度上没有改变地运行。这限制了可以在一个服务器中的用户数量,但在他们之间您可以拥有任意数量的服务器。

关于java - 如何在集群上使用 JVM 程序? (比如停产的 cJVM/JavaSplit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321166/

相关文章:

java - 使用扫描器或字符串方法在字符串中进行多次搜索 (java)

java - 断言失败 : null id sometimes thrown when Hibernate query objects

java - 隐藏导航栏?

regex - 基于空行的新文本文件

c++ - "mutex"和 "lock"有什么区别?

Ruby 多线程问题

java - 使用 Espresso 进行 Android 仪器测试失败 : NoSuchMethodError get() in javax. Inject.Provider

linux - 如何在 linux 中启动 sqlplus (Oracle 12C)?

linux - 我如何在 nasm 中获取系统调用 getcwd 返回字符串的真实长度?

python - 如何为可以发送和接收消息的mqtt客户端实现多线程