一、 JMS提供了应用之间的异步通信机制 : 当一个应用通过jms向另一个应用发送消息时,两个应用之间没有直接的联系。而是,发送方应用会将消息交给一个服务,由服务确保将消息投递给接收方应用。
1 : JMS 中有两个主要概念 : 消息代理和目的地 , 当一个应用发送消息时,会将消息交给一个消息代理。消息代理可以确保消息被投递目的地,同时释放发送者,使其能够继续其他业务。jms 有两种目的地 队列和主题。
2: 点对点消息模式 : 每一个消息都有一个发送者和一个接受者。当消息代理得到消息时,它将消息放入一个队列中。当接受者请求队列中的下一条消息,消息会从队列中取出,投递给接受者。消息投递后会从队列中删除。
3:发布-订阅消息模式:消息会发送给一个主题。与队列类似,多个接受者都可以都可以监听一个主题。与队列不同的是,消息不再是只投递给一个接受者,所有主题的订阅者都会接受到此消息。
二、Spring 中搭建消息代理 : ActiveMQ 是一个伟大的开源消息代理
1、创建连接工厂 :
<bean id = "connectionFactory" class = "org.apache.activemq.spring.ActiveMQConnectionFactory">
<property name = "brokerURL" value = "tcp : //localhost : 61616"/>
</bean>
也可以使用:activemq 自己的Spring 配置命名空间来声明连接工厂
xmln : amq = “http://activemq.apache.org/schema/code”
<amq : connectionFactory id = "connectionFactory" brokerURL = "tcp : //localhost : 61616">
2、声明activemq消息目的地
1: 队列
<bean id = "queue" class = "org.apache.activemq.command.ActiveMQQueue">
<constructor - arg value = "spitter.queue">
</bean>
<amq : queue = "queue" physicalName = "spitter.queue">
2: 主题
<bean id = "topic" class = "org.apache.activemq.command.ActiveMQTopic">
<constructor - arg value = "spitter.topic"> value 是名称
</bean>
<amq : queue = "topic" physicalName = "spitter.topic">
三、使用spring的jms模版 : spring 给出的解决方案是jmstemplate 。 jmsTemplate 可以创建连接,获取会话,以及发送和接受消息。
1: 装配jms模板 : 可以创建连接、获得会话以及发送和接受消息。
为了使用jmstemplate , 我们需要在spring的配置文件中将它声明为一个bean
<bean id = "jmsTemplate" class = "org.springframework.jms.core.JmsTemplate">
<property name= "connectionFactory" ref = "connectionFactory"/>
<property name= "defaultDestinationName" value = "spittle.alert.queue"/>
</bean>
2:发送信息
过程 :
消息发送者 -- > JmsTemplate -- > 队列/主题
jmsTemplate.send(
new MessageCreator(){
}
)
3: 接受信息
过程:
队列/主题 -- > JmsTemplate -- > 消息接受者
jmstemplate.receive()
四、使用基于消息的RPC : spring 提供了两种基于消息的RPC方案
1 :使用spirng 基于消息的RPC :导出基于jms的服务 , 使用JmsInvokerServiceExporter,可以导出基于jms的服务。
发布
<bean id = "" class = " JmsInvokerServiceExporter" p: service-ref = "实现类" p: serviceInterface = "接口" >
<jms : listener- container> 增加jms 相关信息
访问
<bean id = "" class = "JmsInvokerProxyFactoryBean" >
2: 使用Lingo实现异步RPC
<amq : queue id = "alterServiceQueue" physicalName = "spitter.alter.queue">
<bean id = "alertServiceExporter" class = "JmsServiceExporter"
p: connectionFactory-ref = "connectionFactory"
p:destincaton-ref = "alertServiceQueue"
p:service-ref = "实现类"
p:serviceInterface = "接口"
>
代理异步服务
<bean id = "alterService" class = " JmsProxyFactoryBean"
p: connectionFactory-ref = "connectionFactory"
p: destination-ref = "queue"
p: serviceInterface = "接口"
>
<property name = "metadataStrategy">
<bean id = "metadataStrategy" class = "SimpleMetaStrategy" >
<constructor-arg value = "true">
</bean>
</property>
</bean>
相关推荐
NULL 博文链接:https://javapub.iteye.com/blog/888835
使用dwr+spring实现消息推送 。
web前端并发发送ajax请求,action 获取数据并存放到缓冲队列中,消费者消费队列中的数据,并且持久化
Spring+Websocket实现消息的推送 Spring+Websocket实现消息的推送 Spring+Websocket实现消息的推送
内容是一个javaspring结构的模块,设计了处理高并发解决方案,消息队列处理业务逻辑的代码设计,注意:1 只是一个模块,不是一个可运行项目,2 需要项目结构是java spring,3 需要自己选择并搭建所使用的消息队列。
主要为大家详细介绍了spring消息转换器的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Pebble 模板引擎的翻译扩展,使用 Spring 消息接口 概述 为模板引擎提供t函数,它从 Spring MessageSource 检索消息。 {{ t('users.show.title') }} “懒惰”查找 函数支持,因此您可以在users/show.html查找users....
利用 Spring 和 RabbitMQ 解决消息传送难题
包括Spring的设计理念和整体架构、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等内容。...
第10章 spring消息 第11章 spring和ejb 第12章 访问企业服务 第三部分 spring客户端 第13章 处理web请求 第14章 渲染web视图 第15章 使用spring web flow 第16章 集成其他web框架 附录a 装配spring 附录b 用...
第10章 spring消息 第11章 spring和ejb 第12章 访问企业服务 第三部分 spring客户端 第13章 处理web请求 第14章 渲染web视图 第15章 使用spring web flow 第16章 集成其他web框架 附录a 装配spring 附录b 用...
第10章spring消息 10.1jms简介 10.1.1构建jms 10.1.2介绍jms的优点 10.1.3在spring中安装activemq 10.2协同使用jms和spring 10.2.1处理冗长失控的jms代码 10.2.2使用jms模板 10.2.3转换消息 10.2.4将spring...
第10章 Spring消息 10.1 JMS简介 10.1.1 构建JMS 10.1.2 介绍JMS的优点 10.1.3 在Spring中安装ActiveMQ 10.2 协同使用JMS和Spring 10.2.1 处理冗长失控的JMS代码 10.2.2 使用JMS模板 10.2.3 转换消息 ...
第10章 Spring消息 10.1 JMS简介 10.1.1 构建JMS 10.1.2 介绍JMS的优点 10.1.3 在Spring中安装ActiveMQ 10.2 协同使用JMS和Spring 10.2.1 处理冗长失控的JMS代码 10.2.2 使用JMS模板 10.2.3 转换消息 ...
SpringCloud之八 消息总线SpringCloudBus.pdf,微服务中消息总线的使用处理
Spring发送接收JMS消息 文档+例子
spring+activeMQ消息队列
spring mvc结合tomcat月Apache的消息队列ActiveMQ应用
ActiveMQ与spring整合,完成消息的发布和订阅功能
#### 项目介绍 spring 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo... - Spring 集成 消息队列,包括 kafka、rabbitmq、activemq、rocketmq、redismq - spring-auth - Spring 权限认证,包括 Apache Shiro