Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重用Tomcat配置在节点之间发送消息_Java_Tomcat7 - Fatal编程技术网

Java 重用Tomcat配置在节点之间发送消息

Java 重用Tomcat配置在节点之间发送消息,java,tomcat7,Java,Tomcat7,我在服务器中使用静态配置进行Tomcat会话复制,它工作正常。但是,我想利用应用程序中的相同设置在集群成员之间发送消息,以方便我的应用程序使用的事件体系结构。我使用此选项的原因如下: Tribes是一个已经内置到tomcat中的对等通信框架 重用对等的配置 无需增加新库的额外开销 有没有一种方法可以通过编程方式访问Tomcat的集群通道对象来发送消息?或者有没有一种方法可以找出集群的成员来创建您自己的频道,从而最大限度地减少复制配置的需要?下面是一个使用JMX查找集群配置的示例。这是一个相当粗糙

我在服务器中使用静态配置进行Tomcat会话复制,它工作正常。但是,我想利用应用程序中的相同设置在集群成员之间发送消息,以方便我的应用程序使用的事件体系结构。我使用此选项的原因如下:

  • Tribes是一个已经内置到tomcat中的对等通信框架
  • 重用对等的配置
  • 无需增加新库的额外开销

  • 有没有一种方法可以通过编程方式访问Tomcat的集群通道对象来发送消息?或者有没有一种方法可以找出集群的成员来创建您自己的频道,从而最大限度地减少复制配置的需要?

    下面是一个使用JMX查找集群配置的示例。这是一个相当粗糙的方法,但是可能有一个更干净的方法在JMX中找到这些信息


    下面是一个使用JMX查找集群配置的示例。这是一个相当粗糙的方法,但是可能有一个更干净的方法在JMX中找到这些信息


    我想你可以提出这样的论点:不管你使用什么样的第三方消息总线,它都会带有某种程度的“锁定”,但将你的web应用程序的某些功能绑定到特定的容器似乎有些奇怪,从技术上讲,部落部分是可移植的,所以如果我必须移动容器,我可以,但是会有一些代码无法移植到您的观点。除非有办法通过可移植API(系统属性等)获取集群成员。我只是觉得重复集群成员的配置是我不想在两个地方拥有的重要信息。我没有部落方面的经验,但我最好的猜测是,您可以以某种方式将通道对象(或任何您需要的对象)公开为MBean,并通过JNDI检索它。做了一点研究,但我找不到任何明显的东西。如果你已经在你的应用程序中使用Spring(一个大IF),并且你只依赖于部落来进行会话复制,那么你可以考虑其他的事情,一个更便携的选择可能是引入ReISIS的Spring会话。然后,一旦你将Redis引入到支持Spring会话的行列中,你就可以使用它作为消息总线来支持你的事件。我也有过类似的想法,我们在grails上,grails下有Spring,所以这是可能的。一个非常便宜的解决方案是通过写信给DB来宣布你在这里。然后我们可以使用部落,而不必在tomcat中四处挖掘,也不必做不可移植的事情。我想你可以提出这样的论点:不管你使用什么样的第三方消息总线,它都会有某种程度的“锁定”,但将你的web应用程序的某些功能绑定到特定的容器似乎有些奇怪,从技术上讲,部落部分是可移植的,所以如果我必须移动容器,我可以,但是会有一些代码无法移植到您的观点。除非有办法通过可移植API(系统属性等)获取集群成员。我只是觉得重复集群成员的配置是我不想在两个地方拥有的重要信息。我没有部落方面的经验,但我最好的猜测是,您可以以某种方式将通道对象(或任何您需要的对象)公开为MBean,并通过JNDI检索它。做了一点研究,但我找不到任何明显的东西。如果你已经在你的应用程序中使用Spring(一个大IF),并且你只依赖于部落来进行会话复制,那么你可以考虑其他的事情,一个更便携的选择可能是引入ReISIS的Spring会话。然后,一旦你将Redis引入到支持Spring会话的行列中,你就可以使用它作为消息总线来支持你的事件。我也有过类似的想法,我们在grails上,grails下有Spring,所以这是可能的。一个非常便宜的解决方案是通过写信给DB来宣布你在这里。这样我们就可以使用部落,而不用在tomcat中四处挖掘,也不用做不可移植的事情。