Java 集群JVM
在这种情况下,我需要在同步应用程序中诱导异步行为Java 集群JVM,java,jvm,cluster-computing,Java,Jvm,Cluster Computing,在这种情况下,我需要在同步应用程序中诱导异步行为 阐述了一个整体的C++应用程序,它可以为复杂的衍生产品同步定价。这个C++应用程序附带了一个java包装器,我的应用程序使用它来与它交互。 当前设计 我的应用程序java包装器C++应用程序 因为java封装到C++的调用是同步的,所以我想通过拥有这些java包装器的集群来创建异步行为。p> 我将有一个“主包装器”,它将决定(以循环方式或基于来自集群的一些实时信息)哪个包装器获得请求 未来设计 java包装器C++应用程序 我的应用程序jav
阐述了一个整体的C++应用程序,它可以为复杂的衍生产品同步定价。这个C++应用程序附带了一个java包装器,我的应用程序使用它来与它交互。 当前设计 <代码>我的应用程序java包装器C++应用程序 <>因为java封装到C++的调用是同步的,所以我想通过拥有这些java包装器的集群来创建异步行为。p> 我将有一个“主包装器”,它将决定(以循环方式或基于来自集群的一些实时信息)哪个包装器获得请求
未来设计 <代码> java包装器C++应用程序 我的应用程序java主包装器java包装器C++应用 java包装器C++应用 你们当中有人有建造这种东西的经验吗? 任何建议、教程链接、一些代码等都会非常有用 干杯仅供参考,我简单地看了一下terracotta,它似乎是我需要的,但是它不是一个选项(不是我公司批准的产品)。如果“Java主包装器”和“我的应用程序”在同一个JVM中,您可以让Java主包装器将定价结果存放在我的应用程序线程使用的共享数据结构中。如果My APP是不同的进程/JVM,那么可以使用JMS分发结果。ActiveMQ是一个JMS提供程序。看起来您不是在寻找集群,而是在寻找一个池 如果包装器与主线程在同一JVM中是可执行的,那么任务就是重用任何可用的/worker实现。您甚至可以反编译包装器以查看其main()方法实际调用的类,并尝试在应用程序中重现它。为CORBA应用程序做了这些,工作正常 如果每个包装器必须位于不同的JVM中,最简单的方法是(再次)分配线程池,每个线程在其中监视自己的进程对象实例,向stdin写入请求,从stdout读取响应
当然,每个线程的连接不是最有效的设计,所以当你使它工作时,你可能会在一个小的线程池(或者一个线程)使用一个选择器来监视一个更大的包装过程实例池时,实际上移动到一个模型。
是C++应用程序被称为JNI库函数集还是一个进程?您可以简单地考虑C++的产卵子进程(给它一个代码>())/>代码,并将它的输出在单个JVM中的多个线程中消耗。C++程序可能在单独的进程与协调多个JVM之间有更好的机会。
My APP <------> Java Wrapper <---> C++ application
<---> Java Wrapper <---> C++ application
My APP <------> Java Master Wrapper <---> Java Wrapper <---> C++ application
<---> Java Wrapper <---> C++ application