Apache ActiveMQ

Apache ActiveMQ

多协议开源消息中间件

开发官网

应用介绍

系统拆成几个服务之后,最头疼的是它们之间怎么可靠地传消息:对方宕机了消息不能丢,流量一来不能把下游压垮,还得兼顾用不同语言写的客户端。Apache ActiveMQ 就是专门干这个的消息代理,放在中间收发排队,生产者和消费者彼此不用等。

它最拿得出手的是多协议:Java 服务走 JMS,其他语言用 AMQP,网页端用 STOMP 跑在 WebSocket 上,物联网设备接 MQTT,还有 OpenWire,同一个 broker 全能接。JavaScript、C、C++、Python、.Net 都有现成的客户端,不用为了换语言重新选型。

软件功能



JMS 支持:完整支持 JMS 1.1 和 JMS 2.0 的大部分内容,部分支持 Jakarta Messaging 3.1,客户端含 JNDI。

持久化:消息可以存进 KahaDB,也可以走 JDBC 落到数据库里,重启不丢。

高可用:用共享存储做主备切换,一台挂了另一台接着干。

Broker 网络:多个 broker 组成网络分摊负载,消息量大了就横向加节点。

Web 控制台:内置在二进制发行包里,启动后打开 localhost:8161/admin 就能看队列和主题。

协议覆盖:AMQP、STOMP、MQTT、OpenWire 全部支持,开源,Apache 2.0 许可。

应用截图