CN117857572A - 一种支持秒级精准禁推的高可用架构 - Google Patents
一种支持秒级精准禁推的高可用架构 Download PDFInfo
- Publication number
- CN117857572A CN117857572A CN202311654845.8A CN202311654845A CN117857572A CN 117857572 A CN117857572 A CN 117857572A CN 202311654845 A CN202311654845 A CN 202311654845A CN 117857572 A CN117857572 A CN 117857572A
- Authority
- CN
- China
- Prior art keywords
- task
- api
- forbidden
- stream
- module
- 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
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000006243 chemical reaction Methods 0.000 claims abstract description 13
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims abstract description 3
- 239000003795 chemical substances by application Substances 0.000 claims description 56
- 230000000903 blocking effect Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 12
- 239000012634 fragment Substances 0.000 claims description 8
- 238000007789 sealing Methods 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005764 inhibitory process Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- 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/2866—Architectures; Arrangements
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种支持秒级精准禁推的高可用架构,属于IT与软件开发领域,包含配置中心平台、任务分发***以及边缘AGENT;配置中心平台:包含API层和业务处理层,API层用于负责任务的创建和边缘网关对流状态的查询业务;处理层,用于负责任务的转换处理以及任务的下发;任务分发***:包含API层以及内部消息队列,API层用于负责任务及其执行状态的传递处理以及精准下发的前置工作;内部消息队列,用来做消息的缓存和hash映射;边缘AGENT:包含任务的执行以及接入流的上报,任务的执行包括任务的获取以及调用网关接口执行断流命令;接入流上报用于后续的精准下发,避免内耗;该架构从一致性、精准性、高并发和高可用几个方面保证禁推任务能够迅速准确地下发。
Description
技术领域
本发明属于IT与软件开发技术领域,尤其涉及一种支持秒级精准禁推的高可用架构。
背景技术
CDN(Content Delivery Network,内容分发网络)是一种在服务提供方和消费方之间,通过架设节点让用户就近获取所需的内容,从而达到缓解网络拥塞,提高用户访问网站响应速度的目的。直播推流则是在CDN资源基础上,直播端将直播流推送至服务器,用户端发起请求从服务器拉取直播流然后解码播放。在直播过程中,如果出现视频卡顿(比如边缘机器负载较高),需要切换到其他机器进行服务,这需要平台能够秒级下发断流信号到CDN边缘机器将直播流断开,以便直播流重新推到其他服务质量更好的机器;如果出现推流视频内容审核异常,除了需要对边缘机器上的流断开以外,还需要对该流进行封禁,禁止该流后续再次接入;若后续视频审核通过,则需要对该流进行解禁,因此需要平台保证封解禁的顺序一致性。
目前已知的架构方案,无法很好同时兼顾以下几个问题:
1.***架构在高并发的情况下,保证***的高可用;
2.对同一个直播流频繁的封禁、解禁,在支持并发处理情况下,同时保证封解禁任务执行的最终一致性;
3.对直播流的断流任务下发时,保证仅接入流机器精准断开,避免大范围任务下发对未接入流机器的压力影响。
发明内容
本发明所要解决的技术问题是针对背景技术的不足提供本发明提出一种支持秒级精准禁推的高可用架构,该架构从一致性、精准性、高并发和高可用几个方面保证禁推任务能够迅速准确地下发。
本发明为解决上述技术问题采用以下技术方案:
一种支持秒级精准禁推的高可用架构,包含配置中心平台、任务分发***以及边缘AGENT;
其中,配置中心平台:包含API层和业务处理层,API层用于负责任务的创建和边缘网关对流状态的查询业务;处理层,用于负责任务的转换处理以及任务的下发;
任务分发***:包含API层以及内部消息队列,API层用于负责任务及其执行状态的传递处理以及精准下发的前置工作;内部消息队列,用来做消息的缓存和hash映射;
边缘AGENT:包含任务的执行以及接入流的上报,任务的执行包括任务的获取以及调用网关接口执行断流命令;接入流上报用于后续的精准下发,避免内耗。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述配置中心平台的API层包含对外API和对内API;
对外API,用于接收来自界面或者客户的禁推/断流/解禁任务请求;
其中,任务类型若为断流任务,则直接写入断流消息队列中;
若任务类型为禁推/解禁,则需要对禁推/解禁流信息计算hash值,将同一个流的任务请求映射到固定的消息队列分片中,保证封解禁任务的顺序处理;
ID=Hash(flow_url)MOD n
其中,ID为映射到的固定消息队列编号,n为队列个数,flow_url为直播流url,Hash(·)为散列函数;
对内API,用于为边缘机器提供流封禁状态查询服务;当边缘机器请求到达配置中心API时,对内API会从REDIS集群中查询对应的流信息是否存在,若存在则返回边缘机器该流当前处于封禁中;若不存在则返回边缘机器该流当前未封禁。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述配置中心平台的API层为无状态服务并支持横向扩展。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述配置中心平台的业务处理层包含任务的转换处理模块、任务的精准下发模块、任务回调处理模块;
其中,任务的转换处理模块是指对禁推/断流/解禁任务的差别处理;
任务的精准下发模块包括三块功能,(1)从消息队列中获取边缘机器上报的流接入ip信息,并将该映射信息记录到REDIS集群中;(2)将REDIS中流对应的ip信息一起调用任务***接口做精准下发;(3)若需要断的流在REDIS中查询不到,则下发范围退阶到根据流信息中域名关联的资源池进行下发;
任务回调处理模块会从任务分发***的回调消息队列中读取回调任务,并将任务的处理结果写入任务数据表中完成闭环。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,对禁推/断流/解禁任务的差别处理,具体如下:禁推任务则需要转换为封禁和断流两种任务再对应处理;断流任务需要下发给任务分发***,任务由后续的任务精准下发模块处理;对于封禁/解禁任务,模块从消息队列分片中依次获取任务并根据任务类型做出对应的处理,其中对于封禁任务,模块以流信息为key写入REDIS集群;对于解禁任务,模块则从REDIS集群中删除key为流信息的数据。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述任务分发***包含业务端API、任务端API、回调API以及流上报API;
其中,业务端API,用于接收来自配置中心平台的断流任务信息;
任务端API,用于接收来自边缘AGENT的任务请求并返回断流任务给AGENT;
回调API,用于接收来自边缘AGENT的回调请求;
流上报API,用于接收来自边缘AGENT上报的直播流信息,并写入到消息队列中,后续由平台侧的业务处理模块消费。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述业务端API当接收到断流任务时,对请求消息体中的ip信息使用一致性hash算法,将ip映射到任务分发***中指定的消息队列上,并将该断流任务追加到该队列中。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述任务端API具体包括两部分功能:
(3)为了满足高可用要求,任务端API以LRU原则定期将所有机房的消息队列中新增的任务加载到内存中,当AGENT的请求到达该模块时,根据AGENT的ip信息将内存中一定偏移量的任务数据返回给AGENT;
(4)由于内存仅缓存一定量的任务数据,所以内存中查询不到AGENT对应ip的数据时,该模块需要先根据一致性hash算法计算ip对应的队列,然后再从该队列获取一定偏移量的任务数据返回给AGENT。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述回调API接收到AGENT的回调请求后,将消息体写入回调消息队列中。
作为本发明一种支持秒级精准禁推的高可用架构的进一步优选方案,所述边缘AGENT包含任务拉取模块、任务下发模块和流上报模块;
其中,任务拉取模块,用于负责定期从任务分发***获取一定偏移量的数据并将获取到的数据写入程序内部队列中;
任务下发模块,用于以并发的形式,从内部队列中读取并解析任务信息,调用网关接口下发任务并将网关执行结果,通过任务分发***的回调API进行回调;
流上报模块,用于当客户推流到某台边缘机器时,若该流没有被封禁,则网关调用AGENT接口,将流信息和本机ip地址传递给AGENT;AGENT收到流信息后将信息通过任务分发***的流上报接口传递给配置中心平台。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1、一致性:对于需要保证顺序一致性的任务,通过hash分片的方式,既可以通过大量并发线程让任务快速处理,又可以保证同一个流的任务按照真实的处理序列进行执行;
2、精准性:通过边缘上报流的接入信息的方式,让平台能够精准获取到接入机器和流的对应关系,从而在任务下发时能够下发到流接入的机器上,避免大面积下发带来的带宽和机器性能的损耗;
3、高可用:本发明中所述架构在实现一致性和精准性的基础上,支持***实例的横向扩展,在保证功能可用性的同时,能够通过扩容的方式增加***对高并发请求的吞吐。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种支持秒级精准禁推的高可用架构的***架构图;
图2是本发明一致性hash的示意图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
整体架构:图1为秒级精准禁推***架构图,其中主要包括了配置中心平台、任务分发***以及边缘AGENT;
其中,配置中心平台:配置中心平台主要包括API层和业务处理层。
API层包含对外API和对内API,
a)对外API主要接收来自界面或者客户的禁推/断流/解禁任务请求,其中任务类型若为断流任务,则直接写入断流消息队列中;若任务类型为禁推或解禁,则需要对禁推/解禁流信息计算hash值,将同一个流的任务请求映射到固定的消息队列分片中,保证封解禁任务的顺序处理
ID=Hash(flow_url)MODn
其中,ID为映射到的固定消息队列编号,n为队列个数,flow_url为直播流url,Hash(·)为散列函数
b)对内API主要为边缘机器提供流封禁状态查询服务。API层为了满足高可用和快速响应,设计为无状态服务并支持横向扩展。当边缘机器请求到达配置中心API时,对内API会从REDIS集群中查询对应的流信息是否存在,若存在则返回边缘机器该流当前处于封禁中;若不存在则返回边缘机器该流当前未封禁。
业务处理层主要处理从消息队列来的任务,支持任务类型的转换处理、任务的精准下发以及任务回调处理。
c)任务的转换处理模块是指对禁推/断流/解禁任务的差别处理。其中禁推任务则需要转换为封禁和断流两种任务再对应处理;断流任务需要下发给任务分发***,任务由后续的任务精准下发模块处理;对于封禁/解禁任务,模块从消息队列分片中依次获取任务并根据任务类型做出对应的处理,其中对于封禁任务,模块以流信息为key写入REDIS集群;对于解禁任务,模块则从REDIS集群中删除key为流信息的数据。
d)任务的精准下发模块包括三块功能,(1)从消息队列中获取边缘机器上报的流接入ip信息,并将该映射信息记录到REDIS集群中;(2)将REDIS中流对应的ip信息一起调用任务***接口做精准下发;(3)若需要断的流在REDIS中查询不到,则下发范围退阶到根据流信息中域名关联的资源池进行下发。
e)任务回调处理模块会从任务分发***的回调消息队列中读取回调任务,并将任务的处理结果写入任务数据表中完成闭环。
任务分发***:任务分发***主要包括业务端API、任务端API、回调API以及流上报API。
a)业务端API主要接收来自配置中心平台的断流任务信息。当接收到断流任务时,对请求消息体中的ip信息使用一致性hash算法(见图2),将ip映射到任务分发***中指定的消息队列上,并将该断流任务追加到该队列中
b)任务端API主要接收来自边缘AGENT的任务请求并返回断流任务给AGENT。该模块包括两部分功能,(1)为了满足高可用要求,任务端API以LRU原则定期将所有机房的消息队列中新增的任务加载到内存中,当AGENT的请求到达该模块时,根据AGENT的ip信息将内存中一定偏移量的任务数据返回给AGENT;(2)由于内存仅缓存一定量的任务数据,所以内存中查询不到AGENT对应ip的数据时,该模块需要先根据一致性hash算法计算ip对应的队列,然后再从该队列获取一定偏移量的任务数据返回给AGENT。
c)回调API主要接收来自边缘AGENT的回调请求。该模块接收到AGENT的回调请求后,将消息体写入回调消息队列中。
d)流上报API主要接收来自边缘AGENT上报的直播流信息,并写入到消息队列中,后续由平台侧的业务处理模块消费。
边缘AGENT:边缘AGENT主要包括任务拉取模块、任务下发模块和流上报模块。
a)任务拉取模块主要负责定期从任务分发***获取一定偏移量的数据并将获取到的数据写入程序内部队列中
b)任务下发模块以并发的形式,从内部队列中读取并解析任务信息,最后调用网关接口下发任务并将网关执行结果,通过任务分发***的回调API进行回调。
c)流上报模块主要功能是当客户推流到某台边缘机器时,若该流没有被封禁,则网关调用AGENT接口,将流信息和本机ip地址传递给AGENT。AGENT收到流信息后将信息通过任务分发***的流上报接口传递给配置中心平台。
实施例:
一、断流流程:例如对流(www.aa.com/app/stream-1)下发断流任务
1.前提:该流已对接到边缘机器
2.网关调用边缘AGENT接口将该流信息和本机ip传给AGENT。
3.边缘AGENT通过流上报模块将该流信息传递给任务分发***的流上报接口。
4.任务分发***的流上报模块将该流信息写入消息队列中。
5.平台侧从消息队列中获取该流对应的ip信息,并记录到REDIS中
6.运维/客户调用平台的对外API接口创建该流的断流任务。
7.对外API模块将断流任务写入断流消息队列中,并同步返回运维/客户该断流任务已接收成功。
8.任务转换处理模块从断流消息队列中获取断流任务,然后调用任务分发***的业务端API接口下发流信息以及该流对应的边缘机器ip信息,同时记录该任务信息到数据库。
9.任务分发***的业务端API模块根据消息体中的ip信息使用一致性hash算法,计算出ip对应的消息队列,并将断流任务写入该消息队列
10.任务分发***的任务端API模块会以LRU原则将新增任务加载到内存中11.边缘AGENT的任务拉取模块调用任务分发***的任务端API接口,获取断流任务,任务端API模块根据消息体中的ip信息和偏移量信息,判断该ip所需数据是否在内存中,若在,则直接从内存中返回该ip所需任务数据;若不在,则根据一致性hash算法,计算出该ip对应的消息队列,并从中获取一定偏移量的任务数据返回给AGENT。
12.边缘AGENT获取到该流(www.aa.com/app/stream-1)信息后,通过任务下发模块调用网关接口将断流任务进行下发,网关将断流结果(成功/失败)同步返回给AGENT,AGENT此时调用任务分发***的回调API,将该流的任务执行情况返回。
13.任务分发***的回调API模块将回调信息写入回调消息队列中。
14.平台侧的任务回调处理模块从回调消息队列中获取到该流(www.aa.com/app/stream-1)的任务执行结果,并将结果更新到数据库对应的任务状态中。
二、禁推流程:例如对流(www.aa.com/app/stream-1)下发禁推任务
1.直播流的上报流程参考断流流程的1到5环节
2.运维/客户调用平台侧的对外API接口创建该流的禁推任务。
3.平台侧的对外API模块先对该流信息计算散列mod值k,将该禁推任务下发到消息队列的第k个分片中,并同步返回运维/客户该禁推任务已接收成功。
4.平台侧的任务转换处理模块将该禁推任务拆分为封禁任务和断流任务,其中断流任务可参考断流流程;
5.对于拆分出的封禁任务,任务转换处理模块将以www.aa.com/app/stream-1为key写入REDIS集群中。
6.后续当直播用户要接入www.aa.com/app/stream-1流到边缘机器时,网关调用平台侧的对内API接口查询该流是否处于封禁中,若该流处于封禁中,则网关不允许该流接入边缘机器;若该流不处于封禁中,则网关运行该流接入边缘机器。
三、解禁流程:例如对流(www.aa.com/app/stream-1)下发解禁任务
1.运维/客户调用平台侧的对外API接口创建该流的解禁任务。
2.平台侧的对外API模块先对该流信息计算散列mod值k,将该解禁任务下发到消息队列的第k各分片中,并同步返回运维/客户该解禁任务已接收成功。
3.平台侧的任务转换处理模块将提取该解禁任务中的流信息,并从REDIS集群中删除以
www.aa.com/app/stream-1为key的数据。
4.后续当直播用户要接入www.aa.com/app/stream-1流到边缘机器时,网关调用平台侧的对内API接口查询该流是否处于封禁中,若该流处于封禁中,则网关不允许该流接入边缘机器;若该流不处于封禁中,则网关运行该流接入边缘机器。
本发明对于禁推业务中的断流部分,通过精准下发方式,快速断开边缘正在执行的直播流,达到秒级断开的效果,保证满足客户需求的同时,减少内耗的目的。
本发明对于禁推业务中的封禁/解禁部分,在支持高并发处理情况下,同时保证封解禁任务的最终一致性,从而保障了客户实际业务的正确执行;
本发明采用消息队列分片和封禁/解禁任务散列的方式,兼顾并发处理和任务最终一致性采用流上报和一致性hash策略,保证仅接入流机器精准断开,避免大范围任务下发对未接入流机器的压力影响;本发明支持***实例的横向扩展,在保证功能可用性的同时,能够通过扩容的方式增加***对高并发请求的吞吐。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内本实施例中的所有技术特征均可根据实际需要而进行自由组合。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种支持秒级精准禁推的高可用架构,其特征在于:包含配置中心平台、任务分发***以及边缘AGENT;
其中,配置中心平台:包含API层和业务处理层,API层用于负责任务的创建和边缘网关对流状态的查询业务;处理层,用于负责任务的转换处理以及任务的下发;
任务分发***:包含API层以及内部消息队列,API层用于负责任务及其执行状态的传递处理以及精准下发的前置工作;内部消息队列,用来做消息的缓存和hash映射;
边缘AGENT:包含任务的执行以及接入流的上报,任务的执行包括任务的获取以及调用网关接口执行断流命令;接入流上报用于后续的精准下发,避免内耗。
2.根据权利要求1所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述配置中心平台的API层包含对外API和对内API;
对外API,用于接收来自界面或者客户的禁推/断流/解禁任务请求;
其中,任务类型若为断流任务,则直接写入断流消息队列中;
若任务类型为禁推/解禁,则需要对禁推/解禁流信息计算hash值,将同一个流的任务请求映射到固定的消息队列分片中,保证封解禁任务的顺序处理;
D=Hash(flow_url)MOD n
其中,ID为映射到的固定消息队列编号,n为队列个数,flow_url为直播流url,Hash(·)为散列函数;
对内API,用于为边缘机器提供流封禁状态查询服务;当边缘机器请求到达配置中心API时,对内API会从REDIS集群中查询对应的流信息是否存在,若存在则返回边缘机器该流当前处于封禁中;若不存在则返回边缘机器该流当前未封禁。
3.根据权利要求1所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述配置中心平台的API层为无状态服务并支持横向扩展。
4.根据权利要求1所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述配置中心平台的业务处理层包含任务的转换处理模块、任务的精准下发模块、任务回调处理模块;
其中,任务的转换处理模块是指对禁推/断流/解禁任务的差别处理;
任务的精准下发模块包括三块功能,(1)从消息队列中获取边缘机器上报的流接入ip信息,并将该映射信息记录到REDIS集群中;(2)将REDIS中流对应的ip信息一起调用任务***接口做精准下发;(3)若需要断的流在REDIS中查询不到,则下发范围退阶到根据流信息中域名关联的资源池进行下发;
任务回调处理模块会从任务分发***的回调消息队列中读取回调任务,并将任务的处理结果写入任务数据表中完成闭环。
5.根据权利要求4所述的一种支持秒级精准禁推的高可用架构,其特征在于:对禁推/断流/解禁任务的差别处理,具体如下:禁推任务则需要转换为封禁和断流两种任务再对应处理;断流任务需要下发给任务分发***,任务由后续的任务精准下发模块处理;对于封禁/解禁任务,模块从消息队列分片中依次获取任务并根据任务类型做出对应的处理,其中对于封禁任务,模块以流信息为key写入REDIS集群;对于解禁任务,模块则从REDIS集群中删除key为流信息的数据。
6.根据权利要求1所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述任务分发***包含业务端API、任务端API、回调API以及流上报API;
其中,业务端API,用于接收来自配置中心平台的断流任务信息;
任务端API,用于接收来自边缘AGENT的任务请求并返回断流任务给AGENT;
回调API,用于接收来自边缘AGENT的回调请求;
流上报API,用于接收来自边缘AGENT上报的直播流信息,并写入到消息队列中,后续由平台侧的业务处理模块消费。
7.根据权利要求6所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述业务端API当接收到断流任务时,对请求消息体中的ip信息使用一致性hash算法,将ip映射到任务分发***中指定的消息队列上,并将该断流任务追加到该队列中。
8.根据权利要求6所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述任务端API具体包括两部分功能:
(1)为了满足高可用要求,任务端API以LRU原则定期将所有机房的消息队列中新增的任务加载到内存中,当AGENT的请求到达该模块时,根据AGENT的ip信息将内存中一定偏移量的任务数据返回给AGENT;
(2)由于内存仅缓存一定量的任务数据,所以内存中查询不到AGENT对应ip的数据时,该模块需要先根据一致性hash算法计算ip对应的队列,然后再从该队列获取一定偏移量的任务数据返回给AGENT。
9.根据权利要求6所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述回调API接收到AGENT的回调请求后,将消息体写入回调消息队列中。
10.根据权利要求1所述的一种支持秒级精准禁推的高可用架构,其特征在于:所述边缘AGENT包含任务拉取模块、任务下发模块和流上报模块;
其中,任务拉取模块,用于负责定期从任务分发***获取一定偏移量的数据并将获取到的数据写入程序内部队列中;
任务下发模块,用于以并发的形式,从内部队列中读取并解析任务信息,调用网关接口下发任务并将网关执行结果,通过任务分发***的回调API进行回调;
流上报模块,用于当客户推流到某台边缘机器时,若该流没有被封禁,则网关调用AGENT接口,将流信息和本机ip地址传递给AGENT;AGENT收到流信息后将信息通过任务分发***的流上报接口传递给配置中心平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311654845.8A CN117857572A (zh) | 2023-12-05 | 2023-12-05 | 一种支持秒级精准禁推的高可用架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311654845.8A CN117857572A (zh) | 2023-12-05 | 2023-12-05 | 一种支持秒级精准禁推的高可用架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857572A true CN117857572A (zh) | 2024-04-09 |
Family
ID=90547158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311654845.8A Pending CN117857572A (zh) | 2023-12-05 | 2023-12-05 | 一种支持秒级精准禁推的高可用架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857572A (zh) |
-
2023
- 2023-12-05 CN CN202311654845.8A patent/CN117857572A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021315B (zh) | 一种应用程序的日志管理方法及*** | |
CN104111804B (zh) | 一种分布式文件*** | |
US20140149485A1 (en) | Method and system for managing user state for applications deployed on platform as a service (paas) clouds | |
CN102411598B (zh) | 一种实现数据一致性的方法及其*** | |
CN104333512A (zh) | 一种分布式内存数据库访问***及方法 | |
CN111078426A (zh) | 一种后端微服务架构下的高并发解决方法 | |
CN106959820B (zh) | 一种数据提取方法和*** | |
US20150332191A1 (en) | Reducing costs related to use of networks based on pricing heterogeneity | |
WO2021129477A1 (zh) | 一种数据同步的方法及相关设备 | |
US9264519B1 (en) | Embedding application services in a distributed datastore | |
US20150142845A1 (en) | Smart database caching | |
CN112307119A (zh) | 数据同步方法、装置、设备及存储介质 | |
WO2018040168A1 (zh) | 分布式缓存同步方法、装置及*** | |
CN105610917B (zh) | 实现***中同步数据修复的方法及*** | |
US11153413B2 (en) | Distributed state recovery in a system having dynamic reconfiguration of participating nodes | |
CN105989065B (zh) | 一种闪拍数据处理方法及*** | |
CN113259408A (zh) | 数据传输方法和*** | |
WO2023231723A1 (zh) | 流媒体数据处理方法及*** | |
CN117857572A (zh) | 一种支持秒级精准禁推的高可用架构 | |
CN111931105A (zh) | 一种kafka消费指定推送时间数据处理方法 | |
CN105930519A (zh) | 一种基于集群文件***的全局共享读缓存方法 | |
US11811894B2 (en) | Reduction of data transmissions based on end-user context | |
CN115934417A (zh) | 一种数据备份方法、***和设备 | |
CN111382207B (zh) | 一种数据处理方法、装置、***和存储介质 | |
CN111294383B (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 |