首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

离线数据推送问题(消息队列)

今天发生的问题:消息队列报错,实时消息没有发送成功,重启后问题消失。 ? 继续看其他的错误日志: ? ? 消息队列采用公司统一的apache qpidd集群。...SwiftSendMsgTask是我当初自己设计的一个对象连接池,目的在于如果消息的发送和正常向消息队列里组装消息是同步的,会造成第一实行性不能保证,因为有的专辑下面有几万个视频,必须组装成一个消息发送...所以我就直接异步发消息,从对象连接池中取出一个处理发消息的处理对象扔进去,直接处理下一个。如果处理消息的空闲对象不够用我就直接新建一个放到连接池里。...一直想好好总结一下离线数据的程序,因为这个程序整个架构基本上很原始,资源的调度分配都是程序自己控制的,基本没用什么现成的技术。...因为这个离线服务半夜有个跑全量的,我会起1000多个线程来跑,但是每次处理数据的线程池是50,因为这个环节要涉及大量CPU计算数据库连接,虽然是高配物理机,而且数据库是专门将线上数据实时复制的一个从库,

1.3K20

IM消息机制(二):保证离线消息的可靠投递

二、典型离线消息表的设计以及拉取离线消息的过程 ① 存储离线消看书的表主要字段大致如下: -- 消息接收者ID receiver_uid varchar(50), -- 消息的唯一指纹码(即消息ID...)中把离线消息删除; Stelp 4:服务器返回给用户B想要的离线消息。...五、优化离线消息的拉取过程,保证离线消息不会丢失 如何保证可达性,上述步骤第三步执行完毕之后,第四个步骤离线消息返回给客户端过程中,服务器挂点,路由器丢消息,或者客户端crash了,那离线消息岂不是丢了么...如同在线消息的应用层ACK机制一样,离线消息拉时,不能够直接删除数据库中的离线消息,而必须等应用层的离线消息ACK(说明用户B真的收到离线消息了),才能删除数据库中的离线消息。...六、进一步优化,解决重复拉取离线消息的问题 如果用户B拉取了一页离线消息,却在ACK之前crash了,下次登录时会拉取到重复的离线消息么?

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

微信为啥不丢“离线消息”?

) 问题:离线消息表的设计,拉取离线的过程?...整体流程如上图所述, (1)用户B拉取用户A发送给ta的离线消息 (2)服务器从DB中拉取离线消息 (3)服务器从DB中把离线消息删除 (4)服务器返回给用户B想要的离线消息 问题:上述流程存在的问题?...如同在线消息的应用层ACK机制一样,离线消息拉时,不能够直接删除数据库中的离线消息,而必须等应用层的离线消息ACK(说明用户B真的收到离线消息了),才能删除数据库中的离线消息。...问题:如果用户B拉取了一页离线消息,却在ACK之前crash了,下次登录时会拉取到重复的离线消息么? 回答:拉取了离线消息却没有ACK,服务器不会删除之前的离线消息,故下次登录时系统层面还会拉取到。...SMC理论:系统层面无法做到消息不丢不重,业务层面可以做到,对用户无感知。 ? 问题:假设有N页离线消息,现在每个离线消息需要一个ACK,那么岂不是客户端与服务器的交互次数又加倍了?

2.5K60

IM消息送达保证机制实现(二):保证离线消息的可靠投递1、前言2、学习交流3、IM消息送达保证系列文章4、消息接收方不在线时的典型消息发送流程5、典型离线消息表的设计以及拉取离线消息的过程6、上述流

5、典型离线消息表的设计以及拉取离线消息的过程 ① 存储离线消看书的表主要字段大致如下: -- 消息接收者ID receiver_uidvarchar(50), -- 消息的唯一指纹码(即消息ID...)中把离线消息删除; Stelp 4:服务器返回给用户B想要的离线消息。...8、优化离线消息的拉取过程,保证离线消息不会丢失 如何保证可达性,上述步骤第三步执行完毕之后,第四个步骤离线消息返回给客户端过程中,服务器挂点,路由器丢消息,或者客户端crash了,那离线消息岂不是丢了么...如同在线消息的应用层ACK机制一样,离线消息拉时,不能够直接删除数据库中的离线消息,而必须等应用层的离线消息ACK(说明用户B真的收到离线消息了),才能删除数据库中的离线消息。...9、进一步优化,解决重复拉取离线消息的问题 如果用户B拉取了一页离线消息,却在ACK之前crash了,下次登录时会拉取到重复的离线消息么?

75121

IM开发技术分享:浅谈IM系统中离线消息、历史消息的最佳实践

