首页
学习
活动
专区
工具
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了,下次登录时会拉取到重复的离线消息么?

74821

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

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

1.7K30

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

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

18230

Java消息队列--JMS概述

1、什么是JMS  JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息...Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持(百度百科给出的概述)。...c、特点: 每个消息只要一个消费者 发送者和接收者在时间上是没有时间的约束,也就是说发送者在发送完消息之后,不管接收者有没有接受消息,都不会影响发送方发送消息消息队列中。...Topic主要用于保存和传递消息,且会一直保存消息直到消息被传递给客户端。       ...这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。 4、JMS接收消息     在JMS中,消息的产生和消息是异步的。对于消费来说,JMS的消息者可以通过两种方式来消费消息

1.7K60

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

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

1.4K40

Rainbond-离线环境下的JAVA源码构建

- 应用运行时:应用运行时是指服务运行所依赖的环境,比如对于Java应用而言,运行时就是环境中安装的 Jdk。对于用户而言,离线环境如何配置好应用运行时是离线源码构建最大的挑战。...在明确了上述难点后,接下来的文章,会以Java应用构建为例,指引用户一步步攻克这些难关,最终达成离线源码构建的目标。...- 已有私服的对接 - 搭建本地仓库,并导入jar包 离线配置应用运行时 本节提供一个在应用中离线安装运行时(Jdk)的方案,这个方案会运行起一个私服仓库服务,这个私服仓库可以负责安装java运行所需要的...有网环境下载离线资源镜像 docker pull rainbond/buildpack:java-v5.1.5 docker save rainbond/buildpack:java-v5.1.5 >...至此,离线环境下的Java源码构建环境就配置完成了。

74910

java google 离线地图开发_如何发布google离线地图及二次开发API

2.实现 第一步:下载安装离线地图开发环境 下载安装好之后,启动软件,如下图所示: ① 如果你的电脑连接到网络,这里可以直接点击【进入】;如果未能链接网络,请插上离线地图加密锁点击【进入】。...② 这里有离线地图二次开发的相关说明以及帮助信息。...点击【进入】后,如下图: ①:添加离线地图–在没有网络的情况下,需要先把地图下载到本地(如下下载离线地图); ②:添加本地数据–将你自己的本地数据添加到地图上,并且展示在地图上(如何添加数据到地图服务上...) ③:【预设地图】系统默认提供的地图;【管理地图】用户自己建立的离线地图;【管理数据】用户上传的本地数据,用于展示在地图上; ④:技术支持,用户有任何的问题可以直接点击QQ离线,或者拨打400电话 400...; ②:基于WEB的离线地图开发,加载地图代码HTML ③:离线地图开发,需要用到的本地【KEY】 ④: 因为离线地图可以有多个图层每个图层都有对应的ID 如下图,二次开发代码中加载地图,用到【key】

1.4K20

Java消息队列-Spring整合ActiveMq

1、概述 ----   首先和大家一起回顾一下Java 消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了: 消息服务:一个中间件,用于解决两个活多个程序之间的耦合,底层由Java...优势:异步、可靠 消息模型:点对点,发布/订阅 JMS中的对象 然后在另一篇博客《Java消息队列-ActiveMq实战》中,和大家一起从0到1的开启了一个ActiveMq 的项目,在项目开发的过程中...语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。..." xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns...不能手动去获取消息,那么我们就可以选择使用一个监听器来监听是否有消息到达,这样子可以很快的完成对消息的处理。

2.6K60

离线 Gmail

Offline Gmail 离线版 Gmail 是怎么工作和在离线的时候具有那些功能?...当启用离线版 Gmail 之后,Gmail 使用 Gears 把邮件下载到本地缓存,然后只要再次连上了网络,本地缓存就会和 Gmail 服务器同步,如果网络断了,Gmail 会自动切换到离线模式,使用已经缓存在电脑硬盘上的数据进行工作...在离线模式下,我们可以阅读邮件,给邮件加星或者标签,和其他你在线阅读邮件做的事情。在离线模式下发送的邮件都会放到 Outlook 中,并且会在下次 Gmail 检测到网络的时候自动发送。...但是目前离线版 Gmail 还有一些问题:如不能在离线模式下给邮件添加附件,搜索的结果受限于本地缓存等。...虽然存在着这些小问题,但是离线 Gmail 给我的体验是冲击性的,09年云计算会走向成熟,离线 Gmail 就是一个良好的开端,它通过 Google Gears 解决了网络对云计算的影响。

1.4K10

离线存储

什么是离线缓存 离线缓存,就是将指定的网页文件(例如css、js)保存到本地,当用户没有网络时,依旧可以通过浏览器使用这些文件。...为何要用离线缓存 从网站所有者的角度来说,增加离线缓存功能,能够让用户更好的使用网站。 离线缓存的设置步骤 1 配置manifest文件 2 通过JS进行缓存的控制 manifest文件的配置 1....添加manifest属性 将需要离线缓存的文件罗列下来,存储于后缀名为manifest的文件当中, 在HTML文件中引入manifest文件。.../images/logo.jpg FALLBACK 离线缓存工作流程图 ? 使用JavaScript控制缓存 缓存的各类属性和事件,均绑定在“applicationCache”上。 1....0代表未缓存,通常是这些页面没有运用离线缓存技术,就是这个状态。 1代表空闲,当缓存是最新的时候为1,不需要做什么操作。 2代表检查中,即浏览器在检查manifest文件是否为最新。

2.3K60
领券