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
  • 相关阅读:
    第十七篇 ORM跨表查询和分组查询---二次剖析
    第十六篇随机验证码
    第十五篇 用户认证auth
    crawler_网络爬虫中编码的正确处理与乱码的解决策略
    java_Eclipse自动生成作者、日期注释等功能设置_导入 xml方式
    mysql_windows_安装版添加到服务开机自启动
    java_model_dao_自动生成_generator-mybatis-generator-1.3.2 基于maven插件
    java_eclipse_maven_svn_主题彩色插件_全屏插件
    mysql_MYSQL远程登录权限设置
    crawler_phantomjs_windows_linux下demo
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10351511.html
Copyright © 2011-2022 走看看