最近在搞 ActiveMQ 的时候,发现有 2 个 ActiveMQ 可以下载。
应该下那个呢?
JMS 即Java Message Service,是JavaEE的消息服务接口。
JMS主要有两个版本:1.1和2.0。
2.0和1.1相比,主要是简化了收发消息的代码。
所谓消息服务,就是两个进程之间,通过消息服务器传递消息。
实际上ActiveMQ Classic原来就叫ActiveMQ,是Apache开发的基于JMS 1.1的消息服务器,目前稳定版本号是5.x,而 ActiveMQ Artemis 是 由RedHat捐赠的 HornetQ服 务器代码的基础上开发的,目前稳定版本号是 2.x。
和ActiveMQ Classic相比,Artemis版的代码与Classic完全不同,并且,它支持JMS 2.0,使用基于Netty的异步IO,大大提升了性能。
针对数据的持久层 ActiveMQ Artemis 还能够支持 JDBC。
总结
整体来说,ActiveMQ 通常指的是 ActiveMQ Classic,为了简化去掉了 Classic。
ActiveMQ Artemis 应该是作为下一个版本来候选的,支持的协议更新。
2 套 ActiveMQ 的代码是不一样的。
如果用不到什么太多的消息策略高级需求,可以就使用 ActiveMQ Classic 就好。
因为这 2 个消息服务器的代码完全不一样,导致如果你使用 Spring 的话,使用的包的代码也不一样,ActiveMQ artemis 的调用代码更加简单,界面更好看。
如项目只是需要一个消息服务器,并且没有什么技术负担,使用 Spring 的框架的话,用 ActiveMQ artemis 可能更好些。
有谁不愿意看好看的界面呢?