IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> ActiveMQ系列(一) ------- 简介 -> 正文阅读

[Java知识库]ActiveMQ系列(一) ------- 简介

一、 ActiveMQ 简介


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


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


?? ? ? ? ? ?3 什么是队列

? ? ?

?

?

? ? ? ? ? ?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
? ? ? ? ? ? ? ? ? ? 由阿里巴巴定义开发的一套消息队列应用服务。

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

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

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

? ? ?

? ? ? 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,只有一个消费者能收到。

? ? ??

??

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

? ? ? ? ? ? ? ??

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:48:53  更:2021-11-24 07:50:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:36:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码