春季-嵌入式代理和故障转移使用者的Activemq群集

春季-嵌入式代理和故障转移使用者的Activemq群集,第1张

概述环境>现有一个具有专有集群方式的软件,应将其移至使用JMS的位置>客户不想为安装和维护保养付费邮件系统,因此只有在我可以嵌入整个邮件系统的情况下,才能使用它传递到现有虚拟机中>代理实例和使用者应位于同一JVM中.消费者在故障转移情况下,它应该能够连接到远程代理,因为所有使用者(无论他们将在哪个JVM上运行)都应具有一个输入队列.>如果

环境

>现有一个具有专有集群方式的软件,应将其移至使用JMS的位置
>客户不想为安装和维护保养付费
邮件系统,因此只有在我可以嵌入整个邮件系统的情况下,才能使用它
传递到现有虚拟机中
>代理实例和使用者应位于同一JVM中.消费者
在故障转移情况下,它应该能够连接到远程代理,因为所有使用者(无论他们将在哪个JVM上运行)都应具有一个输入队列.
>如果消费者将直接方法调用用于
与当地经纪人沟通

示范项目

我使用ActiveMQ Maven Spring创建了一个非常简单的演示(日食)项目(整个项目位于http://www.woofiles.com/dl-279452-fOcsWkcm-activemq.zip).如果尝试尝试,请更改activemq的dataDirectory,因为到目前为止它是有线的绝对路径.

我尝试从春季开始创建一个经纪人,以及一组消费者.请参阅下面的Spring配置:

<?xml version="1.0" enCoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task"    xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://activemq.apache.org/schema/corehttp://activemq.apache.org/schema/core/activemq-core.xsdhttp://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-3.0.xsd">    <bean ID="propertyConfigurer"        >        <property name="systemPropertIEsModename" value="SYstem_PROPERTIES_MODE_FALLBACK" />    </bean>        <bean ID="embeddedbroker"             destroy-method="stop" init-method="start" >            <property name="brokername" value="conversion" />            <property name="dataDirectory"                value="c:\eclipseWithMaven\activemq\working\conversion" />            <property name="schedulerSupport" value="false" />            <property name="transportConnectorURIs">                <List>                    <value>tcp://127.0.0.1:600${IDOfClusterNode}</value>                </List>            </property>            <property name="managementContext">                <bean >                    <property name="connectorPort" value="201${IDOfClusterNode}" />                </bean>            </property>        </bean>    <!-- depends-on see why at http://activemq.apache.org/vm-transport-reference.HTML -->    <!--depends-on="embeddedbroker" -->    <bean ID="jmsFactory"  depends-on="embeddedbroker">        <property name="brokerURL">            <value>failover:(vm:/conversion,tcp://127.0.0.1:6001,tcp://127.0.0.1:6002)</value>        </property>    </bean>    <bean ID="cachedConnectionFactory"                p:targetConnectionFactory-ref="jmsFactory" p:sessionCacheSize="10" />    <bean ID="container"        >        <property name="concurrentConsumers" value="10" />        <property name="connectionFactory" ref="cachedConnectionFactory" />        <property name="messageListener" ref="conversion" />        <property name="destination" ref="conversioninputQueue" />    </bean>    <bean ID="conversioninputQueue" >        <constructor-arg value="conversioninputQueue" />    </bean>    <bean ID="conversion"         p:clusterID="${IDOfClusterNode}" /></beans>

我只是尝试使用spring&所使用的不同参数来启动activemq.ConversionDemo类的一两个实例. log4j配置.运行配置的环境条目如下所示:

>实例1:-DIDOfClusterNode = 1 -DIDOfOtherClusterNode = 2 -Dlogfile = conversion1.log
>实例2:-DIDOfClusterNode = 2 -DIDOfOtherClusterNode = 1
-Dlogfile = conversion2.log

如果我启动一个实例,那很好.如果两个正在运行,则会出现以下问题:

>第二个经纪人根本不会启动.它说它没有锁.很好,但是我想,它只是异步启动一个线程,并将控制权交还给spring.但似乎,它不会让春天继续.
> SimpleMessageListenerContainer似乎也握有控件
在春季,直到所有消费者都开始使用.

我想要的是

>我要满足以上要求
>我认为我必须异步启动经纪人和消费者,
我在春季用这个配置无法真正做到
>在代理之间实现真正的负载平衡会很好.看来,ActiveMQ仅准备进行故障转移.
>如果ActiveMQ无法满足我的需求,请推荐
其他免费解决方案.

如果您需要更多信息,请告诉我.

编辑

我认为ActiveMQ支持我的需求,我只需要了解“经纪人网络”.所以我想我必须有两个文件存储,以及两个经纪人的网络.

最佳答案如果将2个代理指向同一文件存储,则第一个将获得锁定,第二个将锁定直到释放该锁定为止……这是一个shared file system master/slave的设置

如果您要进行主动/主动设置,则需要使用单独的文件存储并将它们连接在一起,作为network of brokers 总结

以上是内存溢出为你收集整理的春季-嵌入式代理和故障转移使用者的Activemq群集 全部内容,希望文章能够帮你解决春季-嵌入式代理和故障转移使用者的Activemq群集 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1237057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存