java消息中间件(一) - 朗尊软件,企业级电商平台提供商

发表时间: 2019-11-12 09:44:59 阅读: 172

Legendshop大讲堂之java消息中间件,第一课:MQ消息中间件

一、MQ消息中间件

MQ是什么?

MQ即Message Queue消息队列的简称。消息队列是一种应用程序对应用程序的通信方法、应用程序通过写和检索入列队的针对应用程序的数据(消息)来进行通信,而不需要专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信,队列的使用除去了接收和发送应用程序同时执行的要求。

简单点说:MQ就是一个消息的接受和转发的容器,可用于消息推送。


MQ的相关概念

1、 消息(Message

消息是MQ中最小的概念,本质是一段数据,它能被一个或者多个应用程序所理解。是应用程序之间传递的信息载体

2、 列队(Queue

队列是用来存放消息的,把消息存放到队列中,直到应用程序或其他MQ对象来处理或取走。

3、 队列管理器(Queue Manager)

队列管理器时一个负责向应用程序提供消息服务的机构

4、 通道(Channel

通道是两个管理器之间的一种单向点对点的通信连接,若需要双向交流,可以建立一对通道。


5、 监听器(listener

接收消息的时候,侦听一个端口,等待发送方的连接。


JMS基本概念

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API

用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程。而mq则是消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者。


JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(Java DatabaseConnectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。


JMS-消息模型

1、点对点:Queue,不可重复消费

消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。

消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。




2、发布/订阅:Topic,可以重复消费

消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。



3JMS编程模型

ConnectionFactory创建Connection对象的工厂,针对两种不同的jms消息模型,分别有QueueConnectionFactoryTopicConnectionFactory两种。可以通过JNDI来查找ConnectionFactory对象。


Destinationdestination是指消息所走通道的目标定义,也就是用来定义消息从发送端发出后要走的通道,而不是最终接收方


ConnectionConnection表示在客户端和JMS系统之间建立的链接(对TCP/IP socket的包装)。


SessionSession是我们操作消息的接口。可以通过session创建生产者、消费者、消息等。Session提供了事务的功能。当我们需要使用session发送/接收多个消息时,可以将这些发送/接收动作放到一个事务中。


消息的生产者:消息生产者由Session创建,并用于将消息发送到Destination


消息消费者:消息消费者由Session创建,用于接收被发送到Destination的消息。


MessageListener消息监听器。如果注册了消息监听器,一旦消息到达,将自动调用监听器的onMessage方法。


应用场景:

1、 应用解耦-场景说明:用户下单后,订单系统需要通知库存系统。传统的做法是,订单系统调用库存系统的接口。



传统模式的缺点:

1) 假如库存系统无法访问,则订单减库存将失败,从而导致订单失败;

2) 订单系统与库存系统耦合;

引用消息队列后



订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功。

库存系统:订阅下单的消息,获取下单信息,库存系统根据下单信息,进行库存操作。

假如:在下单时库存系统不能正常使用。也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦。


2、 流量削锋-场景说明:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为解决这个问题,一般需要在应用前端加入消息队列。



a、可以控制活动的人数

b、可以缓解短时间内高流量压垮应用





文章来源:广州朗尊软件科技有限公司

网站声明:以上内容为朗尊软件官方网站的原创文章,如需转载,请注明出处,谢谢合作!

电商头条新闻
1 S2B2C模式是什么?
广州朗尊软件科技有限公司成立于2014年,公司立足自我创业,专门从事web开发及系统集成业务服务,系统咨询服务和集成
2 开通商城的步骤
如何注册新用户,开通商城
3 分析互联网产品的情感化设计
相信关注情感化设计话题的人大部分都看过诺曼的《情感化设计》一书,但诺曼谈得太宏观、太概念化了。我想谈谈对互联网产品情感化设计的理解及操作方法
4 朗尊软件晋级中国创新创业大赛第四届羊城“科创杯”创新创业大赛复赛
中国创新创业大赛是由科技部、财政部、教育部、中央网信办、全国工商联共同指导举办的一项以“科技创新,成就大业”为主题的全国性比赛。为加快实施创新驱动发展战略,整合创新创业资源,搭建创新创业服务平台,引导社会各界力量支持创新创业,打造推动经济发展和转型升级的强劲引擎,广州市科学技术局特举办第八届中国创新创业大赛(广东·广州赛区)暨第四届羊城“科创杯”创新创业大赛。
5 b2b2c商城系统能为企业带来什么?
b2b2c是一种电子商务模式,企业选择做自己的b2b2c商城系统最终当然是为了盈利。下面b2b2c商城系统小编带你一起来看看。
6 小羊云商新零售解决方案
广州朗尊软件科技有限公司成立于2014年,公司立足自我创业,专门从事web开发及系统集成业务服务,系统咨询服务和集成
7 Legendshop线上与线下系统的微服务平台的解决方案
Legendshop微服务平台解决方案
8 社交美妆时代,新品牌如何打造爆款
随着各种直播、社交媒体平台的兴起,每年都会有不同的美妆爆款产品出现。那么这些爆款都是通过哪些方式让美妆达人都为之倾倒呢?在社交媒体成长的千禧一代时代到来,在消费者赋能,注意力稀缺,产业链重塑的背景下,他们改写原有的商业竞争机制。
  • 客服热线:020-84131336
  • 在线时间:周一至周六 9:00-19:00
  • 在线客服
微信服务号

Copyright©2004-2012 All Rights Reserved 粤ICP备15089754号-1 网站地图 站点地图

b2b2c商城系统 java开源商城 云商城系统 电商平台系统 电商分销系统 商城分销系统 多用户商城系统 微信小程序商城