ActiveMQ?

175 阅读1分钟

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

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