java消息队列ActiveMQ

安装

前置条件

  • activemq的运行依赖于jdk,需要提前安装jdk
  • 如果已经安装了jdk,需要根据jdk的版本来选择对应的版本进行安装activemq
  • 版本对应在官网上,使用java -version 看jdk的版本
  • 注意:jdk和mq的版本不一致会报错,电脑的命名不能用中文

启动

  • 有的版本bin目录会有2个目录win32和win64,有的只有win64
  • 打开bin目录
  • 点击activemq.bat,访问网址 http://127.0.0.1:8161/admin/

使用服务进行启动

  • 上述方式使用bat文件启动,只要cmd窗口一关,就会关闭
  • 自带安装服务和卸载服务的bat文件(使用管理员权限运行)

消息中间件的应用场景

  • 异步处理
  • 应用解耦
  • 流量削峰

场景

用户注册需要三个功能:写数据库、发送邮件、注册短信

异步处理

串行

并行

消息中间件

对比

应用解耦

流量削峰

中间件对比

  • activemq:java、万级吞吐量、毫秒级响应速度、可用性高(主从架构),很多公司在用
  • rabbitmq:erlang,其他同上,管理界面丰富
  • rocketmq:java,10万级别,可用性很高(分布式)
  • kafka:消息查询和追溯没有提供,大数据应用广泛

jms消息模型

  • 两种模型
  • P2P(point to point):点对点模型(queue模型)
  • P/S(publish/subscribe):发布订阅模型(topic模型)

点对点

生产者和消费者之间的消息往来

特点

  • 每个消息只能被一个消费者消费,消费之后就直接消失了
  • 生产者和消费者没有直接依赖关系,不管消费者有没有运行,都不妨碍生产者将消息发给队列
  • 消费者成功接受消息之后需要向队列回应应答成功

发布订阅模型

三个角色

  • 发布者
  • 订阅者
  • 主题
  • 发布者将消息发布到主题,只有订阅了主题的订阅者才能接收到消息
  • topic来实现消息的发布
  • 当一个消息被发布,n个订阅者都可以得到消息的拷贝

特点

  • 一个主题可以被多个订阅者订阅
  • 存在时间的先后顺序,消费者需要先订阅,生产者才能发布消息
  • 订阅者必须保持持续运行状态,才能接收到生产者的消息

JMS API

相关推荐
阿屿几秒前
从零手搓 AI 伴侣(二):好感度通胀危机,与它的「货币政策」
java·人工智能
灿飞7 分钟前
Kotlin与Java虚拟机十一:类与属性:构造顺序、backing field 与显式 backing field
java·后端·kotlin
aiks_yuan10 分钟前
40亿个QQ号 1G内存怎么去重:Java BitSet 装不下,long 数组位图 512MB 实测 46 秒(JDK 17)
java
文丑颜不良啊26 分钟前
LeetCode2521~2540题目解析
java·leetcode
杨凯凡28 分钟前
Spring Framework 7 HTTP Interface 实战:声明式 RestClient、超时与测试
java·spring·http
吴名氏.43 分钟前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent
瑞雪兆丰年兮1 小时前
JavaWeb-day10-SpringBootWeb案例
java·开发语言·javaweb·web
Rain的Java大神之路2 小时前
你背的Spring答案,全是5.x时代的:7.0.8源码一翻,80%的博客都过时了
java·后端·面试
这个昵称不容易2 小时前
考试报名系统的设计与实现(SpringBoot + MySQL + Vue 三角色平台)
java·springboot·毕设
Adellle3 小时前
设计模式指南 (Java 版) ㊁
java·开发语言·设计模式