概述
在平台中,消息队列作用主要是:
1.流程中发送审批消息
2.发送邮件
3.转换文件等
他的好处是实现了异步操作,不需要等待耗时的操作。
平台中集成了两种消息队列的实现
1.ACTIVEMQ
2.KAFKA
配置
平台中集成了两种消息队列,用户在平台中选择其中的一个进行使用。
1.activemq
在平台中默认使用了内置的ACTIVEMQ,配置在spring-jms.xml 中。
<amq:broker useJmx="false" persistent="true" dataDirectory="${jms.dir}/jms">
<amq:managementContext>
<amq:managementContext createConnector="false" />
</amq:managementContext>
<amq:persistenceAdapter>
<amq:kahaDB directory="${jms.dir}" >
</amq:kahaDB>
</amq:persistenceAdapter>
<amq:transportConnectors>
<amq:transportConnector uri="tcp://${jms.ip}:${jms.port}" />
</amq:transportConnectors>
</amq:broker>
在生产部署时,我们需要注释上面的代码片段,使用独立的ACTIVEMQ服务器。
我们可以安装独立的activemq,如果只是测试,很简单只需要下载activemq让后,启动就可以了。
在平台中,我们使用activemq的 openfire端口。
参考activemq.xml 配置。
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
我们需要我们连接的是61616这个端口,当然这个端口可以做修改。
启动activemq后,平台需要注释内置的activemq.并配置app.properties 文件。
jms.ip=127.0.0.1
jms.port=62222
jms.dir=c\:\\abc
jms.ip 指向activmq 服务器的IP
jms.port 指向activemq 的端口
jms.dir 独立的activemq 是不需要配置的。
2.kafka
在我们安装好kafka 后我们需要对平台做如下调整。
在spring-bean.xml
<!-- 消息生产者
<bean id="messageProducer" class="com.redxun.core.jms.producer.ActiveMqProducer"/>
-->
<bean id="messageProducer" class="com.redxun.core.jms.producer.KafkaProducer"/>
启用kafka 生产者
在spring-all.xml 中。
<import resource="spring-kafka-producer.xml"/>
<import resource="spring-kafka-consumer.xml"/>
<!--
<import resource="spring-security-cas.xml"/>
<import resource="spring-jms.xml"/>
<import resource="spring-dubbo.xml"/>
-->
在app.properties 文件修改 kafka 的服务器配置。
kafka.brokerurl=202.10.79.170:9001,202.10.79.170:9002
这里配置kafka的服务器地址