CN112350921A - 消息处理方法、终端及存储介质 - Google Patents
消息处理方法、终端及存储介质 Download PDFInfo
- Publication number
- CN112350921A CN112350921A CN202011058700.8A CN202011058700A CN112350921A CN 112350921 A CN112350921 A CN 112350921A CN 202011058700 A CN202011058700 A CN 202011058700A CN 112350921 A CN112350921 A CN 112350921A
- Authority
- CN
- China
- Prior art keywords
- message
- cluster
- user terminal
- terminal
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Abstract
本申请公开了一种消息处理方法、终端及存储介质。该消息处理方法包括接收管理终端发送的第一指令;响应于所述第一指令,读取第一集群的第一消息的同时,读取第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。本方案实现了对两个集群进行双写双消费,以此来保证当某个集群不可用或消息写入发生网络抖动时,业务不会丢失消息,同时还对消息排重,确保业务最终对同一条消息只消费一次。
Description
技术领域
本申请涉及消息处理领域,具体而言,涉及一种消息处理方法、终端及存储介质。
背景技术
在通信业务中,有些业务强依赖于kafka消息,且对于有些敏感的业务,其不允许经过kafka的消息因任何意料之外的原因而导致消息丢失。当前现有的解决方案为,当因为某些不可预料的原因导致集群不可用时,kafka的维护技术人员对症下药,如kafka磁盘空间不足,则去清理磁盘,如kafka访问IP及端口被安全组禁用而无法写入消息时联系安全组来开放权限。该方案存在的问题是,有时kafka维护人员并不一定能保证百分百及时处理问题,这样对于一些敏感的业务,kafka丢失消息是不可接受的。
发明内容
为了解决上述问题,本申请实施例提供了一种消息处理方法、终端及存储介质。
第一方面,本申请实施例提供了一种消息处理方法,所述方法包括:
接收管理终端发送的第一指令;
响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
可选地,所述响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息之后,还包括:
接收缓存终端发送的第二指令;
响应于所述第二指令,删除目标消息;所述目标消息为与所述缓存终端的历史监听记录中的历史消息重复的消息。
可选地,所述监听历史记录包含所述历史消息的识别信息,所述目标消息的识别信息与所述历史消息的识别信息相同。
第二方面,本申请提供了一种消息处理方法,所述方法包括:
监听用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从第一集群中读取,所述第二消息由所述用户终端从第二集群中读取,所述消息在被所述服务器写入所述第一集群的同时被写入所述第二集群;
根据历史监听记录确定所述消息是否与历史消息重复;
在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
可选地,所述历史监听记录包含所述历史消息的识别信息;
所述根据历史监听记录确定所述消息是否与历史消息重复,包括:
获取所述消息的识别信息;
从所述历史监听记录中查找是否存在识别信息与所述消息的识别信息相同的所述历史消息;
所述在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,包括:
在所述消息的识别信息与所述历史消息的识别信息重复的情况下,向所述用户终端发送第二指令。
第三方面,本申请实施例提供了一种用户终端,所述终端包括:
接收模块,用于接收所述管理终端发送的第一指令;
读取模块,用于响应于所述第一指令,读取所述第一集群的第一消息的同时,读取所述第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
第四方面,本申请实施例提供了一种用户终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。
第五方面,本申请实施例提供了一种缓存终端,所述缓存终端包括:
监听模块,用于监听所述用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从所述第一集群中读取,所述第二消息由所述用户终端从所述第二集群中读取,所述消息在被所述服务器写入所述第一集群的同时被写入所述第二集群;
判断模块,用于根据历史监听记录确定所述消息是否与历史消息重复;
发送模块,用于在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
第六方面,本申请实施例提供了一种缓存终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面或第二方面的任意一种可能的实现方式提供的方法的步骤。
第七方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法。
第八方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第二方面或第二方面的任意一种可能的实现方式提供的方法。
在本申请一个或多个实施例中,设立有第一集群与第二集群两个集群,第二集群冗余写入有已写入第一集群的消息。用户终端在接收到管理终端发送的第一指令后,读取第一集群与第二集群中的消息。由于第二集群中冗余写入有已经写入第一集群中的消息,当用户终端同时读取第一集群与第二集群的消息时,用户终端可能会对同一份消息多消费了一次。故设置由redis对用户终端读取的消息进行幂等排重,将多余的消息删除。通过上述过程实现对两个集群进行双写双消费,并对消费的消息进行幂等排重来保证某个集群临时不可用时,kafka消息传输业务仍不会丢失消息。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种消息处理系统的架构示意图;
图2为本申请实施例提供的一种消息处理方法的流程示意图;
图3为本申请实施例提供的又一种消息处理方法的流程示意图;
图4为本申请实施例提供的一种用户终端的结构示意图;
图5为本申请实施例提供的一种缓存终端的结构示意图;
图6为本申请实施例提供的又一种用户终端的结构示意图;
图7为本申请实施例提供的又一种缓存终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
需要说明的是,在分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,中间件测试组对常见的三类消息产品为kafka、RabbitMQ、RocketMQ。其中,kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目。kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。RocketMQ是阿里开源的消息中间件,它是纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。RocketMQ思路起源于Kafka,但并不是Kafka的一个Copy,它对消息的可靠传输及事务性做了优化,目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog分发等场景。
在本申请实施例中,将以kafka为例对本申请方案进行说明。
还需要说明的是,kafka是一款基于发布与订阅的消息系统。它一般被称为“分布式提交日志”或者“分布式流平台”。其特点为能够同时为分布和订阅提供高吞吐量。kafka每秒可以生产约25万条消息(50MB),每秒处理55万条消息(110MB)。而kafka一般由三部分组成:kafka生产者(producer,即消息的生成者)、kafka集群、kafka消费者(consumer,即消息的消费者),kafka生产者负责将消息写入kafka集群中,kafka集群中含有一个或多个broker(即缓存代理,kafka集群中的一台或多台服务器统称borker),kafka消费者负责读取kafka集群中写入的消息并对消息进行消费。
请参见图1,图1是本申请实施例提供的一种消息处理系统的架构示意图。
如图1所示,该消息处理系统可以包括管理终端101、服务器102、第一集群103、第二集群104、用户终端105以及缓存终端106。第一集群103与第二集群104可以设置在同一地理位置的机房中,也可以设置在处于不同地理位置的两个机房之中。
一个集群可以有多个kafka服务器,一个kafka服务器可以看做是一个broker,即第一集群103与第二集群104可以是集成了多个kafka服务器的服务器组。
服务器102为消息生产者,是向集群中的broker发消息的kafka生产者终端,具体可以是搭载有kafka生产者客户端的服务器或用户终端。
用户终端105为消息消费者,是从集群中的broker取消息的kafka消费者终端,具体可以是搭载有kafka消费者客户端的服务器或用户终端。
管理终端101负责对整个kafka消息传输过程进行管控,其可以通过通信链路对服务器102、第一集群103、第二集群104、用户终端105分别发送指令,进而实现诸如对服务器102发送消息对象、用户终端105订阅读取消息对象的更改,管理终端101具体可以是搭载有kafka管理系统软件的服务器终端。
需要说明的是,服务器102与用户终端105均可以设置有一个或多个,图1所示的消息处理系统中的服务器102与用户终端105的数目仅作为实例,在具体实现中,该消息处理系统可以包含任意数目的服务器102与用户终端105,本申请对此不作限定。
缓存终端106为redis,redis是一个高性能的key-value数据库,其用来对用户终端105读取的消息进行监听,查找出用户终端105重复读取的消息,具体可以是搭载有redis系统的服务器。
可能地,redis可以是单独架设的一个服务器。
可能地,redis可以是集成到其他服务器(例如,用户终端105等)中以减少服务器资源的占用。
示例性的,当老师想要向班级群中的学生发红包时,老师用来发送红包的终端可以是服务器102,其生产的红包信息在写入设置有红包主题的第一集群103的同时,还会冗余写入设置有红包主题的第二集群104中。学生用来接收红包的终端可以是用户终端105,用户终端105将不断的读取第一集群103与第二集群104的消息而发现老师发送红包的新消息并获取该消息,完成红包领取。缓存终端106在该过程中一直对用户终端105读取的消息进行监听,当用户终端105已经从第一集群103中读取到红包信息的情况下,再次从第二集群104中读取到该红包信息,缓存终端106会向用户终端105发送指令使其删除重复读取的该红包信息,保证红包不会重复领取。
接下来结合图1示出的消息处理系统介绍本申请实施例提供的消息处理方法。
参见图2,图2是本申请实施例提供的一种消息处理方法的流程示意图。在本申请实施例中,所述方法可以应用于图1所示的消息处理系统,所述方法包括:
S201、用户终端接收所述管理终端发送的第一指令。
在本申请实施例中,管理终端会向用户终端发送第一指令,用户终端在接收到管理终端发送的第一指令后,会根据第一指令的指示进行对应的动作。
S202、用户终端响应于所述第一指令,读取所述第一集群的第一消息,并读取所述第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
在本申请实施例中,用户终端接收到第一指令后,响应于第一指令,其会同时从第一集群与第二集群中读取消息。第一集群与第二集群中的消息均是由服务器写入。服务器在将一条消息写入第一集群中的同时,会将该消息冗余写入第二集群中。
由于第二集群中冗余写入有已被写入第一集群中的消息,用户终端从第一集群读取的第一消息和其从第二集群读取的第二消息可以是同一个消息,也可以不是同一个消息。
示例性的,当服务器接收到管理终端发送的指令,开始将写入第一集群中的消息冗余写入第二集群前,第一集群与第二集群中均没有被写入任何消息。那么当服务器开始同时写入消息后,被写入的同一条消息在第一集群与第二集群中的排序将是相同的,因此当用户终端按照集群中序列号的顺序依次读取消息时,从第一集群读取到的第一消息与从第二集群中读取到的第二消息可能是同一条消息。同理的,若服务器开始将写入第一集群中的消息冗余写入第二集群前,第一集群中已经写入有若干消息,第二集群中未被写入任何消息,那么当服务器开始同时写入后,被写入的同一条消息在第一集群与第二集群中的排序是不同的,故而用户终端同一时间段从第一集群读取的第一消息与从第二集群读取的第二消息为不同的消息。
S203、缓存终端监听所述用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从所述第一集群中读取,所述第二消息由所述用户终端从所述第二集群中读取,所述消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
在本申请实施例中,缓存终端会对用户终端从集群中读取的消息进行监听,进而判断用户终端是否有读取到重复的消息。
S204、缓存终端根据历史监听记录确定所述消息是否与历史消息重复。
在本申请实施例中,缓存终端从用户终端监听到的消息都会记录在历史监听记录中,缓存终端会将监听到新消息与历史监听记录中的历史消息进行比对,确定监听到的新消息是否与历史消息重复。
S205、缓存终端在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
在本申请实施例中,当缓存终端确定监听到的新消息与历史消息重复时,缓存终端即认为该条消息已经被用户终端消费过,缓存终端将会向用户终端发送第二指令。用户终端在接收到第二指令后,将会删除该条消息以保证不会重复消费已经消费过的消息。
通过上述步骤,用户终端在接收并响应管理终端发送的第一指令后,读取第一集群与第二集群的消息。由于第一集群与第二集群中的消息存在冗余,缓存终端将监听用户终端的消息,并根据历史监听记录确定与历史消息重复的消息,再向用户终端发送第二指令使用户终端删除重复的消息。实现了对两个集群进行双写双消费,以此来保证当某个集群不可用或消息写入发生网络抖动时,业务不会丢失消息,同时还接入redis对消息排重,确保业务最终对同一条消息只消费一次。
参见图3,图3是本申请实施例提供的又一种消息处理方法的流程示意图。如图3所示,在本申请实施例中,所述方法可以应用于图1所示的消息处理系统,所述方法包括:
S301、用户终端接收所述管理终端发送的第一指令。
具体过程如步骤S201所示,在此不再赘述。
S302、用户终端响应于所述第一指令,读取所述第一集群的第一消息的同时,读取所述第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
具体过程如S202所示,在此不再赘述。
S303、缓存终端监听所述用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从所述第一集群中读取,所述第二消息由所述用户终端从所述第二集群中读取,所述消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
具体过程如S203所示,在此不再赘述。
S304、缓存终端获取所述消息的识别信息。
在本申请实施例中,每一条消息都有其对应的识别信息,识别信息可以是独立且唯一的消息ID,在确定监听到的新消息是否为重复消息时,缓存终端首先会获取该消息的识别信息。
S305、缓存终端从所述历史监听记录中查找是否存在识别信息与所述消息的识别信息相同的所述历史消息。
在本申请实施例中,缓存终端的历史监听记录中存储有此前监听到的历史消息,缓存终端将根据识别信息在历史监听记录中查找是否存在与监听到的新消息的识别信息相同的历史消息。若查找到识别信息相同的历史信息,则说明监听到的新消息已经被消费过。
S306、在所述消息的识别信息与所述历史消息的识别信息重复的情况下,缓存终端向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
在本申请实施例中,缓存终端在确定监听到的新消息的识别信息与历史信息的识别信息重复时,会向用户终端发送第二指令来指示用户终端删除该信息。
S307、用户终端接收所述缓存终端发送的第二指令;响应于所述第二指令,删除目标消息;所述目标消息为与所述缓存终端的历史监听记录中的历史消息重复的消息。
在本申请实施例中,用户终端在接收到缓存终端发送来的第二指令后,将会删除与第二指令中的识别信息相对应的目标消息,保证业务最终对同一条消息只消费一次。
通过上述步骤,用户终端在接收并响应管理终端发送的第一指令后,读取第一集群与第二集群的消息。由于第一集群与第二集群中的消息存在冗余,缓存终端将监听用户终端的消息,根据历史监听记录查找识别信息与历史消息的识别信息相同的消息,并将识别信息相同的消息作为重复的消息,再向用户终端发送第二指令使用户终端删除重复的消息。实现了对两个集群进行双写双消费,以此来保证当某个集群不可用或消息写入发生网络抖动时,业务不会丢失消息,同时还接入redis对消息排重,确保业务最终对同一条消息只消费一次。
可选的,当缓存终端在预设的时间(例如两小时)内没有监听到与历史消息重复的新消息,则缓存终端会生成警示信息发送至预设管理人员的终端。由于两个集群中被写入的消息是相同的,缓存终端一定会不断的监听到与历史消息重复的新消息,若缓存终端在很长一段时间内都没有监听到重复的新消息,则有可能是某一个集群发生了故障而无法读取或写入消息。因此缓存终端会生成警示信息发送至预先存储设置的管理人员的终端,提醒管理人员前往查看是否存在故障。警示信息可以是包含“集群可能存在故障,请前往检查”的一段文字或语音。
下面将结合附图4,对本申请实施例提供的一种用户终端进行详细介绍。需要说明的是,附图4所示的用户终端,用于执行本申请图2-图3所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图2-图3所示的实施例。
请参见图4,图4是本申请实施例提供的一种用户终端的结构示意图,如图4所示,所述一种用户终端应用于图1所示的系统,所述终端包括:
接收模块401,用于接收所述管理终端发送的第一指令。
读取模块402,用于响应于所述第一指令,读取所述第一集群的第一消息的同时,读取所述第二集群的第二消息;所述第一消息和所述第二消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
在一种可实施方式中,所述接收模块401还用于:
接收所述缓存终端发送的第二指令;
响应于所述第二指令,删除目标消息;所述目标消息为与所述缓存终端的历史监听记录中的历史消息重复的消息。
在一种可实施方式中,监听历史记录包含所述历史消息的识别信息,所述目标消息的识别信息与所述历史消息的识别信息相同。
本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、集成电路(Integrated Circuit,IC)等。
本申请实施例的各处理单元和/或模块,可通过实现本申请实施例所述的功能的模拟电路而实现,也可以通过执行本申请实施例所述的功能的软件而实现。
参见图5,其示出了本申请实施例所涉及的一种用户终端的结构示意图,该用户终端可以用于实施图2-图3所示实施例中的方法。如图5所示,用户终端500可以包括:至少一个中央处理器501,至少一个网络接口504,用户接口503,存储器505,至少一个通信总线502。
其中,通信总线502用于实现这些组件之间的连接通信。
其中,用户接口503可以包括显示屏(Display)、摄像头(Camera),可选用户接口503还可以包括标准的有线接口、无线接口。
其中,网络接口504可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,中央处理器501可以包括一个或者多个处理核心。中央处理器501利用各种接口和线路连接整个终端500内的各个部分,通过运行或执行存储在存储器505内的指令、程序、代码集或指令集,以及调用存储在存储器505内的数据,执行终端500的各种功能和处理数据。可选的,中央处理器501可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。中央处理器501可集成中央中央处理器(Central Processing Unit,CPU)、图像中央处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器501中,单独通过一块芯片进行实现。
其中,存储器505可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器505包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器505可用于存储指令、程序、代码、代码集或指令集。存储器505可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器505可选的还可以是至少一个位于远离前述中央处理器501的存储装置。如图5所示,作为一种计算机存储介质的存储器505中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
在图5所示的用户终端500中,用户接口503主要用于为用户提供输入的接口,获取用户输入的数据;而处理器501可以用于调用存储器505中存储的消息处理应用程序,并具体执行以下操作:
接收管理终端发送的第一指令;
响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息;所述第一消息和所述第二消息在被服务器写入所述第一集群的同时被写入所述第二集群。
在一种可实施方式中,所述响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息之后,还包括:
接收缓存终端发送的第二指令;
响应于所述第二指令,删除目标消息;所述目标消息为与所述缓存终端的历史监听记录中的历史消息重复的消息。
在一种可实施方式中,监听历史记录包含所述历史消息的识别信息,所述目标消息的识别信息与所述历史消息的识别信息相同。
下面将结合附图6,对本申请实施例提供的缓存终端进行详细介绍。需要说明的是,附图6所示的缓存终端,用于执行本申请图2-图3所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图2-图3所示的实施例。
请参见图6,图6是本申请实施例提供的一种缓存终端的结构示意图,如图6所示,所述缓存终端应用于图1所示的系统,所述终端包括:
监听模块601,用于监听所述用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从所述第一集群中读取,所述第二消息由所述用户终端从所述第二集群中读取,所述消息在被所述服务器写入所述第一集群的同时被写入所述第二集群。
判断模块602,用于根据历史监听记录确定所述消息是否与历史消息重复。
发送模块603,用于在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
在一种可实施方式中,所述判断模块602具体包括:
获取单元,用于获取所述消息的识别信息。
查找单元,用于从所述历史监听记录中查找是否存在识别信息与所述消息的识别信息相同的所述历史消息。
所述发送模块603具体包括:
发送单元,用于在所述消息的识别信息与所述历史消息的识别信息重复的情况下,向所述用户终端发送第二指令。
参见图7,其示出了本申请实施例所涉及的一种缓存终端的结构示意图,该缓存终端可以用于实施图2-图3所示实施例中的方法。如图7所示,缓存终端700可以包括:至少一个中央处理器701,至少一个网络接口704,用户接口703,存储器705,至少一个通信总线702。
其中,通信总线702用于实现这些组件之间的连接通信。
其中,用户接口703可以包括显示屏(Display)、摄像头(Camera),可选用户接口703还可以包括标准的有线接口、无线接口。
其中,网络接口704可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,中央处理器701可以包括一个或者多个处理核心。中央处理器701利用各种接口和线路连接整个终端700内的各个部分,通过运行或执行存储在存储器705内的指令、程序、代码集或指令集,以及调用存储在存储器705内的数据,执行终端700的各种功能和处理数据。可选的,中央处理器701可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。中央处理器701可集成中央中央处理器(Central Processing Unit,CPU)、图像中央处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器701中,单独通过一块芯片进行实现。
其中,存储器705可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器705包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器705可用于存储指令、程序、代码、代码集或指令集。存储器705可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器705可选的还可以是至少一个位于远离前述中央处理器701的存储装置。如图7所示,作为一种计算机存储介质的存储器705中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
在图7所示的用户终端700中,用户接口703主要用于为用户提供输入的接口,获取用户输入的数据;而处理器701可以用于调用存储器705中存储的消息处理应用程序,并具体执行以下操作:
监听用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从第一集群中读取,所述第二消息由所述用户终端从第二集群中读取,所述消息在被服务器写入所述第一集群的同时被写入所述第二集群;
根据历史监听记录确定所述消息是否与历史消息重复;
在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
在一种可实施方式中,所述历史监听记录包含所述历史消息的识别信息;
所述根据历史监听记录确定所述消息是否与历史消息重复,包括:
获取所述消息的识别信息;
从所述历史监听记录中查找是否存在识别信息与所述消息的识别信息相同的所述历史消息;
所述在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,包括:
在所述消息的识别信息与所述历史消息的识别信息重复的情况下,向所述用户终端发送第二指令。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种消息处理方法,其特征在于,所述方法包括:
接收管理终端发送的第一指令;
响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息;所述第一消息和所述第二消息在被服务器写入所述第一集群的同时被写入所述第二集群。
2.根据权利要求1所述的方法,其特征在于,所述响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息之后,还包括:
接收缓存终端发送的第二指令;
响应于所述第二指令,删除目标消息;所述目标消息为与所述缓存终端的历史监听记录中的历史消息重复的消息。
3.根据权利要求2所述的方法,其特征在于,所述监听历史记录包含所述历史消息的识别信息,所述目标消息的识别信息与所述历史消息的识别信息相同。
4.一种消息处理方法,其特征在于,所述方法包括:
监听用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从第一集群中读取,所述第二消息由所述用户终端从第二集群中读取,所述消息在被服务器写入所述第一集群的同时被写入所述第二集群;
根据历史监听记录确定所述消息是否与历史消息重复;
在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
5.根据权利要求4所述的方法,其特征在于,所述历史监听记录包含所述历史消息的识别信息;
所述根据历史监听记录确定所述消息是否与历史消息重复,包括:
获取所述消息的识别信息;
从所述历史监听记录中查找是否存在识别信息与所述消息的识别信息相同的所述历史消息;
所述在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,包括:
在所述消息的识别信息与所述历史消息的识别信息重复的情况下,向所述用户终端发送第二指令。
6.一种用户终端,其特征在于,所述终端包括:
接收模块,用于接收管理终端发送的第一指令;
读取模块,用于响应于所述第一指令,读取第一集群的第一消息,并读取第二集群的第二消息;所述第一消息和所述第二消息在被服务器写入所述第一集群的同时被写入所述第二集群。
7.一种用户终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3任一项所述方法的步骤。
8.一种缓存终端,其特征在于,所述缓存终端包括:
监听模块,用于监听用户终端接收的消息;所述消息包含第一消息与第二消息中至少一条,所述第一消息由所述用户终端从第一集群中读取,所述第二消息由所述用户终端从第二集群中读取,所述消息在被服务器写入所述第一集群的同时被写入所述第二集群;
判断模块,用于根据历史监听记录确定所述消息是否与历史消息重复;
发送模块,用于在所述消息与所述历史消息重复的情况下,向所述用户终端发送第二指令,所述第二指令用于指示所述用户终端删除所述消息。
9.一种缓存终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求4-5任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011058700.8A CN112350921A (zh) | 2020-09-30 | 2020-09-30 | 消息处理方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011058700.8A CN112350921A (zh) | 2020-09-30 | 2020-09-30 | 消息处理方法、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112350921A true CN112350921A (zh) | 2021-02-09 |
Family
ID=74361420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011058700.8A Pending CN112350921A (zh) | 2020-09-30 | 2020-09-30 | 消息处理方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112350921A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590602A (zh) * | 2021-07-30 | 2021-11-02 | 上海微盟企业发展有限公司 | 一种消息去重方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082280A1 (en) * | 2012-09-18 | 2014-03-20 | Fujitsu Limited | Storage apparatus and control method |
CN107436818A (zh) * | 2017-07-31 | 2017-12-05 | 北京微影时代科技有限公司 | 一种红包信息获取并发送的方法和装置 |
CN107943840A (zh) * | 2017-10-30 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 数据处理方法、系统和计算机可读存储介质 |
CN110309130A (zh) * | 2018-03-21 | 2019-10-08 | 中国人民财产保险股份有限公司 | 一种用于主机性能监控的方法及装置 |
CN110502559A (zh) * | 2019-07-25 | 2019-11-26 | 浙江公共安全技术研究院有限公司 | 一种可信安全跨域数据交换的数据总线及传输方法 |
CN110808874A (zh) * | 2019-10-25 | 2020-02-18 | 北京大米科技有限公司 | 一种跨机房服务监控方法、装置、存储介质及服务器 |
CN110875885A (zh) * | 2018-08-31 | 2020-03-10 | 武汉斗鱼网络科技有限公司 | 消息处理方法、服务器、终端、系统及存储介质 |
CN111061719A (zh) * | 2019-12-26 | 2020-04-24 | 广州市百果园信息技术有限公司 | 数据收集方法、装置、设备和存储介质 |
-
2020
- 2020-09-30 CN CN202011058700.8A patent/CN112350921A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082280A1 (en) * | 2012-09-18 | 2014-03-20 | Fujitsu Limited | Storage apparatus and control method |
CN107436818A (zh) * | 2017-07-31 | 2017-12-05 | 北京微影时代科技有限公司 | 一种红包信息获取并发送的方法和装置 |
CN107943840A (zh) * | 2017-10-30 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 数据处理方法、系统和计算机可读存储介质 |
CN110309130A (zh) * | 2018-03-21 | 2019-10-08 | 中国人民财产保险股份有限公司 | 一种用于主机性能监控的方法及装置 |
CN110875885A (zh) * | 2018-08-31 | 2020-03-10 | 武汉斗鱼网络科技有限公司 | 消息处理方法、服务器、终端、系统及存储介质 |
CN110502559A (zh) * | 2019-07-25 | 2019-11-26 | 浙江公共安全技术研究院有限公司 | 一种可信安全跨域数据交换的数据总线及传输方法 |
CN110808874A (zh) * | 2019-10-25 | 2020-02-18 | 北京大米科技有限公司 | 一种跨机房服务监控方法、装置、存储介质及服务器 |
CN111061719A (zh) * | 2019-12-26 | 2020-04-24 | 广州市百果园信息技术有限公司 | 数据收集方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
XU-CHAO CHAI: "Research on a Distributed Processing Model Based on Kafka for Large-Scale Seismic Waveform Data", 《IEEE XPLORE》 * |
李志然: "云存储中集群重复数据删除系统的研究与设计", 《CNKI中国硕士论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590602A (zh) * | 2021-07-30 | 2021-11-02 | 上海微盟企业发展有限公司 | 一种消息去重方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693746B2 (en) | Systems and methods for enabling a highly available managed failover service | |
US10491560B2 (en) | Message delivery in messaging networks | |
CN103595790B (zh) | 设备远程访问的方法、瘦客户端和虚拟机 | |
CN114008994B (zh) | 一种代理服务器接收从客户端到网络服务器的请求和与所述请求相对应的从所述网络服务器到所述客户端的响应的方法及系统 | |
US11366728B2 (en) | Systems and methods for enabling a highly available managed failover service | |
US9692846B2 (en) | System, device and method for providing push service using feedback message | |
CN112291082B (zh) | 机房容灾处理方法、终端及存储介质 | |
US11341005B2 (en) | Systems and methods for enabling a highly available managed failover service | |
CN112636992B (zh) | 一种动态路由方法、装置、设备及存储介质 | |
CN103607428A (zh) | 一种访问共享内存的方法和装置 | |
CN111147274B (zh) | 为集群解决方案创建高度可用的仲裁集的系统和方法 | |
CN110647460B (zh) | 一种测试资源管理方法、装置和测试客户端 | |
CN103533087A (zh) | 一种云服务平台中间件及云上传方法 | |
CN115328752B (zh) | 一种用于Kubernetes控制面测试的集群模拟方法及系统 | |
CN112286723A (zh) | 机房容灾控制方法、终端及存储介质 | |
CN113794652A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112350921A (zh) | 消息处理方法、终端及存储介质 | |
CN111090818B (zh) | 资源管理方法、资源管理系统、服务器及计算机存储介质 | |
CN117061535A (zh) | 多活构架数据同步方法、装置、计算机设备和存储介质 | |
CN109445966B (zh) | 事件处理方法、装置、介质和计算设备 | |
JP5552154B2 (ja) | 高可用性環境においてサービスを維持するための方法、装置、およびコンピュータ・プログラム(高可用性環境においてサービスを維持するための方法) | |
CN109151016B (zh) | 流量转发方法和装置、服务系统、计算设备及存储介质 | |
US8671307B2 (en) | Task relay system, apparatus, and recording medium | |
CN112463514A (zh) | 分布式缓存集群的监测方法和装置 | |
CN114547678A (zh) | 风险控制方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210209 |
|
RJ01 | Rejection of invention patent application after publication |