读码农翻身之JMS

1、为什么需要JMS?
JMS即Java消息服务(Java Message Service),随着各种消息队列的出现,定义了各式各样的API,导致互不兼容,学习成本高。使用不方便。

2、定义标准
消息生产者、消息消费者、生产者提供发送消息的方法,消费者提供接收消息的方法。
在这里插入图片描述
不管是生产者向队列发送消息,还是消费者去接收消息,其实都是在和消息队列进行交互。所以引入一个会话(session)的概念出来。Session可以创建消息,同时生产者和消费者也应该由Session来创建,一个发送接收消息肯定是在一个会话里。那么Session由谁来创建呢?那就是一个Connection。
在这里插入图片描述

3、进一步完善(配置和代码分离)
连接参数作为配置信息把它放到web容器里,对外只提供一个简单的ConnectionFactory接口,由这个ConnectionFactory来创建Connection。则程序员的使用方式如下所示:
在这里插入图片描述
4、再次抽象
以上的有一个问题,就是只有一个发送方,一个接收方。但是如果我一个发送方,想发送给很多接收方呢?即发布/订阅模型。
在这里插入图片描述
一个客户端对一个Topic发布消息,很多订阅了这个topic的客户端都可以接收到这个消息的副本。(Topic即主题的概念)
把Topic和Queue变成一个更抽象的概念,他们都是消息的目的地。称为destination,这个目的地也是需要配置出来的,通过jndi来获取。而订阅以前是定义为MessageConsumer(消费者),现在增加一个新概念叫做TopicSubscriber,可以从destination中获取信息。

在这里插入图片描述
好吧,其实瘦到底,jms就是一个规范而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值