ActiveMQ--概述

消息中间件

消息中间件是指利用搞笑可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的继承。

通过提供消息传递和消息排列模型在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等功能。

大致过程如下:

发送者把消息发送给消息服务器,消息服务器将消息存放在若干队列/主题中,在合适的时候,消息服务器会将消息转发给接受者。在这个过程中,发送和接收是异步的,也就是发送无需等待,而且发送者和接收者的生命周期也没有必然关系;尤其是在发布pub/订阅sub模式下,也可以完成一对多的通信,即让一个消息有多个接收者。

在这里插入图片描述

ActiveMQ

是一种分布式消息中间件,APACHE出品,历史悠久,实现JMS规范。

什么是JMS

定义了两个应用程序或者分布式系统发送消息的API,与具体实现平台无关,即JAVA MESSAGE SERVICE。还定义一系列相关术语。

术语英文术语中文
ConnectionFactory连接工厂
Connection连接
Session会话
Destination目的地
MessageProducer消息生产者
MessageConsumer消息消费者
Message消息
Broker消息中间件事例(例如ActiveMQ)

JMS定义了两种消息模型:

  • 点对点Point-to-point,即一条消息对应一个生产者和一个消费者。
  • 发布订阅Publish/Subscribe,生产者发布topic,多个订阅了该topic的消费者都可以获取该消息。

JMS定义了消息结构,包括消息头,消息属性和消息体。

  • 消息头定义了消息的识别和消息的路由。
  • 消息属性是除了1)之外开发者定义的业务属性。
  • 消息体是具体的消息内容。

为什么要使用ActiveMQ

主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达MySQL,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。

RPC和消息中间件的不同很大程度上就是“依赖性”和“同步性”。RPC方式是典型的同步方式,让远程调用像本地调用。消息中间件方式属于异步方式。消息队列是系统级、模块级的通信。RPC是对象级、函数级通信。

消息中间件常常用于:

  • 异步处理
  • 应用解耦
  • 流量削峰
  • 日志处理
  • 消息通讯。
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值