美文网首页
消息中间件

消息中间件

作者: 寻Sweet | 来源:发表于2019-05-14 11:51 被阅读0次

一、什么是消息中间件(MQ)
1.1 为什么会需要消息队列(MQ)?
 主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达MySQL,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。
2.2 什么是消息中间件
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)
常见的消息中间件产品:
(1)ActiveMQ
  ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。我们在本次课程中介绍 ActiveMQ的使用。
  (2)RabbitMQ
  AMQP协议的领导实现,支持多种场景。淘宝的MySQL集群内部有使用它进行通讯,OpenStack开源云平台的通信组件,最先在金融行业得到运用。
  (3)ZeroMQ
  史上最快的消息队列系统
  (4)Kafka
  Apache下的一个子项目 。特点:高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。适合处理海量数据。


消息队列对比.png

二、JMS简介
2.1 什么是JMS

JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。

   JMS本身只定义了一系列的接口规范,是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC(java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,这只是几个例子。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JML 客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。

JMS 定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。

· TextMessage--一个字符串对象
· MapMessage--一套名称-值对
· ObjectMessage--一个序列化的 Java 对象
· BytesMessage--一个字节的数据流
· StreamMessage -- Java 原始值的数据流
2.2 JMS 消息传递类型

对于消息的传递有两种类型:

一种是点对点的,即一个生产者和一个消费者一一对应:
另一种是发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收:
https://www.e-learn.cn/content/java/487993

相关文章

  • RabbitMQ,消息中间件基础当中的AMQP协议

    知识要点: 什么是消息中间件 消息中间件的作用 消息中间件历史 JMS规范 AMQP协议 消息队列中间件(Mess...

  • 消息中间件元基础与原理解释,微服务系统你要懂得的JMS,AMQP

    消息中间件基础 知识要点: 什么是消息中间件 消息中间件的作用 消息中间件历史 JMS规范 AMQP协议 Rabb...

  • 消息中间件介绍

    文章大纲 一、什么是消息中间件二、消息中间件组成三、消息队列的的传输模式四、消息中间件的优势五、消息中间件应用场景...

  • kafka核心原理,藏在这 16 张图里

    讲一讲分中间件 问题 什么是分布式消息中间件? 消息中间件的作用是什么? 消息中间件的使用场景是什么? 消息中间件...

  • Java | 技术

    docker 应用虚拟机容器 RabbitMQ 消息中间件 Kafa 消息中间件 ActiveMQ 消息中间件 M...

  • SpringCloud之Stream-1.消息驱动在微服务中的应

    消息中间件的应用 我们常用的消息中间件的使用就是从开始的发布消息到一个中间件中,然后消息中间件在发送消息到相应的队...

  • RabbitMq简介

    消息中间件 1、什么是消息中间件?   消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数...

  • 消息中间件面试题:如何保证消息的顺序性

    面试题 如何保证消息的顺序性? 消息中间件各种面试题:消息中间件面试题:消息丢失怎么办?消息中间件面试题:消息队列...

  • 消息中间件

    什么是消息中间件? 消息中间件是在消息的传输过程中保存消息的容器 消息中间件将消息从源中继(生产者)到目标(消费者...

  • Kafka的Lag计算误区及正确实现

    前言 消息堆积是消息中间件的一大特色,消息中间件的流量削峰、冗余存储等功能正是得益于消息中间件的消息堆积能力。然而...

网友评论

      本文标题:消息中间件

      本文链接:https://www.haomeiwen.com/subject/erfsaqtx.html