消息中间件之JMS实践(ActiveMQ)

一、消息中间件做用

做为一个消息传递中间层,方便信息发送者和接受者通讯。java

二、消息中间件好处

一、信息解耦:信息发送方和接收方经过中间件通讯,不须要直接通讯。spring

二、异步:消息被中间件处理,发送方和接收方都不用直接通讯。安全

三、安全可靠:中间件作的仍是很可靠地。。性能优化

四、横向扩展:支持多信息发送方和接收方服务器

五、顺序保证:中间件功能。微信

三、常见消息中间件

JMS(Java Message Service):java平台中面向消息通讯的API架构

一、ActiveMQ:Apache开源总线并发

二、RabbitMQ:一样是开源的,是一种AMQP协议实现,服务器是erlang编写负载均衡

三、kafka:支持高吞吐量的分布式订阅系统,是一种分布式、可靠地、分区的日志订阅系统异步

四、JMS

一、队列模型:客户端包括生产者和消费者、队列中的(一个)消息只能被一个消费者消费;消费者能够随时消费队列中的消息

二、主题模型:客户端包括发布者和订阅者;主题中的消息能被全部订阅者订阅;消费者不能消费到订阅前发布的消息

五、队列模式代码

一、生产者

clipboard.png

二、消费者

clipboard.png

须要注意的是jdk版本须要是1.8以上

六、主题模式实践

一、生产者代码

clipboard.png

二、消费者代码

clipboard.png

七、综述

ActiveMQ的主题模式和队列模式代码大同小异,只须要关注主题模式是发布订阅模型、队列模式是生产者消费者模型。发布订阅是一种广播形式,能够用来作消息同步,而生产者消费者模型能够用来作负载均衡。

在此我向你们推荐一个架构学习交流群。交流学习群号:478030634 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

注:关注做者微信公众号,了解更多分布式架构、微服务、netty、MySQL、

spring、性能优化、等知识点。公众号:《Java烂猪皮》

图片描述