im消息丢失插件

https://github.com/laughin/mocamsg

mocamsg

Moca message interceptor

Openfire网络不好的情况下经常丢消息,一般情况都是服务器端路由到客户端的时候发生的,所以利用Openfire的插件机制,进行消息的拦截,对所有拦截到的消息进行缓存,保证消息在服务端一定不会丢失。增加Redis缓存层,把所有在线消息都保存至Redis,利用消息回执机制,Client收到消息会根据该条消息的messageId发出一个消息回执到Redis,Redis根据这个messageId作为缓存的key针对性的清除消息缓存。为了不改变OpenFire的源代码本插件没有重写 OfflineMessageStore 的离线机制,离线消息还是会直接存储在 MySQL 的 ofOffline 表当中。离线消息会触发JPush消息推送。

时间: 2024-10-30 07:45:30

im消息丢失插件的相关文章

RabbitMQ消息丢失问题和保证消息可靠性-消费端不丢消息和HA(二)

继续上篇文章解决RabbitMQ消息丢失问题和保证消息可靠性(一) 未完成部分,我们聊聊MQ Server端的高可用和消费端如何保证消息不丢的问题? 回归上篇的内容,我们知道消息从生产端到服务端,为了保证消息不丢,我们必须做哪些事情? 发送端采用Confirm模式,注意Server端没成功通知发送端,需要重发操作需要额外处理 消息的持久化处理 上面两个操作保证消息到服务端不丢,但是非高可用状态,如果节点挂掉,服务暂时不可用,需要重启后,消息恢复,消息不会丢失,因为有磁盘存储. 本文先从消费端讲起

SwwetAlert消息提示插件,支持手机移动响应式替换alert漂亮的消息提示插件

SwwetAlert 支持手机移动响应式消息提示插件 官方地址:http://tristanedwards.me/sweetalert IE11有闪退 IE11无闪退 地址:http://www.js-css.cn/jscode/tips/tips13/ 语法参考 swal("Good job!", "You clicked the button!", "success") 效果图 IE11无闪退JS (sweet-alert.min.js) !

RabbitMQ-从基础到实战(2)— 防止消息丢失

未经允许,禁止转载! 1.简介 RabbitMQ中,消息丢失可以简单的分为两种:客户端丢失和服务端丢失.针对这两种消息丢失,RabbitMQ都给出了相应的解决方案. 2.防止客户端丢失消息 如图,生产者P向队列中生产消息,C1和C2消费队列中的消息,默认情况下,RabbitMQ会平均的分发消费给C1C2(Round-robin dispatching),假设一个任务的执行时间非常长,在执行过程中,客户端挂了(连接断开),那么,该客户端正在处理且未完成的消息,以及分配给它还没来得及执行的消息,都将

rabbitmq 重复ACK导致消息丢失

rabbitmq 重复确认导致消息丢失 背景 rabbitmq 在应用场景中,大多采用工作队列 work-queue的模式. 在一个常见的工作队列模式中,消费者 worker 将不断的轮询从队列中拉取最新消息,当队列负载压力增大时允许添加多个worker 进行处理.然而执行一个任务可能需要相当的时长,这是由业务特性所决定的:如果 worker执行任务过程中出现异常甚至宕机,此时消息便会丢失,这是简单消息队列难以解决的问题. rabbitmq 采用了消息确认机制来防止此类问题,在该机制中,work

openfire在网络不好或掉线时消息丢失的处理方法

在服务端收到消息后增加如下代码 //保存到离线消息表,客户端收到后调用删除离线消息功能,这样可确保即使网络突然掉线或不好的情况下消息丢失的问题 OfflineMessageStore offlineMessageStore = new OfflineMessageStore(); offlineMessageStore.addMessage(message); 客户端在登录的时候要先设置为离线,收完离线消息后再改成在线模式. 接收方在收到每条消息后自己调用删除离线消息. 注意事项: 1.登录前要

Jquery消息提示插件toastr使用详解

toastr是一个基于jQuery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 1.使用很简单,首选引入toastr的js.css文件 html <script src="<%=path%>/res/toastr/toastr.min.js"></script> <link rel="stylesheet" href="<%=path%>/res/toastr/toastr

Jquery消息提示插件toastr使用

toastr是一个基于jQuery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 相关文件到官网去下载即可 1.引入toastr的js和css文件 1 <link href="/toastr/build/toastr.css" rel="stylesheet"> 2 <script src="/toastr/build/toastr.min.js"></script> 2.初始化to

RabbitMQ,为应对消息从发送到消费,各个环节消息丢失的解决方案

1.发送方   为保证消息到达exchange,在这个过程中不丢失.  用事务或者发送方确认机制  见<RabbitMQ实战指南>4.8节 2.为保证消息不会因为到达exchange后,无法路由到任何一个队列而丢失 解决方案一:发送方发送消息时 令mandatory参数=true,用ReturnListener异步接收没有任何队列接收而返回给发送方的消息.  见<RabbitMQ实战指南>4.1.1节 解决方案二:给exchange指定一个备份交换器及对应队列,到达交换器的消息如何

Kafka在高并发的情况下,如何避免消息丢失和消息重复?kafka消费怎么保证数据消费一次?数据的一致性和统一性?数据的完整性?

1.kafka在高并发的情况下,如何避免消息丢失和消息重复? 消息丢失解决方案: 首先对kafka进行限速, 其次启用重试机制,重试间隔时间设置长一些,最后Kafka设置acks=all,即需要相应的所有处于ISR的分区都确认收到该消息后,才算发送成功 消息重复解决方案: 消息可以使用唯一id标识 生产者(ack=all 代表至少成功发送一次) 消费者 (offset手动提交,业务逻辑成功处理后,提交offset) 落表(主键或者唯一索引的方式,避免重复数据) 业务逻辑处理(选择唯一主键存储到R