我有以下情况:
我有两个JVM进程(实际上是两个单独运行的java进程,而不是两个线程)在本地机器上运行。让我们把它们称为进程A和进程B。
我希望他们彼此通信(交换数据)(例如,ProcessA向ProcessB发送消息以执行某些操作)。
现在,我通过编写一个临时文件来解决这个问题,这些过程会定期扫描该文件以获取消息。我认为这个解决方案不太好。
什么是实现我想要的更好的选择?
您需要的是进程间通信。Java以Java RMI API的形式提供了一个简单的IPC框架。还有其他几种进程间通信机制,如管道、套接字、消息队列(显然,这些都是概念,所以有一些框架可以实现这些)。
我认为在您的情况下JavaRMI或简单的自定义套接字实现就足够了。
我在github上添加了一个名为Mappedbus的库(http://github.com/caplogic/mappedbus)它允许两个(或更多)Java进程/JVM通过交换消息进行通信。该库使用内存映射文件,并使用fetch和add以及volatile读/写来同步不同的读写器。我已经测量了使用该库的两个进程之间的吞吐量为4000万条消息/秒,读/写单个消息的平均延迟为25纳秒。
IPC的多个选项:
如果没有更多细节,基于基本网络的IPC方法似乎是最好的,因为它是:
也就是说,根据您的示例(只需请求另一个进程执行一个操作),JMX对您来说也足够好了。
目前,我在一个连接到K8s Redis服务的K8s服务中使用了K8s API Pod,并且使用了它自己的K8s Pod。问题是,我使用NodePort的意思是两个都暴露在公众面前。我只想让公众访问API。问题是,如果我使Redis服务不公开,API就看不到它。有没有一种方法可以将两个服务连接起来,同时又不会将一个服务暴露在公众面前? 这是我的API服务YAML: 这是我的Redis服务YAML:
编辑:为了弄清楚事情,这里有一个例子。如果有五个成员玩一个游戏,那么所有五个成员都将拥有该游戏的外键。另一方面,游戏会有一个外键指向轮到的特定成员。
本文向大家介绍如何判断两个对象相等?相关面试题,主要包含被问及如何判断两个对象相等?时的应答技巧和注意事项,需要的朋友参考一下 提供另一种写法: 当然JSON.stringify(obj)==JSON.stringify(obj)执行速度是最快的
有时候在设计数据结构的时候,可能会遇到两个类需要相互引用的情形。比如类A有类型为B的成员,而类B又有类型为A的成员。 那么这种情形下,两个类的设计上需要注意什么呢? 同一文件 尝试方案 将A和B的定义都放在一个文件中,例如: #include <iostream> class A { public: A() { aa_ = 'A'; } char aa_;
问题内容: 所以,我有两个实体引用对方,。 如果已删除,则必须将其删除,但在仍有引用的情况下不能删除。 这是我得到的两个约束: 我现在要删除一个(和相应的)… 呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜… 是的,我正在尝试删除的血腥条目引用了它… (我知道这是因为上有一个唯一的约束) 看起来如果我将fk设置为,我可以删除该条目,但是这似乎并不是我呼吸的那个家伙想要的,这就是“如果您删除了它,也删除了
问题内容: 有没有人在编写比较两个REST服务的测试方面有任何技巧?我们这样做是作为回归测试的一种形式。 我希望按照以下方式做一些事情: 向两个服务发送“ / 1”的GET并比较结果 向这两个服务发送POST,然后比较结果 向两个服务发送一个PUT,并比较结果 这个想法是: 每个操作都发送到两个服务 结果应该相同 REST服务是用Java / Jersey编写的,因此使用它是理想的,但是人们发现有