首页 > 其他分享 >ActiveMQ系列(一) ------- 简介

ActiveMQ系列(一) ------- 简介

时间:2023-02-14 10:01:07浏览次数:41  
标签:队列 简介 消息中间件 ------- 秒杀 消息 JMS ActiveMQ


目录

​​一、 ActiveMQ 简介​​

​​            1 什么是 ActiveMQ​​

​​             2 什么是消息​​

​​             3 什么是队列​​

​​           4 什么是消息队列​​

​​          5 常用消息服务应用​​

​​  二、 消息服务的应用场景       ​​

​​      5.1 异步处理​​

​​     5.2 应用的解耦​​

​​ 5.3 流量的削峰​​

​​ 三、 JMS​​

​​1 什么是 JMS​​

​​2 JMS 模型​​


一、 ActiveMQ 简介

            1 什么是 ActiveMQ

           ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现,尽管 JMS 规范出台已经是很久的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位。

             2 什么是消息

           “消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。

             3 什么是队列

     

ActiveMQ系列(一) ------- 简介_消息队列

           4 什么是消息队列

                    “消息队列”是在消息的传输过程中保存消息的容器。

          5 常用消息服务应用

               5.1 ActiveMQ
              ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现。

              5.2 RabbitMQ
              RabbitMQ 是一个在 AMQP 基础上完成的,可复用企业消息系统。他遵循 Mozilla  Public  License 开源协议。开发语言为 Erlang。

              5.3 RocketMQ
               由阿里巴巴定义开发的一套消息队列应用服务。

  二、 消息服务的应用场景
       

主要特点异步处理主要目的减少请求响应时间和解耦

         主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方接收方不需要彼此联系,也不需要受对方的影响,即解耦和。

     

ActiveMQ系列(一) ------- 简介_消息中间件_02

      5.1 异步处理

                     5.1.1 用户注册
                       用户注册流程:
                       1)注册处理以及写数据库
                       2)发送注册成功的手机短信
                       3)发送注册成功的邮件信息 

                  如果用消息中间件:则可以创建两个线程来做这些事情,直接发送消息给消息中间件,
             然后让邮件服务和短信服务自己去消息中间件里面去取消息,然后取到消息后再自己做对               应的业务操作。就是这么方便

     5.2 应用的解耦

                 5.2.1 订单处理
                      生成订单流程:
                      1)在购物车中点击结算
                      2)完成支付
                      3)创建订单
                      4)调用库存系统

             订单完成后,订单系统并不去直接调用库存系统,而是发送消息到消息中间件,写入一个订单信息。库存系统自己去消息中间件上去获取,然后做发货处理,并更新库存,这样能够实现互联网型应用追求的快这一个属性。而库存系统读取订单后库存应用这个操作也是非常快的,所以有消息中间件对解耦来说也是一个不错的方向。

 5.3 流量的削峰

           5.3.1 秒杀功能
                秒杀流程:
                 1)用户点击秒杀
                 2)发送请求到秒杀应用
                 3)在请求秒杀应用之前将请求放入到消息队列
                 4)秒杀应用从消息队列中获取请求并处理。

            比如,系统举行秒杀活动,热门商品。流量蜂拥而至 100 件商品,10 万人挤进来怎么办?10 万秒杀的操作,放入消息队列。秒杀应用处理消息队列中的 10 万个请求中的前 100个,其他的打回,通知失败。流量峰值控制在消息队列处,秒杀应用不会瞬间被怼死.

 三、 JMS

1 什么是 JMS

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

2 JMS 模型

      2.1 点对点模型(Point To Point)
     生产者发送一条消息到 queue,只有一个消费者能收到。

      

ActiveMQ系列(一) ------- 简介_消息队列_03

  

          2.2 发布订阅模型(Publish/Subscribe)
                发布者发送到 topic 的消息,只有订阅了 topic 的订阅者才会收到消息。

                

ActiveMQ系列(一) ------- 简介_后端_04

标签:队列,简介,消息中间件,-------,秒杀,消息,JMS,ActiveMQ
From: https://blog.51cto.com/u_15949848/6055570

相关文章