Qouson's blog Qouson's blog
首页
  • Java 基础

    • 基础
    • String
  • Java 中级

    • 网络编程
  • Java 高级

    • JVM
    • 多线程
  • Spring
  • SpringMVC
  • SpringBoot
  • MySQL
  • Redis
  • MQ
  • ZooKeeper
  • git
  • linux
  • 设计模式
  • 数据结构与算法
  • 计算机基础
  • Java相关框架
  • 分布式
  • DDD领域驱动设计
  • 系统设计
  • 杂乱无章
Java知识图谱
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

qouson

Java界的小学生
首页
  • Java 基础

    • 基础
    • String
  • Java 中级

    • 网络编程
  • Java 高级

    • JVM
    • 多线程
  • Spring
  • SpringMVC
  • SpringBoot
  • MySQL
  • Redis
  • MQ
  • ZooKeeper
  • git
  • linux
  • 设计模式
  • 数据结构与算法
  • 计算机基础
  • Java相关框架
  • 分布式
  • DDD领域驱动设计
  • 系统设计
  • 杂乱无章
Java知识图谱
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • mysql

  • redis

  • mq

    • 消息中间件的应用场景
    • ActiveMQ

      • ActiveMQ
        • ActiveMQ入门
          • ActiveMQ是什么
          • JMS规范
          • JMS是什么
          • JMS对象模型
          • 对象模型
          • 通信模型
          • JMS消息结构
          • 消息头----关于一些消息的描述信息
          • 消息属性----可以理解为消息的附加消息头,属性名可以自定义
          • 消息体
          • ActiveMQ的特性
          • ActiveMQ安装
          • 安装及启动/停止
          • 将ActiveMQ作为服务启动,可以确保在系统启动的时候自启动
          • ActiveMQ使用
    • RabbitMQ

    • Kafka

  • zookeeper

  • 中间件
  • mq
  • ActiveMQ
qouson
2024-05-23
目录

ActiveMQ

# ActiveMQ

# ActiveMQ入门

# ActiveMQ是什么

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

# JMS规范

# JMS是什么

  • Java消息服务(Java Message Service,即JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API。

# JMS对象模型

# 对象模型
  • ConnectionFactory----连接工厂
  • Connection----连接
  • Session----会话
  • Destination----目的
  • MessageProducer----生产者
  • MessageConsumer----消费者
  • Message----消息
  • Broker----消息中间件的实例(ActiveMQ)
# 通信模型
  • Point to Point(P2P)/点对点 20210511225826
  • Publish/Subscribe/主题(发布订阅) 20210511230624

# JMS消息结构

20210511230914

# 消息头----关于一些消息的描述信息
  • JMSDestination----消息的目的地,Topic或Queue
  • JMSDeliverMode----消息的发送模式
  • JMSTimestamp----消息传递给Broker(消息中间件的实例)的时间戳,它不是实际的发送时间
  • JMSExpiration----消息的有效期,有效期内,消息的消费者才能消费这个消息
  • JMSPriority----消息的优先级。0-4级为正常,5-9级为高优先级
  • JMSMessageID----一个字符串用来唯一标识一个消息
  • JMSReplyTo----有时消息生产者希望消费者回复一个消息,JMSReplyTo为一个Destination,表示需要回复的目的地
  • JMSCollectionID----通常用来关联多个Message
  • JMSType----表示消息体的结构,和JMS提供者有关
  • JMSRedelivery----如果这个值为true,表示消息被重新发送了
# 消息属性----可以理解为消息的附加消息头,属性名可以自定义

20210511232018

# 消息体
  • 消息体类型
    • ByteMessage----用来传递字节信息
    • MapMessage----用来传递键值对信息
    • ObjectMessage----用来传递序列化对象
    • StreamMessage----用来传递文件等
    • TextMessage----用来传递字符串

# ActiveMQ的特性

  • 支持多种编程语言
  • 支持多种传输协议
  • 有多种持久化方式

# ActiveMQ安装

# 安装及启动/停止

  • cd /tmp
  • wget -c https://mirrors.bfsu.edu.cn/apache//activemq/5.16.2/apache-activemq-5.16.2-bin.tar.gz
  • tar -zxvf apache-activemq-5.16.2-bin.tar.gz -C /var
  • mv /var/apache-activemq-5.16.2/ /var/activemq/
  • /var/activemq/bin/activemq start
  • /var/activemq//bin/activemq stop

# 将ActiveMQ作为服务启动,可以确保在系统启动的时候自启动

  • 使用vim创建一个systemd服务文件
    • vi /usr/lib/systemd/system/activemq.service

    • 填入以下内容

      [Unit]
      Description=ActiveMQ service
      After=network.target
      
      [Service]
      Type=forking
      ExecStart=/var/activemq/bin/activemq start
      ExecStop=/var/activemq/bin/activemq stop
      User=root
      Group=root
      Restart=always
      RestartSec=9
      StandardOutput=syslog
      StandardError=syslog
      SyslogIdentifier=activemq
      
      [Install]
      WantedBy=multi-user.target
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
    • 修改/var/activemq/bin/env配置,找到最后 20210512000329

    • 将JAVA_HOME注释取消,填入jdk安装路径(使用whereis java命令查找安装路径) 20210512000422

    • 启动ActiveMQ服务

      • systemctl start activemq
    • 查看服务状态

      • systemctl status activemq
    • 设置开机自启动

      • ln -s /usr/lib/systemd/system/activemq.service /etc/systemd/system/multi-user.target.wants/activemq.service
      • systemctl enable activemq
      • 检测是否自启动systemctl list-unit-files | grep activemq
    • 防火墙添加ActiveMQ端口

      • 查看端口
        • firewall-cmd --list-ports
      • 添加端口
        • #Web管理端口默认为8161,通讯端口默认为61616
        • firewall-cmd --zone=public --add-port=8161/tcp --permanent
        • firewall-cmd --zone=public --add-port=61616/tcp --permanent
      • 重启防火墙
        • systemctl restart firewalld.service
      • 或者直接关闭防火墙
        • systemctl stop firewalld.service

# ActiveMQ使用

编辑 (opens new window)
上次更新: 2024/05/24, 11:36:46
消息中间件的应用场景
RabbitMQ

← 消息中间件的应用场景 RabbitMQ→

最近更新
01
杂乱无章
12-25
02
基础-大彬
11-14
03
集合-大彬
11-14
更多文章>
Theme by Vdoing | Copyright © 2023-2025 qouson
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式