ActiveMQ是完全基于JMS规范实现的一个消息中间件,主要应用于分布式系统架构中,
帮助构建高可用,高性能,可伸缩的企业级面向消息服务的系统。
一、ActiveMQ支持的语句
Java,C,C++,C#,Ruby,Perl,Python,PHP
二、ActiveMQ传递的五种消息类型
TextMessage、MapMessage、ObjectMessage、BytesMessage、和StreamMessagg五种消息类型)
三、ActiveMQ两种消息传递方式
1.点对点的消息传递域
(1) 每个消息只能有一个消费者
(2)消息的生产者和消费者之间在时间上没有相关性。无论生产者发送消息的时候是否
处于运行状态,都可以提取消息
2发布和订阅消息传递域
(1)每个消息都可以有多个消费者
(2)生产者和消费者之间有相关性。订阅一个主题的消费者只能消费
它订阅之后发布的消息。
3消息的结构组成
JMS消息组成部分:消息头,消息体,属性
属性包含识别信息和路由信息
JMSDestination 消息发送的目的滴(queue或者topic)
JMSDeliveryMode 传送模式(持久化模式或者非持久化模式)
JMSPriority 消息优先级 基本从低到高是0-9,默认基本是4,JMS provider
并不一定按照优先级别提交消息
JMSMessageID 唯一识别每个消息的标志
消息体:我们需要传递的内容
四、消息的同步发送和异步发送
五、持久化机制
1.kahadb 默认的实现机制
在传递activeMQ的data文件夹中会生成db-1.log ,db.data,de.redo
db-1.log为数据文件,db.data为索引,db.redo用于数据恢复
2jdbc 存储
自动生成activemq_acks,activemq_lock, active_msgs 三张表
activemq_acks 存储持久化订阅信息
activemq_lock 锁表
activemq_msgs 消息内容
3.Memory 内存
4.Leve DB
可以实现leveDB+zookeeper主从复制
5、JDBC with ActiveMQ journal
JDBC的改进版本