而对于离线的用户:服务器端会将消息存入到离线库,当用户登录后,从离线库中将离线消息拉走,然后服务器端将离线消息删除。 这样实现的缺点就是消息不持久化,导致消息无法支持消息漫游,降低了消息的可靠性。...4、什么是离线消息和历史消息? 关于离线消息和历史消息,在技术上,我们是这样定义。...1)离线消息离线消息就是用户(即接收方)在离线过程中收到的消息,这些消息大多是用户比较关心的消息,具有一定的时效性。 以我们的系统经验来说,我们的离线消息默认只保存最近七天的消息。...6.2 离线消息存储模式——“扩散写” 离线消息的存储模式我们用的是扩散写。...7、IM客户端的拉取消息逻辑 7.1 离线消息拉取逻辑 对于IM客户端而言,离线消息的获取针对的是自己的整个离线消息,包括所有的会话(直白了说,就是上线时拉取此次离线过程中的所有未收取的离线消息)。

1.7K30

ReactPortals传送

ReactPortals传送门 React Portals提供了一种将子节点渲染到父组件以外的DOM节点的解决方案,即允许将JSX作为children渲染至DOM的不同部分,最常见用例是子组件需要从视觉上脱离父容器... React Portals可以翻译为传送门,从字面意思上就可以理解为我们可以通过这个方法将我们的React组件传送到任意指定的位置,可以将组件的输出渲染到DOM树中的任意位置,而不仅仅是组件所在的...MouseEnter事件 即使React Portals可以将组件传送到任意的DOM节点中,但是其行为和普通的React组件一样,其并不会脱离原本的React组件树,这其实是一件非常有意思的事情,因为这样会看起来..., document.body )} ); 单纯从代码上来看,这就是一个很简单的嵌套结构,而因为传送门...结构需要挂在最外层而不能直接嵌套地放在DOM结构中,当然如果能够保证不会出现相关问题,滚动容器不是body的情况且需要position absolute的情况下,可以通过getContainer传入DOM节点来制定传送的位置

16150

客服系统-客服离线后状态展示-以及收取消息通知

唯一客服离线有两种形式: 客服关闭所有后台页面,websocket断线,现在是离线状态 客服点击后台左上角头像,选择离线状态 离线后的访客新消息通知 下面两种是依托微信的消息提醒功能,比较好用、及时稳定...后台扫码关注我的公众号,可以收取访客消息提醒,点击提醒模板就能进入客服端h5,直接回复访客 独立部署的客户,可以配置自己的公众号服务号,实现同样的功能 如果有企业微信群,也可以设置推送到企业微信内部群中...,可以点击推送的消息,前往h5进行回复。...状态展示 客服离线后,聊天页面上会展示"红点",以及一句提示“客服全部离线,您可能不能及时得到回复” 开启知识库AI自动回复后,状态会一直为在线状态 多子账号的情况 指定的客服账号离线后,会在其他在线状态的子账号之间进行分配...,所有账号全部离线的情况下,会分配给主账号

18930

DNS域传送漏洞(一)

2)使用Nslookup命令探测DNS域传送漏洞 3)使用nmap扫描DNS域传送漏洞 4)使用dig命令检测 5)使用python + Dig批量扫描漏洞主机 6)使用python实现AXFR查询...在主备服务器之间同步数据库,需要使用“DNS域传送”。域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。 若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录。...仅使用该命令,就可完成DNS域传送的测试。在windows命令提示符中输入“nslookup ?”,得到如下简略的用法说明: d:\nslookup ?...笔者继续介绍在交互式shell中发现一个DNS服务器的域传送漏洞的过程: D:\>nslookup 默认服务器: public1.114dns.com Address: 114.114.114.114...如果这不正确, 请检查 IP 地址 202.112.7.13 的 DNS 服务器上 pku.edu.cn 的 区域传送安全设置。 以上是在交互式shell中测试DNS服务器是否存在域传送漏洞。

1.8K20

IM开发干货分享:如何优雅的实现大量离线消息的可靠投递

5.1 离线消息实现消息必达的流程 自然而然地会想到这么做——即由服务端为每个人保存一个“离线消息列表”。...5.2 海啸般的离线消息 5.2.1)和平时期: 重构后的IM上线,内部测试及在公网运行,离线消息的工作一直很正常。...8、离线消息是否就彻底废弃了? 有若干情况,仍然需要保留离线消息,以确保消息送达。 比如以下情形: 1)别人向我发送离线文件:这种情况下不能依赖同步消息来获取。...因为不以离线消息通知的话,用户在没有拉取到对应的同步消息前,是不知道有离线文件的; 2)撤回消息:即使接收者不拉取同步,仍然要保证在上线后其数据在第一时间被撤回。...相当于维护了一个在线消息离线队列。

1.4K40
领券