世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
ActiveMQ特性
支持多种编程语言
支持多种传输协议
有多种持久化方式
ActiveMQ安装
官网下载
启动:activemq start
停止:activemq stop
创建服务(vi /usr/lib/systemd/system/activemq.service)
systemctl start activemq
防火墙
默认端口8161/admin
默认用户名密码admin/admin
web配置:conf/jetty.xml
依赖:activemq-all
spring依赖
ActiveMQ使用
控制台
程序:API spring spring boot
ActiveMQ支持的消息协议
AUTO
OpenWire
AMQP
Stomp
MQTT
ActiveMQ支持的传输方式
VM(内嵌)
TCP(默认OpenWire)
SSL
UDP
Peer
Multicast
HTTP(S)
NIO
Failover
Fanout
Discovery
ZeroConf
OpenWire
支持传输方式:
TCP
SSL
NIO
UDP
VM
OpenWire配置参数(wireFormat开头)
stackTraceEnabled
tcpNoDelayEnabled
cacheEnabled
tightEncodingEnabled
prefixPacketSize
maxInactivityDuration
maxInactivityDurationInitalDelay
cacheSize
maxFrameSize
MQTT(默认端口1883,发布订阅)服务质量(Qos)
Qos=0 至多一次
Qos=1 至少一次,有应答
Qos=2 Qos=1基础上去重
通配符
ActiveMQ MQTT
分隔符 . /
元素 * +
子节点 > #
注意*
ActiveMQ是服务端支持多种协议
客户端需要具体去看
消息模型
发布订阅 Topic
P2P Queue
集群
Master-Slave
Broker-Cluster
结合
networkConnector
延时消息
配置
server
-> schedulerSupport=“true”
producer
设置延时
Master-Slave
文件(数据库)共享 -> persistant=“true” fialover
Broker Cluster
networkConnector server共享信息,互相调用 内置消费者 static multicast
持久化
JDBC
AMQ(废)
KahaDB(默认)
LevelDB(废)
事务
conn.createSession(true, Session.SESSION_TRANDSACTED)
session.commit(); // 接收后销毁
session.rollback(); // 重发,默认6次
其他
异步调度
消费者优先级
消费者分组
生产者分组
topic->queue, 发布订阅映射为虚拟queue