CN110875885B - 消息处理方法、服务器、终端、系统及存储介质 - Google Patents

消息处理方法、服务器、终端、系统及存储介质 Download PDF

Info

Publication number
CN110875885B
CN110875885B CN201811016853.9A CN201811016853A CN110875885B CN 110875885 B CN110875885 B CN 110875885B CN 201811016853 A CN201811016853 A CN 201811016853A CN 110875885 B CN110875885 B CN 110875885B
Authority
CN
China
Prior art keywords
user behavior
behavior data
client
kafka cluster
sub
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.)
Active
Application number
CN201811016853.9A
Other languages
English (en)
Other versions
CN110875885A (zh
Inventor
肖源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201811016853.9A priority Critical patent/CN110875885B/zh
Publication of CN110875885A publication Critical patent/CN110875885A/zh
Application granted granted Critical
Publication of CN110875885B publication Critical patent/CN110875885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种消息处理方法,应用于通信技术领域,包括:服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。本发明实施例还公开了一种消息处理方法、服务器、终端、系统及存储介质,通过将消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力。

Description

消息处理方法、服务器、终端、系统及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种消息处理方法、服务器、终端、系统及存储介质。
背景技术
随着大数据时代到来,网络中每时每刻都在产生海量的行为交互信息,当突然发生巨额数据流量交互时,网络系统无法应对该巨额数据,可能会对其产生巨大冲击,从而造成系统瘫痪,无法正常访问。
现有技术中,采取控制客户端流量的方式,例如,客户端原本每发生一次用户行为都发送一次请求,但在晚8:00-11:30高峰时段,可降低发送频次,将用户行为缓存多条后,再压缩发送出去,以此通过控制客户端流量,来降低网络流量,减缓系统压力。但是,这种方法虽减缓了系统压力,同时也丢失了数据的时效性。
发明内容
本发明的主要目的在于提供一种消息处理方法、服务器、终端、系统及存储介质,实现在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
为实现上述目的,本发明实施例第一方面提供一种消息处理方法,应用于服务器,包括:
接收第一客户端发送的全量消息,所述全量消息包括所述第一客户端中的至少一种用户行为数据;
将所述全量消息写入总Kafka集群,所述总Kafka集群包括至少一个子Kafka集群;
对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群;
获取第二客户端发送的数据获取请求,读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至所述第二客户端。
本发明实施例第二方面提供一种消息处理方法,应用于第一客户端,包括:
发送全量消息给服务器,以使所述服务器将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,获取第二客户端发送的数据获取请求,读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至所述第二客户端,所述全量消息包括第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
本发明实施例第三方面提供一种消息处理方法,应用于第二客户端,包括:
发送数据获取请求给服务器,以使服务器读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至第二客户端,其中,所述服务器接收第一客户端发送的全量消息,将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,所述全量消息包括所述第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
本发明实施例第四方面提供一种服务器,包括:
接收模块,用于接收第一客户端发送的全量消息,所述全量消息包括所述第一客户端中的至少一种用户行为数据;
写入模块,用于将所述全量消息写入总Kafka集群,所述总Kafka集群包括至少一个子Kafka集群;
分类模块,用于对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群;
获取模块,用于获取第二客户端发送的数据获取请求;
读取模块,用于与所述数据获取请求对应的子Kafka集群中的用户行为数据;
发送模块,用于发送所述用户行为数据至所述第二客户端。
本发明实施例第五方面提供一种第一终端,包括:
发送模块,用于通过内置的客户端发送全量消息给服务器,以使所述服务器将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,获取第二客户端发送的数据获取请求,读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至所述第二客户端,所述全量消息包括第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
本发明实施例第六方面提供一种第二终端,包括:
发送模块,用于通过内置的客户端发送数据获取请求给服务器,以使所述服务器读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至第二客户端,其中,所述服务器接收第一客户端发送的全量消息,将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,所述全量消息包括所述第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
本发明实施例第七方面提供一种消息处理系统,包括本发明实施例第四方面提供的服务器、本发明实施例第五方面提供的第一终端和本发明实施例第六方面提供的第二终端。
本发明实施例第八方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的消息处理方法。
从上述本发明实施例可知,本发明提供的种消息处理方法、服务器、终端、系统及存储介质,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。通过在服务端将总Kafka集群中的全量消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的消息处理方法的消息流向示意图;
图2为本发明第一实施例提供的消息处理方法的流程示意图;
图3为本发明第二实施例提供的消息处理方法的流程示意图;
图4为本发明第三实施例提供的消息处理方法的结构示意图;
图5为本发明第四实施例提供的服务器的结构示意图;
图6为本发明第五实施例提供的第一终端的结构示意图;
图7为本发明第六实施例提供的第二终端的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为为本发明实施例提供的消息处理方法的消息流向示意图,第一客户端发送全量消息,该全量写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,第二客户端发送数据获取请求时,将与该数据获取请求对应的子Kafka集群中的用户行为数据发送至第二客户端。
请参阅图2,图2为本发明第一实施例提供的消息处理方法的流程示意图,应用于服务器,该方法包括:
S101、接收第一客户端发送的全量消息,该全量消息包括第一客户端中的至少一种用户行为数据;
具体的,全量消息是指所有消息,该消息可以是用户行为,用户行为具体可以是:当用户点击某一应用程序或网站时,由该应用程序或网站收集到的用户信息和/或点击信息等。例如,用户A使用直播应用程序观看直播频道B,当用户A点击进入直播频播B的时刻,直播应用程序会将用户A的相关信息和直播频道B的相关信息发送给服务器。
示例性的,用户行为(Action)具体可指用户行为编码(action_code)、行为发生的时间戳(dateline)、用户ID(uid)、用户使用的终端的设备号(did)、用户观看的房间号(room_id)和拓展字段(ext)等,代码定义如下所示,其中,具体字段类型和定义如表1所示:
Action={action_code,dateline,uid,did,room_id,ext}
表1
字段名 类型 含义
action_code String 行为编码
dateline Long 行为发生时间戳
uid Long 用户id
did String 设备号
room_id String 用户观看房间号
ext JSON 拓展字段
S102、将该全量消息写入总Kafka集群,总Kafka集群包括至少一个子Kafka集群;
Kafka是指一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据,例如,网页浏览、搜索、点击和其他用户行为等。通常将向Kafka集群发布消息的程序成为生产者,即本发明实施例中的第一客户端,将消费Kafka集群中的信息的程序称为消费者,即本发明的第二客户端。其中,消费是指获取信息。可理解的,只要具备向总Kafka集群发布消息的设备均可视为第一客户端,只要具备消费服务器子Kafka集群内的消息的设备均可视为第二客户端。
需要说明的是,为了保证不丢失由第一客户端发送的消息,将所有消息复制形成多个副本,存储于Kafka集群中。
S103、对全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群;
示例性的,主题为action_code,按照action_code将全量消息进行分类,由于一种action_code代表一种用户行为编码,例如,‘app_update_click’表示用户点击更新按钮的行为。
需要说明的是,若要进行水平扩展,即对多个用户行为分类,例如,当需要统计某一房间的用户行为数据量,此时就需要按照“room_id”为主题进行分类。
S104、获取第二客户端发送的数据获取请求,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。
如果第二客户端需要消费主题,服务器获取到第二客户端发送的数据获取请求时,即对该数据获取请求对应的主题内的用户行为数据进行统计。示例性的,可以直接从按“app_update_click”分发后的子Kafka集群中进行数据统计,而不需要从总Kafka集群中进行数据统计。避免总Kafka集群由于频繁且巨大的读写数据,造成负载过重,进而崩溃。按主题分发到子Kafka集群之后,总Kafka集群主要负责数据写入,各个子Kafka集群用于数据的读取,从而在不丢失数据时效性的同时,一定程度上减轻总Kafka集群的读写压力。
本发明实施例中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。通过在服务端将总Kafka集群中的全量消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
请参阅图3,图3为本发明第二实施例提供的消息处理方法的流程示意图,应用于第一客户端,该方法包括:
S201、发送全量消息给服务器,以使服务器将该全量消息写入总Kafka集群,并对全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,获取第二客户端发送的数据获取请求,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端,该全量消息包括第一客户端中的至少一种用户行为数据,该总Kafka集群包括至少一个子Kafka集群。
具体的,全量消息是指所有消息,该消息可以是用户行为。其中,可通过打点的方式来进行用户行为统计。本发明实施例中,示例性的,可通过采用OpenResty框架进行用户行为统计,由于打点不需要记录用户的状态,Nginx服务可随意进行水平拓展,所以,当在数据高峰期,可通过增加Nginx个数达到扩大统计用户行为的目的。
进一步地,用户行为统计完毕后,可通过lua脚本发送用户行为到总kafka集群。
其中,OpenResty,也称为ngx_openresty,是指一个将Nginx和Lua有机融合在一起的全功能的Web应用服务器,其内部集成由大量常用的第三方模块,以及他们的大多数依赖项,以用于便捷的搭建能够处理高超并发、扩展性极高的动态Web应用、Web服务和动态网关等。
Nginx是指一个高性能的Web服务器和反向代理服务器及电子邮件代理服务器,负载能力强。
本发明实施例中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。通过在服务端将总Kafka集群中的全量消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
请参阅图4,图4为本发明第三实施例提供的消息处理方法的流程示意图,应用于第二客户端,该方法包括:
S301、发送数据获取请求给服务器,以使服务器读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端,其中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,并对该全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,该全量消息包括第一客户端中的至少一种用户行为数据,该总Kafka集群包括至少一个子Kafka集群。
按照不同主题分类的子Kafka集群可以被相应的用户行为统计需求所消费。示例性的,主题为“app_update_click”的子kafka集群可以用Storm实时流处理系统来消费,Storm程序逻辑如下:
首先,用键值对Map<key,value>来记录每小时的更新量,键key为精确到小时的时间,值value为更新次数(即app_update_click记录的条数)。然后,按照行为发生时间戳dateline字段将每条更新记录分到相应的Map槽位中,每更新一条更新记录,Map中相应槽位的value值加1。最后,可通过相应接口实时查看每小时的更新量。
进一步地,若该主题还包括二级主题,即要进行纵向扩展,按照该二级主题分类,将按主题分类的子Kafka集群中的消息分别写入各二级子Kafka集群,得到该主题分类下的按该二级主题分类的各二级子Kafka集群。例如,统计各个省的应用程序更新量,就可以先对action_code=“app_update_click”为主题进行消息分类,分类到子kafka集群之后,再以“ext”字段中的省份信息为二级主题,将子kafka集群中的消息分发到以各个省为二级主题的二级子kafka集群中,得到以应用程序更新量action_code=“app_update_click”主题下的按二级主题省分类的各二级子Kafka集群。
更多的,例如,新定义一个action_code=“click_login”,此行为表示用户登录,那么就可以新增加一个主题为“click_login”的子kafka集群,专门收集action_code=“click_login”的登录行为,这是水平拓展。此外,如果要对该子kafka集群中的数据再按照二级主题“dateline”进行分类,只需在该子kafka集群后面接再接一个二级主题为“dateline”的二级子kafka集群进行分类就可以达到纵向拓展的目的。
本发明实施例中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。通过在服务端将总Kafka集群中的全量消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
请参见图5,图5为本发明第四实施例提供的服务器的结构示意图,该服务器包括:
接收模块401、写入模块402、分类模块403和获取模块404;
接收模块401,用于接收第一客户端发送的全量消息,该全量消息包括第一客户端中的至少一种用户行为数据;
写入模块402,用于将全量消息写入总Kafka集群,该总Kafka集群包括至少一个子Kafka集群;
分类模块403,用于对全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群;
获取模块404,用于获取第二客户端发送的数据获取请求;
读取模块405,用于读取与数据获取请求对应的子Kafka集群中的用户行为数据;
发送模块406,用于发送用户行为数据至第二客户端。
需要说明的是,该接收模块401、写入模块402、分类模块403、获取模块404、读取模块405和发送模块406,部署在至少一个服务器中,也可以分别部署在多个服务器中。可以理解的是,服务器中上述模块的组成形式可以不限定于图5,例如,可以将接收模块401、写入模块402、分类模块403、获取模块404、读取模块405和发送模块406集成在一个芯片中,从而该芯片作为一个执行主体完成本发明实施例的消息处理。
本发明实施例中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。通过在服务端将总Kafka集群中的全量消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
请参见图6,图6为本发明第五实施例提供的第一终端的结构示意图,该第一终端包括:
发送模块501,用于通过内置的客户端发送全量消息给服务器,以使服务器将全量消息写入总Kafka集群,并对全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,获取第二客户端发送的数据获取请求,读取与数据获取请求对应的子Kafka集群中的用户行为数据,并发送用户行为数据至第二客户端,该全量消息包括第一客户端中的至少一种用户行为数据,该总Kafka集群包括至少一个子Kafka集群。
本发明实施例中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。通过在服务端将总Kafka集群中的全量消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
请参见图7,图7为本发明第六实施例提供的第二终端的结构示意图,该第二终端包括:
发送模块601,用于通过内置的客户端发送数据获取请求给服务器,以使服务器读取与数据获取请求对应的子Kafka集群中的用户行为数据,并发送用户行为数据至第二客户端,其中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,并对全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,该全量消息包括第一客户端中的至少一种用户行为数据,该总Kafka集群包括至少一个子Kafka集群。
本发明实施例中,服务器接收第一客户端发送的全量消息,将全量消息写入总Kafka集群,按照主题分类,将总Kafka集群中的全量消息分别写入各子Kafka集群,得到按不同主题分类的各子Kafka集群,以使获取到第二客户端发送的数据获取请求时,读取与该数据获取请求对应的子Kafka集群中的用户行为数据,并发送该用户行为数据至第二客户端。通过在服务端将总Kafka集群中的全量消息分别写入各子Kafka集群,读取消息时,从相应的子Kafka集群中进行读取,使总Kafka集群只负责消息的写入,在不丢失数据时效性同时,减缓总Kafka集群压力,避免流量高峰期时,总Kafka集群由于频繁且巨大的读写数据造成负载过高,导致网络系统异常。
本本发明实施例还提供了一种消息处理系统,该系统包括上述图5所示实施例中的服务器、图6所示实施例中的第一终端和图7所示实施例中的第二终端。
进一步地,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的终端中,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述图2所示实施例中描述的消息处理方法。进一步地,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
需要说明的是,本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种消息处理方法、服务器、终端、系统及存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种消息处理方法,应用于服务器,其特征在于,所述方法包括:
接收第一客户端发送的全量消息,所述全量消息包括所述第一客户端中的至少一种用户行为数据;
将所述全量消息写入总Kafka集群,所述总Kafka集群包括至少一个子Kafka集群;
对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群;
获取第二客户端发送的数据获取请求,读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至所述第二客户端。
2.根据权利要求1所述的方法,其特征在于,若所述主题还包括二级主题,则所述对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群之后,还包括:
按照所述二级主题分类,将按所述主题分类的子Kafka集群中的消息分别写入各二级子Kafka集群,得到所述主题分类下的按所述二级主题分类的各二级子Kafka集群。
3.一种消息处理方法,应用于第一客户端,其特征在于,所述方法包括:
发送全量消息给服务器,以使所述服务器将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,获取第二客户端发送的数据获取请求,读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至所述第二客户端,所述全量消息包括第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
4.一种消息处理方法,应用于第二客户端,其特征在于,所述方法包括:
发送数据获取请求给服务器,以使所述服务器读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至第二客户端,其中,所述服务器接收第一客户端发送的全量消息,将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,所述全量消息包括所述第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
5.根据权利要求4所述的方法,其特征在于,若所述主题还包括二级主题,则所述对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群之后,还包括:
按照所述二级主题分类,将按所述主题分类的子Kafka集群中的消息分别写入各二级子Kafka集群,得到所述主题分类下的按所述二级主题分类的各二级子Kafka集群。
6.一种服务器,其特征在于,包括:
接收模块,用于接收第一客户端发送的全量消息,所述全量消息包括所述第一客户端中的至少一种用户行为数据;
写入模块,用于将所述全量消息写入总Kafka集群,所述总Kafka集群包括至少一个子Kafka集群;
分类模块,用于对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群;
获取模块,用于获取第二客户端发送的数据获取请求;
读取模块,用于与所述数据获取请求对应的子Kafka集群中的用户行为数据;
发送模块,用于发送所述用户行为数据至所述第二客户端。
7.一种第一终端,其特征在于,包括:
发送模块,用于通过内置的客户端发送全量消息给服务器,以使所述服务器将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,获取第二客户端发送的数据获取请求,读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至所述第二客户端,所述全量消息包括第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
8.一种第二终端,其特征在于,包括:
发送模块,用于通过内置的客户端发送数据获取请求给服务器,以使所述服务器读取与所述数据获取请求对应的子Kafka集群中的用户行为数据,并发送所述用户行为数据至第二客户端,其中,所述服务器接收第一客户端发送的全量消息,将所述全量消息写入总Kafka集群,并对所述全量消息中的至少一种用户行为数据进行主题分类,以将不同主题的用户行为数据写入不同的子Kafka集群,所述全量消息包括所述第一客户端中的至少一种用户行为数据,所述总Kafka集群包括至少一个子Kafka集群。
9.一种消息处理系统,其特征在于,所述系统包括根据权利要求 6所述的服务器、根据权利要求 7所述的第一终端和根据权利要求 8所述的第二终端。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1或2任一项所述的消息处理方法。
CN201811016853.9A 2018-08-31 2018-08-31 消息处理方法、服务器、终端、系统及存储介质 Active CN110875885B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811016853.9A CN110875885B (zh) 2018-08-31 2018-08-31 消息处理方法、服务器、终端、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811016853.9A CN110875885B (zh) 2018-08-31 2018-08-31 消息处理方法、服务器、终端、系统及存储介质

Publications (2)

Publication Number Publication Date
CN110875885A CN110875885A (zh) 2020-03-10
CN110875885B true CN110875885B (zh) 2022-04-12

Family

ID=69716432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811016853.9A Active CN110875885B (zh) 2018-08-31 2018-08-31 消息处理方法、服务器、终端、系统及存储介质

Country Status (1)

Country Link
CN (1) CN110875885B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153623A (zh) * 2020-08-18 2022-03-08 中兴通讯股份有限公司 消息中间件的布局方法、装置、服务器及存储介质
CN112350921A (zh) * 2020-09-30 2021-02-09 北京大米科技有限公司 消息处理方法、终端及存储介质
CN113612816A (zh) * 2021-07-06 2021-11-05 深圳市酷开网络科技股份有限公司 一种数据采集方法、系统、终端及计算机可读存储介质
CN114401239B (zh) * 2021-12-20 2023-11-14 中国平安财产保险股份有限公司 元数据传输方法、装置、计算机设备和存储介质
CN114389900A (zh) * 2022-03-23 2022-04-22 广东睿江云计算股份有限公司 一种基于OpenResty异常流量捕获与拦截的方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104410877A (zh) * 2014-11-28 2015-03-11 北京国双科技有限公司 网络电视的用户行为数据的处理方法和装置
CN105718515A (zh) * 2016-01-14 2016-06-29 神策网络科技(北京)有限公司 数据存储系统及其方法和数据分析系统及其方法
CN106649870A (zh) * 2017-01-03 2017-05-10 山东浪潮商用系统有限公司 一种搜索引擎分布式实现方法
CN106817295A (zh) * 2016-12-08 2017-06-09 努比亚技术有限公司 一种消息处理装置和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10853847B2 (en) * 2016-05-13 2020-12-01 Oath Inc. Methods and systems for near real-time lookalike audience expansion in ads targeting

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104410877A (zh) * 2014-11-28 2015-03-11 北京国双科技有限公司 网络电视的用户行为数据的处理方法和装置
CN105718515A (zh) * 2016-01-14 2016-06-29 神策网络科技(北京)有限公司 数据存储系统及其方法和数据分析系统及其方法
CN106817295A (zh) * 2016-12-08 2017-06-09 努比亚技术有限公司 一种消息处理装置和方法
CN106649870A (zh) * 2017-01-03 2017-05-10 山东浪潮商用系统有限公司 一种搜索引擎分布式实现方法

Also Published As

Publication number Publication date
CN110875885A (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
CN110875885B (zh) 消息处理方法、服务器、终端、系统及存储介质
CN106940679B (zh) 数据处理方法及装置
CN110362544B (zh) 日志处理系统、日志处理方法、终端及存储介质
CN110909063A (zh) 一种用户行为的分析方法、装置、应用服务器及存储介质
CN110347716B (zh) 日志数据处理方法、装置、终端设备及存储介质
CN111209352B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN101686209B (zh) 消息转发系统中存储消息的方法和装置
US8725684B1 (en) Synchronizing data stores
CN110413650B (zh) 一种业务数据的处理方法、装置、设备和存储介质
CN107943774A (zh) 文章生成方法和装置
CN109190025B (zh) 信息监控方法、装置、系统和计算机可读存储介质
US9128968B2 (en) Systems and methods for data compression
CN111367873A (zh) 日志数据的存储方法、装置、终端及计算机存储介质
CN111737742B (zh) 敏感数据扫描方法和系统
US10250550B2 (en) Social message monitoring method and apparatus
CN109558561A (zh) 一种用户行为路径采集方法、装置、设备及介质
CN111163172B (zh) 消息处理系统、方法、电子设备及存储介质
CN113590437B (zh) 一种告警信息处理方法、装置、设备和介质
CN111259066A (zh) 服务器集群数据同步方法及装置
CN108491315A (zh) 页面驻留时长的统计方法、装置及计算机可读存储介质
CN105430624A (zh) 一种信息获取的方法及装置
CN109150819B (zh) 一种攻击识别方法及其识别系统
CN116541403A (zh) 一种实时捕获数据库数据变更的方法、系统、电子设备及存储介质
CN114048228A (zh) 状态存储的更新方法、装置、设备及存储介质
CN114741444A (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
GR01 Patent grant
GR01 Patent grant