我的问题如下。我有一段代码可以在多个虚拟机上运行,每个虚拟机都有N个接口(每个都有一个线程)。问题本身是在一个接口上接收消息,并以最快的方式将其重定向到另一个接口。
我正在做的是,当我在一个界面(单播)上收到消息时,计算我想要重定向的接口,保存有关消息的所有信息(数据报,以及我想要的所有额外信息)用我做的功能。然后在下一次迭代中,程序检查是否有新消息要重定向,以及是否是读取它的正确接口。等等...但这使得程序交换信息非常缓慢......
是否有任何机制可以加快速度?
答案 0 :(得分:3)
答案 1 :(得分:1)
你为什么不使用排队?当消息进入时,将它们放在队列中并通知每个处理模块从队列中取出它们。 例如:
关键是“并行”。由于这些模块是不同的线程,而模块2保存到数据库,模块3可以按摩您的消息。
您可以使用JMS或MQ或自己创建队列。
答案 2 :(得分:1)
听起来你正试图跨多个“机器”进行并行计算(即使是虚拟机)。您可能希望查看现有协议,例如MPI - Message Passing Interface来处理此域,因为它们具有许多有助于此类场景的功能