zoukankan      html  css  js  c++  java
  • Java消息队列

    作用:提升系统异步通信,扩展解耦能力。

    系统发送消息到消息代理接管,消息代理保证消息传送到指定目的地。

    主要的两种形式:

      1.队列(Queue):点对点通信

      每一条消息只有一个接收者获取,当某条消息被一个接收者获取后,该消息将被移出队列,其余接收者无法获取该消息。

      2.发布(Publish)/ 订阅(Subscribe)

      多个接收者监听(订阅)了这个队列,队列中的新消息将到达每一个接收者,订阅了这个队列的接收者将同时收到消息。

      JMS(Java消息服务) AMQP(高级消息队列协议)
    定义 Java API 网络线级协议
    跨语言
    跨平台
    消息模型

    1.点对点

    2.发布/订阅

    1.direct exchange(点对点)

    2.fanout exchange(发布/订阅)

    3.topic exchange(发布/订阅)

    4.headers exchange(发布/订阅)

    5.system exchange(发布/订阅)

    本质上讲,后四种都属于发布/订阅,仅在

    路由机制上作了更加详细的区分

    支持消息类型

    1.TextMessage

    2.MapMessage

    3.BytesMessage

    4.StreamMessage

    5.ObjectMessage

    6.Message(只有消息头和属性)

    byte[]

    当实际应用时,有复杂的消息可以将消息序列化

    后发送。

    综合评价

    JMS定义了Java API层面的标准,在Java

    体系中,多个Client均可以通过JMS进行

    交互,不需要应用修改代码,但其对跨平台

    的支持较差

    AMQP定义了wire-level层的协议标准,天然具有跨语言、

    跨平台的特性。

    Sping的支持

    Spring-jms提供了对JMS的支持
    Spring-rabbit提供了对AMQP的支持
    需要ConnectionFactory的实现类来连接消息代理
    提供JmsTemplate、RabbitTemplate来发送消息
    @JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息代理发布的消息
    @EnableJms、@EnableRabbit开启支持

    SpringBoot的支持

      starter(启动器) AutoConfiguration(自动配置类)
    JMS

    spring-boot-starter-activemq

    spring-boot-starter-artemis

    JmsAutoConfiguration
    AMQP spring-boot-starter-amqp RabbitAutoConfiguration
  • 相关阅读:
    Windows Server 2016-配置Windows Defender防病毒排除项
    Windows Server 2016-增强IPAM
    第五讲:虚拟化架构、特点及优势
    第四讲:虚拟化概念及相关知识介绍
    第三讲:云计算的产生和特点
    第二讲:云分类及服务模式
    第一讲:云计算基础知识第一讲:云计算概念
    每天一个linux命令(56)--crontab命令
    每天一个linux命令(55)--at命令
    每天一个linux命令(54)--watch命令
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10351511.html
Copyright © 2011-2022 走看看