ActiveMQ主题/订阅模式添加用户名、密码、IP的连接验证

1.打开activemq资源包--找到credentials.properties打开后修改密码;

2.接下来修改你的Spring的相关生产者和消费者相关配置;

2.1生产者配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:amq="http://activemq.apache.org/schema/core"
    xmlns:jms="http://www.springframework.org/schema/jms"
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd   
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/jms
        http://www.springframework.org/schema/jms/spring-jms-4.0.xsd
        http://activemq.apache.org/schema/core
        http://activemq.apache.org/schema/core/activemq-core-5.6.0.xsd">

    <!-- <amq:connectionFactory id="amqConnectionFactory"
        brokerURL="tcp://127.0.0.1:61616" userName="admin" password="admin"  /> -->
                           
    <bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">  
        <!-- <property name="brokerURL" value="tcp://10.86.38.17:61616" />  -->
        <property name="brokerURL" value="tcp://10.86.38.17:61616" />
        <property name="userName" value="super"></property>
        <property name="password" value="Rfid123456"></property> 
        <property name="useAsyncSend" value="true" /> 
        <!-- ActiveMQ服务默认采用异步的方式向消费者推送消息 -->
        <property name="dispatchAsync" value="true"></property>
    </bean>	
    
    
	<!-- 生产者 -->
	<!-- topic模板 -->
    <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">
    	<property name="connectionFactory" ref="connectionFactory" />
		<property name="defaultDestination" ref="deviceStateTopicDestination" />
		<!-- pub/sub模型(发布/订阅)即 主题主题-订阅者模式 -->
		<property name="pubSubDomain" value="true" />
		<property name="receiveTimeout" value="60000"/>
    </bean>
	 <!-- 扫描消费者类所在的包 -->
	<context:component-scan base-package="com.zit.activemq" />
	<!-- 发布“设备状态”的订阅 --> 
	<bean id="deviceStateTopicDestination" class="org.apache.activemq.command.ActiveMQTopic">  
        <constructor-arg>
            <value>deviceStateTopic</value>  
        </constructor-arg>  
    </bean>
    
    <!-- 发布“射频记录”的订阅 --> 
    <bean id="rfidRecordTopicDestination" class="org.apache.activemq.command.ActiveMQTopic">  
        <constructor-arg>
            <value>rfidRecordTopic</value>  
        </constructor-arg>  
    </bean>
</beans>

2.2消费者配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:amq="http://activemq.apache.org/schema/core"
    xmlns:jms="http://www.springframework.org/schema/jms"
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd   
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/jms
        http://www.springframework.org/schema/jms/spring-jms-4.0.xsd
        http://activemq.apache.org/schema/core
        http://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd">
        
	
	<bean id="consumerConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">  
        <property name="brokerURL" value="tcp://10.86.38.17:61616" /> 
        <property name="userName" value="super"></property>
        <property name="password" value="Rfid123456"></property> 
        <property name="useAsyncSend" value="true" /> 
        <!-- ActiveMQ服务默认采用异步的方式向消费者推送消息 -->
        <property name="dispatchAsync" value="true"></property>
    </bean>
	<!-- 设别状态的消费者 -->
	<bean id="deviceStateConsumer" class="com.zit.activemq.main.consumer.DeviceStateConsumer"></bean>
    
    <jms:listener-container destination-type="topic"  
        connection-factory="consumerConnectionFactory"  
        acknowledge="auto">  
        <jms:listener destination="deviceStateTopic" ref="deviceStateConsumer" />  
    </jms:listener-container>
    
    
    <!-- 射频记录的消费者 -->
	<bean id="rfidRecordConsumer" class="com.zit.activemq.main.consumer.RfidRecordConsumer"></bean>
    
    <jms:listener-container destination-type="topic"  
        connection-factory="consumerConnectionFactory"  
        acknowledge="auto">  
        <jms:listener destination="rfidRecordTopic" ref="rfidRecordConsumer" />  
    </jms:listener-container>
    
    <!-- 视频记录的消费者 -->
	<bean id="cameraRecordConsumer" class="com.zit.activemq.main.consumer.CameraRecordConsumer"></bean>
    
    <jms:listener-container destination-type="topic"  
        connection-factory="consumerConnectionFactory"  
        acknowledge="auto">  
        <jms:listener destination="cameraRecordTopic" ref="cameraRecordConsumer" />  
    </jms:listener-container>
    <!-- 双基记录的消费者 -->
	<bean id="dbssRecordConsumer" class="com.zit.activemq.main.consumer.DbssRecordConsumer"></bean>
    <jms:listener-container destination-type="topic"  
        connection-factory="consumerConnectionFactory"  
        acknowledge="auto">  
        <jms:listener destination="dbssRecordTopic" ref="dbssRecordConsumer" />  
    </jms:listener-container>
</beans>

猜你喜欢

转载自blog.csdn.net/qq_37306041/article/details/82626785