当前位置: 代码迷 >> 综合 >> ActiveMQ持久化
  详细解决方案

ActiveMQ持久化

热度:70   发布时间:2024-01-26 15:40:21.0

ActiveMq可以持久化操作避免丢失数据。

ActiveMq有两种通信方式。

1.点对点;

点对点模型不会发生消息丢失的情况,一个消息只能被一个消费者(消息的接受者)消费,被消费后,消息就会从队列里面消失。被消费之前是一直在等待被消费。如果多个消费者消费一条消息,那么只能有一个消费者可以监听到这条消息,先到先得。

2.发布订阅模型;

默认情况是就通知一次,没有接受到就没有了。很可能会丢失数据。如果对消息送达率很高,就需要配置持久化订阅。每个订阅端定义一个id,在订阅时向activeMq注册,发布消息和接收消息需要配置发送模式为持久化。此时如果客户端接收不到消息的话,消息会持久化在服务端,直到客户端接收后为止。

ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。

就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试。消息中心启动以后首先要检查指定的存储位置,如果有未发送成功的消息,则需要把消息发送出去。

配置持久化的方式,都是修改安装目录下conf/acticvemq.xml文件。

未完待续