当前位置: 首页 > 工具软件 > Hermes JMS > 使用案例 >

jms消息&camel

阴禄
2023-12-01
JMS简介:
Java message service:java 消息服务包含两个 模型 PTP 点对点和Pub/Sub发布/订阅模型

JMS应用场景:
规模和复杂度较高的分布式系统,如Socket通信,RMI,SOA。
解决问题:
1)异步通信
2)客户和服务对象松耦合
3)点对点通信(发送具体目标)

点对点(PTP)和发布订阅模型(PUB/SUB):
PTP(基于队列):
1) 一个消息只能被一个消费者消费一次
2) 生产者把消息发送到队列,等待接受者
3) 队列满或空都会处于阻塞状态
4)无时间相关性,只要队列有就可以取出
PUB/SUB(基于主题):
1) 一个消息多个消费者
2) 生产者将消息发送到主题(Topic)
3) 接收者必须先订阅才可消费
4) 时间相关性,订阅者只能消费它订阅后发布的消息

appcontext.jms.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="sendTimeout" value="10000" />
<property name="brokerURL">
<value>${jms.brokeUrl}</value>
jms.brokeUrl=failover:(tcp://xxx.xxx.xxx.xxx:9521,tcp://xxx.xxx.xxx.xxx:9521)?randomize=false
jms.brokeUrlBack=tcp://xxx.xxx.xxx.xxx:9521
</property>
</bean>
</property>
</bean>
<bean id="defaultMsgQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="defaultMsgQueue"/>
</bean> 
<bean id="jmsService" class="com.whl.JmsServiceImpl">
<property name="connectionFactory" ref="jmsFactory" />
<property name="defaultDestination" ref="defaultMsgQueue" />
<property name="receiveTimeout" value="20000" />
<property name="queueMap"> 目标队列 Destination  Destination dst = new ActiveMQQueue(key);
<map>
<entry key="xxxx" value="nonpersist" />
<entry key="yyyy" value="persist" />
</map>
</property>
</bean>
</beans>

camel.xml:略
         路由配置或多路广播

 类似资料: