CN117056174B - 一种通知信息处理方法及装置 - Google Patents

一种通知信息处理方法及装置 Download PDF

Info

Publication number
CN117056174B
CN117056174B CN202311322691.2A CN202311322691A CN117056174B CN 117056174 B CN117056174 B CN 117056174B CN 202311322691 A CN202311322691 A CN 202311322691A CN 117056174 B CN117056174 B CN 117056174B
Authority
CN
China
Prior art keywords
notification
target
notification message
resource
message body
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
CN202311322691.2A
Other languages
English (en)
Other versions
CN117056174A (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.)
Beijing Ling Skylark Technology Co ltd
Original Assignee
Beijing Ling Skylark 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 Beijing Ling Skylark Technology Co ltd filed Critical Beijing Ling Skylark Technology Co ltd
Priority to CN202311322691.2A priority Critical patent/CN117056174B/zh
Publication of CN117056174A publication Critical patent/CN117056174A/zh
Application granted granted Critical
Publication of CN117056174B publication Critical patent/CN117056174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种通知信息处理方法及装置,所述方法包括:在Kubernetes集群中创建参数合法的通知消息的虚拟资源;根据通知消息中的通知策略查找与通知消息匹配的目标资源;当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象,从而更加灵活的自定义通知配置信息,实现了通知配置的热加载,且扩展性强,可以在不改变现有架构的前提下,轻松支持第三方服务器的通知方式。

Description

一种通知信息处理方法及装置
技术领域
本申请涉及计算机领域,具体而言,涉及一种通知信息处理方法及装置。
背景技术
随着Kubernetes从容器编排工具之战中脱颖而出,逐渐被称为容器管理的事实标准。集群的数量和规模随着技术的普及不断增长,如何实现对Kubernetes智能监控和告警通知就显得尤为重要。
对于Kubernetes集群的监控告警,开源社区涌现出了一批优秀的组件,已经能很好地胜任这方面的工作,例如Prometheus和Victoriametrics等。当产生告警信息后,仍然需要一个组件来对信息进行处理和发送通知,Alertmanager已经逐渐成为了这一角色的不二选择。Alertmanager负责接收并处理来自Prometheus (也可以是其它的客户端程序)的告警信息,它可以对这些告警信息进行进一步的处理,比如对告警消息的分组、去重和抑制。这些预处理完成之后,Alertmanager会根据消息的元数据将其路由到匹配的通知方式。Alertmanager已经支持了常见的邮件、Webhook、Slack和Hipchat等多种通知方式,允许用户按照自己的使用场景进行配置和高度定制。然而大家使用的通知方式多种多样,配置方法也是灵活多变,在使用过程中还是面临着各种各样的局限性。
现有的通知方式在实际使用中,主要存在两个比较制约的地方:第一就是这种通知方式配置和修改比较困难,并且不支持热加载;第二就是这种通知方式无法满足所有的通知需求,并且定制成本较高。这使得它在一些需要通知配置需要灵活修改的大规模场景下,需要重新打造自己的通知系统,否则几乎无法使用。
发明内容
有鉴于此,本申请的目的在于提供一种通知信息处理方法及装置,实现更加灵活的通知配置,实现了通知配置的热加载,且扩展性强,可以在不改变现有架构的前提下,轻松支持第三方服务器的通知方式。
本申请实施例提供的一种通知信息处理方法,所述方法包括:
在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;
根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;
当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;
根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象。
在一些实施例中,所述的通知信息处理方法中,在Kubernetes集群中创建参数合法的通知消息的虚拟资源之前,所述方法还包括:
在Kubernetes集群中进行通知策略和通知服务器的资源配置操作,以得到配置好的通知策略和通知服务器;所述通知策略和通知服务器和通知消息体相关联;
其中,所述资源配置操作包括对通知策略对应资源、通知服务器对应资源的增、删、改、查。
在一些实施例中,所述的通知信息处理方法中,在Kubernetes集群中进行通知策略和通知服务器的资源配置操作,包括:
根据发送通知消息体时要使用的第三方服务器的配置信息,配置通知服务器的原生资源;所述通知消息体是Kubernetes集群运行过程中生成的信息;
配置通知消息体要发送的通知联系对象;所述通知联系对象包括通知联系人和/或通知联系组;
根据用户所需的通知消息体的格式,配置通知消息体对应的通知模板;
配置通知消息体关联的通知策略,并关联所述通知联系对象和通知模板,指定发送通知的通知发送方式。
在一些实施例中,所述的通知信息处理方法中,配置通知消息体要发送的通知联系对象,包括:
根据通知消息体要发送的通知联系人的属性信息,创建通知联系对象中的联系人;
根据通知联系人的集合以及该集合中通知联系人的共有属性,创建通知联系对象中的通知联系组。
在一些实施例中,所述的通知信息处理方法中,在Kubernetes集群中创建参数合法的通知消息的虚拟资源,包括:
创建一通知消息的虚拟资源;
拦截创建的所述通知消息,判断通知消息的参数是否符合预设通知消息检测规则;其中,预设通知消息检测规则至少包括以下之一:检测用户是否有权限的权限检测规则、检测消息体格式是否合法的消息体检测规范、检测通知消息中的通知策略是否存在的通知策略检测规则;
若符合,则创建参数合法的通知消息;
若不符合,则返回资源创建失败的报错信息。
在一些实施例中,所述的通知信息处理方法中,在Kubernetes集群中创建参数合法的通知消息的虚拟资源,包括:
获取Kubernetes集群运行过程中生成的通知消息体;
基于通知消息体的属性信息,确定与通知消息体关联的通知策略;
结合所述通知消息体、和所述通知消息体关联的通知策略,创建参数合法的通知消息的虚拟资源。
在一些实施例中,所述的通知信息处理方法中,所述根据通知消息中的通知策略查找与通知消息匹配的目标资源,包括:
根据所述通知消息中的通知策略,分别查找通知联系对象中的通知联系人、通知联系对象中的通知联系组、通知模板、发送通知时所需的通知服务器的资源,得到通知联系人、通知联系对象中的通知联系组、通知模板的资源查找结果;
跳过资源查找结果为不存在的资源,基于资源查找结果为存在的资源确定与通知消息匹配的目标资源。
在一些实施例中,所述的通知信息处理方法中,在当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息之前,所述方法还包括:
判断目标资源是否符合预设资源检测规则;其中,所述预设资源检测规则包括:检测是否有必要资源不存在的第一资源检测规则,和/或检测每种目标资源的配置是否合法的第二资源检测规则;
若不符合,则返回虚拟资源创建失败的报错信息;
若符合,则确定所述目标资源合法。
在一些实施例中,所述的通知信息处理方法中,将目标格式的目标通知信息发送给目标通知联系对象之后,所述方法还包括:
基于所述虚拟资源是否创建成功,判断目标格式的目标通知信息是否发送成功;
若所述虚拟资源创建失败,则返回资源创建失败的报错信息;
若所述虚拟资源创建成功,则确定目标通知信息发送成功。
在一些实施例中,还提供一种通知信息处理装置,所述装置包括:
创建模块,用于在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;
查找模块,用于根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;
转换模块,用于当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;
发送模块,用于根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象。
本申请实施例提供一种通知信息处理方法及装置,所述方法包括:在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象,这样,用户可以用Kubernetes原生的方式,对通知相关的资源进行增删改查,就可以修改和配置通知方式;用户可以基于通知消息资源配置的方式进行更加详细的项目隔离和权限控制,实现更加灵活的通知配置,配置热加载且扩展性强;当用户修改通知相关的资源后,发送通知时就能及时感知到,也就实现了通知配置的热加载,所述方法扩展性强,可以在不改变现有架构的前提下,轻松支持其它的通知方式,比如第三方的聊天软件等。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所述通知信息处理方法的流程图;
图2示出了本申请实施例所述在Kubernetes集群中创建参数合法的通知消息的虚拟资源的方法流程图;
图3示出了本申请实施例所述另一种在Kubernetes集群中创建参数合法的通知消息的虚拟资源的方法流程图;
图4示出了本申请实施例所述根据通知消息中的通知策略查找与通知消息匹配的目标资源的方法流程图;
图5示出了本申请实施例所述另一种通知信息处理方法的流程图;
图6示出了本申请实施例所述另一种通知信息处理方法的流程图;
图7示出了本申请实施例所述的通知信息处理装置的结构示意图;
图8示出了本申请实施例所述电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。 应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。 此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
随着Kubernetes从容器编排工具之战中脱颖而出,逐渐被称为容器管理的事实标准。集群的数量和规模随着技术的普及不断增长,如何实现对Kubernetes智能监控和告警通知就显得尤为重要。
对于Kubernetes集群的监控告警,开源社区涌现出了一批优秀的组件,已经能很好地胜任这方面的工作,例如Prometheus和Victoriametrics等。当产生告警信息后,仍然需要一个组件来对信息进行处理和发送通知,Alertmanager已经逐渐成为了这一角色的不二选择。Alertmanager负责接收并处理来自Prometheus (也可以是其它的客户端程序)的告警信息,它可以对这些告警信息进行进一步的处理,比如对告警消息的分组、去重和抑制。这些预处理完成之后,Alertmanager会根据消息的元数据将其路由到匹配的通知方式。Alertmanager已经支持了常见的邮件、Webhook、Slack和Hipchat等多种通知方式,允许用户按照自己的使用场景进行配置和高度定制。然而大家使用的通知方式多种多样,配置方法也是灵活多变,在使用过程中还是面临着各种各样的局限性。
现有的通知方式在实际使用中,主要存在两个比较制约的地方:第一就是这种通知方式配置和修改比较困难,并且不支持热加载;第二就是这种通知方式无法满足所有的通知需求,并且定制成本较高。这使得它在一些需要通知配置需要灵活修改的大规模场景下,需要重新打造自己的通知系统,否则几乎无法使用。
基于此,本申请实施例提供一种通知信息处理方法及装置,所述方法包括:在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象,这样,用户可以用Kubernetes原生的方式,对通知相关的资源进行增删改查,就可以修改和配置通知方式;用户可以基于通知消息资源配置的方式进行更加详细的项目隔离和权限控制,实现更加灵活的通知配置,配置热加载且扩展性强;当用户修改通知相关的资源后,发送通知时就能及时感知到,也就实现了通知配置的热加载,所述方法扩展性强,可以在不改变现有架构的前提下,轻松支持其它的通知方式,比如第三方的聊天软件等。
请参照图1,图1示出了本申请实施例所述通知信息处理方法的流程图,所述方法包括以下步骤S101-S104:
S101、在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;
S102、根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;
S103、当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;
S104、根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象。
在Kubernetes集群中,资源(Resource)是整个系统的信息载体,通常是以YAML的格式来描述Kubernetes中的各种对象和它们的属性。资源对象是根据资源配置创建的实际对象,它们由Kubernetes ApiServer进行管理和操作。资源通常包含两种:一种是Kubernetes提供的原生资源(Native Resources),包括Namespace/Node/Pod/Service/ConfigMap等,这些资源是Kubernetes的核心组件和功能,用于管理和调度容器化应用程序。 另外一种是用户定义和管理的自定义资源(Custom Resources),这使得用户可以扩展Kubernetes API,引入自己定义的资源类型和行为。通过自定义资源,用户可以创建适应其特定需求的新资源类型,并使用Kubernetes的生命周期管理功能对其进行管理。
本申请所述的Kubernetes集群的通知信息处理方法,正是采用自定义资源的方式来扩展Kubernetes API,让用户能够以Kubernetes原生的方式配置通知和发送通知。
在所述步骤S101中,在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板。
本申请实施例中,所述虚拟资源是指不需要真正创建的资源,因为本申请只是在创建通知消息资源过程中,发送通知信息,不需要真正创建通知消息的资源来消耗资源。
想发送通知消息时,只需要创建一个通知消息的资源,该资源中主要包含两部分,一部分是原生的YAML格式的通知消息体;一部分就是发送通知消息体时要使用的通知策略。
本申请实施例所述的通知信息处理方法中,在Kubernetes集群中创建参数合法的通知消息的虚拟资源之前,所述方法还包括:
在Kubernetes集群中进行通知策略和通知服务器的资源配置操作,以得到配置好的通知策略和通知服务器;所述通知策略和通知服务器和通知消息体相关联;
其中,所述资源配置操作包括对通知策略对应资源、通知服务器对应资源的增、删、改、查。
也就是说,在发送通知消息之前,需要根据用户需要的通知配置预先进行资源配置,通常情况下,所述通知配置包括通知信息要发送的通知联系对象、通知模板、通知方式等等。有时候需要通过第三方服务器将通知信息发送至第三方聊天软件等等。
基于此,本申请实施例中,抽象出多种资源,通过配置所述多种资源,通知相关的资源进行增删改查,修改和配置通知方式,进行更加详细的项目隔离和权限控制,实现更加灵活的通知配置;且在用户修改或配置通知相关的资源后,发送通知时就能及时感知到,也就实现了通知配置的热加载。另外这种方法扩展性强,可以在不改变现有架构的前提下,轻松支持其它的通知方式,比如第三方的办公软件、聊天软件、社交软件等。
示例性的,本申请实施例中,抽象了六种资源,主要包含通知服务器、通知联系人、通知联系组、通知模板、通知策略和通知消息。其中,通知联系人和通知联系组均为通知联系对象。
本申请实施例中,所述的通知信息处理方法中,在Kubernetes集群中进行通知策略和通知服务器的资源配置操作,包括:
根据发送通知消息体时要使用的第三方服务器的配置信息,配置通知服务器的原生资源;所述通知消息体是Kubernetes集群运行过程中生成的信息;
配置通知消息体要发送的通知联系对象;所述通知联系对象包括通知联系人和/或通知联系组;
根据用户所需的通知消息体的格式,配置通知消息体对应的通知模板;
配置通知消息体关联的通知策略,并关联所述通知联系对象和通知模板,指定发送通知的通知发送方式。
本申请实施例中,所述的通知信息处理方法中,配置通知消息体要发送的通知联系对象,包括:
根据通知消息体要发送的通知联系人的属性信息,创建通知联系对象中的联系人;
根据通知联系人的集合以及该集合中通知联系人的共有属性,创建通知联系对象中的通知联系组。
具体的,通知服务器是一种原生资源(Secret),保存的是发送通知时要使用到的第三方服务器信息,比如邮件服务器/短信服务器的配置信息等。
通知联系人是一种自定义资源(User),保存的是用户的各种属性,包括该用户的邮件地址、电话号码和Webhook地址等。
通知联系组是一种自定义资源(Group),是一组通知联系人的集合,以及该组联系人一些共有属性,包括邮件组/钉钉群/企业微信群等。
通知模板是一种自定义资源(Template),保存的用于渲染通知消息的模板,用户可以根据自己的需求来创建模板,使得最终的通知内容的格式满足自己的需要。
通知策略是一种自定义资源(Notification),通知策略是一组通知方式的集合,包含了通知联系人(任意个)、通知联系组(任意个)、通知方式(任意个)、通知模板(1个)。
通知消息是一种自定义资源(Message),通知消息是真正要发送给用户的消息,包括消息体和关联的通知策略。系统会将资源的内容,将指定的消息以通知策略定义的方式发送到用户。
在发送通知消息之前,需要根据用户需要的通知配置预先进行资源配置,具体的,需要先配置通知服务器,指定发送邮件和发送短信需要的身份信息。然后创建通知联系人和通知联系组,并配置上对应的邮件地址/手机号码/钉钉地址/企业微信地址等;再创建通知模板,用于渲染消息体并将消息转成用户期望的内容格式。最后创建通知策略,关联多个通知联系人、多个通知联系组以及一个通知模板,并指定发送通知的通知方式。有了通知策略后,就可以发送用户自定义的通知信息了。
请参照图2,在Kubernetes集群中创建参数合法的通知消息的虚拟资源,包括以下步骤S201-S203:
S201、获取Kubernetes集群运行过程中生成的通知消息体;
S202、基于通知消息体的属性信息,确定与通知消息体关联的通知策略;
S203、结合所述通知消息体、和所述通知消息体关联的通知策略,创建参数合法的通知消息的虚拟资源。
这里,预先配置好的所述通知策略和通知服务器和通知消息体相关联,示例性的,通知消息体A1和通知策略A2、通知服务器A3关联,当于Kubernetes集群运行过程中,生成通知消息体A1后,即可基于通知消息体A1的名称、标识等属性信息,确定与所述通知消息体关联的通知策略,组合所述通知消息体和通知策略,即可创建自定义的通知消息的虚拟资源。
请参照图3,本申请实施例中,在Kubernetes集群中创建参数合法的通知消息的虚拟资源,包括以下步骤S301-S304:
S301、创建一通知消息的虚拟资源;
S302、拦截创建的所述通知消息,判断通知消息的参数是否符合预设通知消息检测规则;其中,预设通知消息检测规则至少包括以下之一:检测用户是否有权限的权限检测规则、检测消息体格式是否合法的消息体检测规范、检测通知消息中的通知策略是否存在的通知策略检测规则;
S303、若符合,则创建参数合法的通知消息;
S304、若不符合,则返回资源创建失败的报错信息。
这里,符合全部的预设通知消息检测规则,则创建参数合法的通知消息。
具体的,创建通知消息时,会首先被Webhook拦截做参数是否合法的校验,校验的目的通常是来检查是否有权限创建这个通知消息,通知消息关联的通知策略是否存在,消息体是否格式合法等等。校验通知消息关联的通知策略是否存在时,Webhook查找此通知消息要使用的通知策略,并从Kubernetes中读取此通知策略的详细配置,如果找不到通知策略就表示创建资源失败,返回相应报错。
如果参数合法就进行步骤S102,否则就表示创建虚拟资源失败,并返回相应报错。
在所述步骤S102中,根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器。
根据通知消息中的通知策略查找与通知消息匹配的目标资源,具体的,根据通知消息中的通知策略的配置查找与通知消息匹配的目标资源。
请参照图4,所述根据通知消息中的通知策略查找与通知消息匹配的目标资源,包括以下步骤S401-S402:
S401、根据所述通知消息中的通知策略,分别查找通知联系对象中的通知联系人、通知联系对象中的通知联系组、通知模板、发送通知时所需的通知服务器的资源,得到通知联系人、通知联系对象中的通知联系组、通知模板的资源查找结果;
S402、跳过资源查找结果为不存在的资源,基于资源查找结果为存在的资源确定与通知消息匹配的目标资源。
也就是说,Webhook读取通知策略后,会根据通知策略查找配置的通知联系人、通知联系组和通知模板,以及发送通知时要用到的通知服务器的资源,跳过任何找不到的资源,将找得到的资源作为目标资源。
这里,之所以有些资源查找结果为不存在,是因为通知策略没有配置该资源,或者说,该资源的配置信息为空;例如通知模板的配置信息为空。
在所述步骤S103中,当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息。
请参照图5,在当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息之前,所述方法还包括以下步骤S501-S503:
S501、判断目标资源是否符合预设资源检测规则;其中,所述预设资源检测规则包括:检测是否有必要资源不存在的第一资源检测规则,和/或检测每种目标资源的配置是否合法的第二资源检测规则;
S502、若不符合,则返回虚拟资源创建失败的报错信息;
S503、若符合,则确定所述目标资源合法。
也就是说,当所述目标资源中存在必要资源,和/或目标资源的配置信息合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息之前。
这里,所述目标资源的配置信息合法,即目标资源的配置信息的格式正确,例如手机号码为11位,通知模板的格式正确等等。
所述必要资源,示例性的,例如通知联系人。
Webhook在读取到上述所有资源后,会再次校验是否有必选的资源不存在,以及相关的资源配置是否合法。如果校验通过,就执行所述步骤S103,渲染通知消息中的通知消息体,否则就表示创建资源失败,并返回相应报错。
Webhook在读到所有要用到的资源后,就会根据通知模板的内容,对消息体进行渲染,将通知消息转化成用户想要的格式。这样,就能够灵活自定义实现了通知信息的格式。
在所述步骤S104中,根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象。
Webhook在做好所有准备工作后,就会根据上述目标联系对象和通知服务器的配置信息,并行地将用户自定义格式的目标通知信息发送给配置好的通知联系人和通知联系组。
请参照图6,将目标格式的目标通知信息发送给目标通知联系对象之后,所述方法还包括以下步骤S601-603:
S601、基于所述虚拟资源是否创建成功,判断目标格式的目标通知信息是否发送成功;
S602、若所述虚拟资源创建失败,则返回资源创建失败的报错信息;
S603、若所述虚拟资源创建成功,则确定目标通知信息发送成功。
这里,虚拟资源创建成功时,但因为通知已发送成功,就只需要返回成功给被调方,而不需要真正创建通知消息的资源。
所述虚拟资源创建失败,不管是因为通知消息的参数不符合预设通知消息检测规则,还是必要资源不存在导致的创建失败,均为虚拟资源创建失败,导致不能成功发送目标通知信息。
综上所述,本申请基于资源配置的方式,配置通知联系人、通知联系群组、通知策略、通知模板,使得用户基于Kubernetes集群的原生通知方式,灵活配置通知消息的通知联系对象和用户想要的格式、用户想要的发送方式(支持第三方的通知方式),能够完美地解决实现通知方式的灵活配置和消息发送,以及实现通知配置的热加载,方便地对通知方式进行扩展。
基于同一发明构思,本申请实施例中还提供了与通知信息处理方法对应的通知信息处理装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述通知信息处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参照图7,图7示出了本申请实施例所述的通知信息处理装置的结构示意图,所述装置包括:
创建模块701,用于在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;
查找模块702,用于根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;
转换模块703,用于当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;
发送模块704,用于根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象。
本申请实施例提供一种通知信息处理装置,用户可以用Kubernetes原生的方式,对通知相关的资源进行增删改查,就可以修改和配置通知方式;用户可以基于通知消息资源配置的方式进行更加详细的项目隔离和权限控制,实现更加灵活的通知配置,配置热加载且扩展性强;当用户修改通知相关的资源后,发送通知时就能及时感知到,也就实现了通知配置的热加载,所述方法扩展性强,可以在不改变现有架构的前提下,轻松支持其它的通知方式,比如第三方的聊天软件等。
在一些实施例中,所述的通知信息处理装置还包括:
配置模块,用于在Kubernetes集群中创建参数合法的通知消息的虚拟资源之前,在Kubernetes集群中进行通知策略和通知服务器的资源配置操作,以得到配置好的通知策略和通知服务器;所述通知策略和通知服务器和通知消息体相关联;
其中,所述资源配置操作包括对通知策略对应资源、通知服务器对应资源的增、删、改、查。
在一些实施例中,所述的通知信息处理装置中的配置模块,在Kubernetes集群中进行通知策略和通知服务器的资源配置操作时,具体用于:
根据发送通知消息体时要使用的第三方服务器的配置信息,配置通知服务器的原生资源;所述通知消息体是Kubernetes集群运行过程中生成的信息;
配置通知消息体要发送的通知联系对象;所述通知联系对象包括通知联系人和/或通知联系组;
根据用户所需的通知消息体的格式,配置通知消息体对应的通知模板;
配置通知消息体关联的通知策略,并关联所述通知联系对象和通知模板,指定发送通知的通知发送方式。
在一些实施例中,所述的通知信息处理装置中的配置模块,在配置通知消息体要发送的通知联系对象时,具体用于:
根据通知消息体要发送的通知联系人的属性信息,创建通知联系对象中的联系人;
根据通知联系人的集合以及该集合中通知联系人的共有属性,创建通知联系对象中的通知联系组。
在一些实施例中,所述的通知信息处理装置中的创建模块,在Kubernetes集群中创建参数合法的通知消息的虚拟资源时,具体用于:
创建一通知消息的虚拟资源;
拦截创建的所述通知消息,判断通知消息的参数是否符合预设通知消息检测规则;其中,预设通知消息检测规则至少包括以下之一:检测用户是否有权限的权限检测规则、检测消息体格式是否合法的消息体检测规范、检测通知消息中的通知策略是否存在的通知策略检测规则;
若符合,则创建参数合法的通知消息;
若不符合,则返回资源创建失败的报错信息。
在一些实施例中,所述的通知信息处理装置中的创建模块,在Kubernetes集群中创建参数合法的通知消息的虚拟资源时,具体用于:
获取Kubernetes集群运行过程中生成的通知消息体;
基于通知消息体的属性信息,确定与通知消息体关联的通知策略;
结合所述通知消息体、和所述通知消息体关联的通知策略,创建参数合法的通知消息的虚拟资源。
在一些实施例中,所述的通知信息处理装置中的查找模块,所述根据通知消息中的通知策略查找与通知消息匹配的目标资源时,具体用于:
根据所述通知消息中的通知策略,分别查找通知联系对象中的通知联系人、通知联系对象中的通知联系组、通知模板、发送通知时所需的通知服务器的资源,得到通知联系人、通知联系对象中的通知联系组、通知模板的资源查找结果;
跳过资源查找结果为不存在的资源,基于资源查找结果为存在的资源确定与通知消息匹配的目标资源。
在一些实施例中,所述的通知信息处理装置还包括:
第一判断模块,用于在当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息之前,判断目标资源是否符合预设资源检测规则;其中,所述预设资源检测规则包括:检测是否有必要资源不存在的第一资源检测规则,和/或检测每种目标资源的配置是否合法的第二资源检测规则;
若不符合,则返回虚拟资源创建失败的报错信息;
若符合,则确定所述目标资源合法。
在一些实施例中,所述的通知信息处理装置还包括:
第二判断模块,用于在将目标格式的目标通知信息发送给目标通知联系对象之后,基于所述虚拟资源是否创建成功,判断目标格式的目标通知信息是否发送成功;
若所述虚拟资源创建失败,则返回资源创建失败的报错信息;
若所述虚拟资源创建成功,则确定目标通知信息发送成功。
基于同一发明构思,本申请实施例中还提供了与通知信息处理方法对应的电子设备,由于本申请实施例中的电子设备解决问题的原理与本申请实施例上述通知信息处理方法相似,因此电子设备的实施可以参见方法的实施,重复之处不再赘述。
请参照图8,图8示出了本申请实施例所述电子设备的结构示意图,所述电子设备800,包括:处理器802、存储器801和总线,所述存储器801存储有所述处理器802可执行的机器可读指令,当电子设备800运行时,所述处理器802与所述存储器801之间通过总线通信,所述机器可读指令被所述处理器802执行时执行所述的通知信息处理方法的步骤。
基于同一发明构思,本申请实施例中还提供了与通知信息处理方法对应的计算机可读存储介质,由于本申请实施例中的计算机可读存储介质解决问题的原理与本申请实施例上述通知信息处理方法相似,因此计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行所述的通知信息处理方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,平台服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种通知信息处理方法,其特征在于,所述方法包括:
根据发送通知消息体时要使用的第三方服务器的配置信息,配置通知服务器的原生资源;所述通知消息体是Kubernetes集群运行过程中生成的信息;配置通知消息体要发送的通知联系对象;所述通知联系对象包括通知联系人和/或通知联系组;根据用户所需的通知消息体的格式,配置通知消息体对应的通知模板;配置通知消息体关联的通知策略,并关联所述通知联系对象和通知模板,指定发送通知的通知发送方式;在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;
根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;
当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;
根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象。
2.根据权利要求1所述的通知信息处理方法,其特征在于,在Kubernetes集群中创建参数合法的通知消息的虚拟资源之前,所述方法还包括:
在Kubernetes集群中进行通知策略和通知服务器的资源配置操作,以得到配置好的通知策略和通知服务器;所述通知策略和通知服务器和通知消息体相关联;
其中,所述资源配置操作包括对通知策略对应资源、通知服务器对应资源的增、删、改、查。
3.根据权利要求1所述的通知信息处理方法,其特征在于,配置通知消息体要发送的通知联系对象,包括:
根据通知消息体要发送的通知联系人的属性信息,创建通知联系对象中的联系人;
根据通知联系人的集合以及该集合中通知联系人的共有属性,创建通知联系对象中的通知联系组。
4.根据权利要求1所述的通知信息处理方法,其特征在于,在Kubernetes集群中创建参数合法的通知消息的虚拟资源,包括:
创建一通知消息的虚拟资源;
拦截创建的所述通知消息,判断通知消息的参数是否符合预设通知消息检测规则;其中,预设通知消息检测规则至少包括以下之一:检测用户是否有权限的权限检测规则、检测消息体格式是否合法的消息体检测规范、检测通知消息中的通知策略是否存在的通知策略检测规则;
若符合,则创建参数合法的通知消息;
若不符合,则返回资源创建失败的报错信息。
5.根据权利要求1所述的通知信息处理方法,其特征在于,在Kubernetes集群中创建参数合法的通知消息的虚拟资源,包括:
获取Kubernetes集群运行过程中生成的通知消息体;
基于通知消息体的属性信息,确定与通知消息体关联的通知策略;
结合所述通知消息体、和所述通知消息体关联的通知策略,创建参数合法的通知消息的虚拟资源。
6.根据权利要求1所述的通知信息处理方法,其特征在于,所述根据通知消息中的通知策略查找与通知消息匹配的目标资源,包括:
根据所述通知消息中的通知策略,分别查找通知联系对象中的通知联系人、通知联系对象中的通知联系组、通知模板、发送通知时所需的通知服务器的资源,得到通知联系人、通知联系对象中的通知联系组、通知模板的资源查找结果;
跳过资源查找结果为不存在的资源,基于资源查找结果为存在的资源确定与通知消息匹配的目标资源。
7.根据权利要求1所述的通知信息处理方法,其特征在于,在当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息之前,所述方法还包括:
判断目标资源是否符合预设资源检测规则;其中,所述预设资源检测规则包括:检测是否有必要资源不存在的第一资源检测规则,和/或检测每种目标资源的配置是否合法的第二资源检测规则;
若不符合,则返回虚拟资源创建失败的报错信息;
若符合,则确定所述目标资源合法。
8.根据权利要求1所述的通知信息处理方法,其特征在于,将目标格式的目标通知信息发送给目标通知联系对象之后,所述方法还包括:
基于所述虚拟资源是否创建成功,判断目标格式的目标通知信息是否发送成功;
若所述虚拟资源创建失败,则返回资源创建失败的报错信息;
若所述虚拟资源创建成功,则确定目标通知信息发送成功。
9.一种通知信息处理装置,其特征在于,所述装置包括:
创建模块,用于根据发送通知消息体时要使用的第三方服务器的配置信息,配置通知服务器的原生资源;所述通知消息体是Kubernetes集群运行过程中生成的信息;配置通知消息体要发送的通知联系对象;所述通知联系对象包括通知联系人和/或通知联系组;根据用户所需的通知消息体的格式,配置通知消息体对应的通知模板;配置通知消息体关联的通知策略,并关联所述通知联系对象和通知模板,指定发送通知的通知发送方式;在Kubernetes集群中创建参数合法的通知消息的虚拟资源;所述通知消息包括通知消息体和预先配置好的通知策略;所述通知策略包括通知联系对象、通知发送方式和通知模板;
查找模块,用于根据通知消息中的通知策略查找与通知消息匹配的目标资源;所述目标资源包括以下至少之一:目标通知联系对象、目标通知模板、发送通知时所需的通知服务器;
转换模块,用于当所述目标资源合法时,根据所述目标通知模板渲染通知消息中的通知消息体,将通知消息体转换为目标格式的目标通知信息;
发送模块,用于根据目标联系对象和通知消息对应的通知服务器,按照通知消息中的通知发送方式,将目标格式的目标通知信息发送给目标通知联系对象。
CN202311322691.2A 2023-10-13 2023-10-13 一种通知信息处理方法及装置 Active CN117056174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311322691.2A CN117056174B (zh) 2023-10-13 2023-10-13 一种通知信息处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311322691.2A CN117056174B (zh) 2023-10-13 2023-10-13 一种通知信息处理方法及装置

Publications (2)

Publication Number Publication Date
CN117056174A CN117056174A (zh) 2023-11-14
CN117056174B true CN117056174B (zh) 2024-01-19

Family

ID=88655824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311322691.2A Active CN117056174B (zh) 2023-10-13 2023-10-13 一种通知信息处理方法及装置

Country Status (1)

Country Link
CN (1) CN117056174B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259430A (zh) * 2021-05-11 2021-08-13 京东数字科技控股股份有限公司 一种消息调用方法和装置、电子设备及存储介质
CN114217951A (zh) * 2021-11-09 2022-03-22 新浪网技术(中国)有限公司 一种多云多集群的kubernetes集群管理方法及系统
CN115858196A (zh) * 2022-11-29 2023-03-28 沈阳尚源智慧科技有限公司 一种敏捷事件处理方法及其通知系统
CN116841786A (zh) * 2023-06-25 2023-10-03 浪潮通信技术有限公司 基于rfc5424协议的审计日志处理方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114868113A (zh) * 2019-11-07 2022-08-05 瑞典爱立信有限公司 计算机网络节点管理系统中的分散式集群联邦
US11895193B2 (en) * 2020-07-20 2024-02-06 Juniper Networks, Inc. Data center resource monitoring with managed message load balancing with reordering consideration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259430A (zh) * 2021-05-11 2021-08-13 京东数字科技控股股份有限公司 一种消息调用方法和装置、电子设备及存储介质
CN114217951A (zh) * 2021-11-09 2022-03-22 新浪网技术(中国)有限公司 一种多云多集群的kubernetes集群管理方法及系统
CN115858196A (zh) * 2022-11-29 2023-03-28 沈阳尚源智慧科技有限公司 一种敏捷事件处理方法及其通知系统
CN116841786A (zh) * 2023-06-25 2023-10-03 浪潮通信技术有限公司 基于rfc5424协议的审计日志处理方法及系统

Also Published As

Publication number Publication date
CN117056174A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
US11209964B1 (en) System and method for reacting to messages
KR101863981B1 (ko) 텍스트 메시지를 사용하여 스프레드시트와 상호작용하는 기법
WO2015078402A1 (en) Method, apparatus and device for exchanging name card
CN103118140B (zh) 将文件分享给关系圈外其他用户终端的方法、系统及装置
CN107992537B (zh) 业务属性传递方法、装置、计算机设备及存储介质
US10972564B2 (en) System and method for automating actions in distributed computing
CN109088812B (zh) 信息处理方法、装置、计算机设备和存储介质
US10594735B2 (en) Tag-based security policy creation in a distributed computing environment
CN112055078B (zh) 一种数据传输方法、装置、计算机设备和存储介质
US11763219B2 (en) Titanium task-engine system
CN113839977A (zh) 消息推送方法、装置、计算机设备及存储介质
CN109391658B (zh) 一种账号数据同步方法及其设备、存储介质、终端
CN117056174B (zh) 一种通知信息处理方法及装置
US20230300092A1 (en) Multichannel messaging system and method
CN112380411B (zh) 敏感词处理方法、装置、电子设备、系统及存储介质
CN112073395B (zh) 一种文件分发方法和装置
CN106709060B (zh) 一种数据共享方法及系统
CN110888901B (zh) 系统管理方法、装置、计算机设备和存储介质
CN111459907B (zh) 通过模型配置主数据的方法、系统及存储介质
CN114489674A (zh) 动态数据模型的数据校验方法和装置
CN102982438B (zh) 从多个联系人来构建人
CN112988879A (zh) 访问数据库的方法、系统、装置、存储介质及处理器
CN116662016B (zh) 端口切换方法、装置、计算机设备、存储介质和程序产品
CN113626409B (zh) 一种测试资料处理方法、装置、设备及存储介质
CN114338903B (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