CN113794620B - 消息发送方法、装置、设备、系统与存储介质 - Google Patents
消息发送方法、装置、设备、系统与存储介质 Download PDFInfo
- Publication number
- CN113794620B CN113794620B CN202110851401.8A CN202110851401A CN113794620B CN 113794620 B CN113794620 B CN 113794620B CN 202110851401 A CN202110851401 A CN 202110851401A CN 113794620 B CN113794620 B CN 113794620B
- Authority
- CN
- China
- Prior art keywords
- message
- target
- sending
- verification
- target message
- 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
Links
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种消息发送方法、装置、设备、系统与存储介质,所述方法用于消息服务系统,所述方法包括:从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;对所述目标消息进行消息校验,得到校验结果;若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。本发明提供的消息发送方法、装置、设备、系统与存储介质,实现了对消息发送的统一化管理,提高了消息发送的可靠性和可扩展性。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种消息发送方法、装置、设备、系统与存储介质。
背景技术
消息发送的途径包括很多,比如可以通过邮件、短信、蓝信等各种方式发送消息。
但是,现有技术实现的消息发送,因不同业务模块各自实现一套程序,存在以下问题:(一)、因各业务模块消息发送程序实现不统一,解析逻辑不一致,导致可读性差,维护成本大,且容易出错;(二)、因各业务模块各自维护一套配置消息导致在出现配置变更时,需要各个业务模块都跟着变更一遍,维护成本大,且容易出错;(三)、相同的消息发送方式会在不同的业务模块都实现一遍,且可扩展性差。
发明内容
针对现有技术存在的问题,本发明提供一种消息发送方法、装置、设备、系统与存储介质。
本发明提供一种消息发送方法,所述方法用于消息服务系统,所述方法包括:
从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
对所述目标消息进行消息校验,得到校验结果;
若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。
根据本发明提供的一种消息发送方法,所述消息服务系统包括分布式消息队列Nats-MQ;
所述从业务系统获取待发送的目标消息,包括:
监听所述分布式消息队列Nats-MQ中来自所述业务系统的所述目标消息。
根据本发明提供的一种消息发送方法,所述消息服务系统包括分布式消息队列Nats-MQ和第一应用程序接口API;
所述从业务系统获取待发送的目标消息,包括:
监听所述分布式消息队列Nats-MQ中来自所述第一应用程序接口API的所述目标消息,所述第一应用程序接口API用于接收来自所述业务系统的所述目标消息,并同步至所述分布式消息队列Nats-MQ中。
根据本发明提供的一种消息发送方法,所述对所述目标消息进行消息校验,得到校验结果,包括:
根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验;
若所述第一次校验为校验通过,则确定所述目标消息的消息类型,根据所述消息类型对所述目标消息的设定字段进行第二次校验,所述设定字段与所述消息类型相对应;
若所述第二次校验为校验通过,则确定所述校验结果为通过校验。
根据本发明提供的一种消息发送方法,所述根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验,包括:
通过数据传输对象DTO方式对所述目标消息进行第一次校验。
根据本发明提供的一种消息发送方法,还包括:
将所述目标消息保存至所述消息服务系统的设定区域;
或,
将所述目标消息发送至所述目标消息对应的目标地址的同时,采用多线程同步机制将所述目标消息保存至所述消息服务系统的设定区域。
根据本发明提供的一种消息发送方法,还包括:
检测所述目标消息是否发送成功;
若确定所述目标消息发送成功,则将用于指示所述发送成功的第一发送结果保存至所述消息服务系统的设定区域;
若确定所述目标消息发送失败,则按照所述发送方式将所述目标消息重新发送至所述目标消息对应的目标地址;其中,若检测到重新发送次数小于或等于设定失败重试次数时所述目标消息为发送成功,则将所述第一发送结果保存至所述设定区域或采用多线程异步回调将所述第一发送结果保存至所述设定区域,若检测到所述重新发送次数等于所述设定失败重试次数时所述目标消息为发送失败,则停止重新发送所述目标消息,将用于指示所述发送失败的第二发送结果保存至所述设定区域或采用多线程异步回调将所述第二发送结果保存至所述设定区域。
根据本发明提供的一种消息发送方法,所述消息服务系统包括第二应用程序接口API;
通过所述第二应用程序接口API接收来自所述业务系统的查询请求消息,所述查询请求消息用于查询所述目标消息的发送结果;
根据所查询请求消息从所述设定区域获取所述目标消息的发送结果,所述目标消息的发送结果为所述第一发送结果或所述第二发送结果;
通过所述第二应用程序接口API将所述第一发送结果或所述第二发送结果发送至所述业务系统。
本发明还提供了一种消息发送装置,所述装置用于消息服务系统,所述装置包括:
获取模块,用于从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
校验模块,用于对所述目标消息进行消息校验,得到校验结果;
发送模块,用于若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述消息发送方法的步骤。
本发明还提供一种消息管理系统,包括业务系统和消息发送系统;其中,所述业务系统用于按照设定消息体结构组装成的待发送的目标消息,以及将所述目标消息发送至所述消息发送系统;所述消息服务系统用于执行上述任一种所述消息发送方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述消息发送方法的步骤。
本发明还提供一种计算机程序产品,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述消息发送方法的步骤。
本发明提供的消息发送方法、装置、设备、系统与存储介质,通过对业务系统按照设定消息体结构组装成的目标消息进行消息校验,若校验结果为通过校验,则根据目标消息的消息类型确定目标消息对应的发送方式,按照该发送方式将目标消息发送至目标消息对应的目标地址,从而实现了对消息发送的统一化管理,提高了消息发送的可靠性和可扩展性;并且,通过为各个业务系统提供统一的设定消息体结构,这样有利于统一各个业务系统发送的目标消息,使得所有消息解析归一化处理,从而避免了代码混乱,可读性差等问题;还有将业务程序和消息发送程序解耦,使得消息发送服务复用性增强,因独立后的消息发送服务是微服务架构,平台移植性强。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的消息发送方法的流程示意图;
图2是本发明提供的消息发送方法的场景示意图之一;
图3是本发明提供的消息发送方法的场景示意图之二;
图4是本发明提供的消息发送方法的场景示意图之三;
图5是本发明提供的消息发送方法的另一流程示意图;
图6是本发明提供的消息发送方法的再一流程示意图;
图7是本发明提供的消息发送装置的结构示意图;
图8是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图8描述本发明的消息发送方法、装置、设备、系统与存储介质。
图1是本发明提供的消息发送方法的流程示意图,如图1所示,本发明的消息发送方法可以应用于消息服务系统,该消息发送方法可以包括以下步骤:
步骤101、从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息。
具体地,用于本发明的消息服务系统可以提供统一的设定消息体结构,可供不同业务系统使用。而业务系统也可以根据各自业务需求,按照设定消息体结构组装成目标消息。
比如:设定消息体结构可以包括但不限于以下结构形式:
步骤102、对所述目标消息进行消息校验,得到校验结果。
具体地,用于本发明的消息服务系统在获取到目标消息后,可以根据设定消息体结构对目标消息进行消息校验,得到校验结果,若通过校验,则确定可以对该目标消息进行消息发送;若未通过校验,则向业务系统返回用于指示未通过校验的异常消息。
步骤103、若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。
具体地,目标消息的消息类型可以包括多种,比如:站内信、邮件、短信、蓝信、微信、钉钉等。
目标消息对应的发送方式是与消息类型相对应的。
比如:消息类型为站内信,消息服务系统可以通过WebSocket方式,实时把监听到的目标消息推送给web前端。其中,WebSocket是一种基于传输控制协议(TransmissionControl Protocol,TCP)的全双工通信协议。
又比如:消息类型为邮件、短信、蓝信、微信、钉钉等,消息服务系统可以通过该消息类型的配置消息(例如,网关、用户名、密码、令牌(token)等)对目标消息进行二次组装,再将二次组装后的目标消息发送至该目标消息对应的目标地址。
目标消息对应的目标地址可以指的是目标消息的接收者。比如:邮件接收者、短信接收者、蓝信接收者。
本发明提供的消息发送方法通过对业务系统按照设定消息体结构组装成的目标消息进行消息校验,若校验结果为通过校验,则根据目标消息的消息类型确定目标消息对应的发送方式,按照该发送方式将目标消息发送至目标消息对应的目标地址,从而实现了对消息发送的统一化管理,提高了消息发送的可靠性和可扩展性;并且,通过为各个业务系统提供统一的设定消息体结构,这样有利于统一各个业务系统发送的目标消息,使得所有消息解析归一化处理,从而避免了代码混乱,可读性差等问题;还有将业务程序和消息发送程序解耦,使得消息发送服务复用性增强,因独立后的消息发送服务是微服务架构,平台移植性强。
基于上述任一实施例,在本实施例中,所述消息服务系统包括分布式消息队列(Nats-Message Queue,Nats-MQ);在执行步骤101,可以包括:
监听所述分布式消息队列(Nats-MQ)中来自所述业务系统的所述目标消息。
具体地,如图2所示,分布式消息队列(Nats-MQ)是消息服务系统中重要的组件,用于接收来自业务系统的目标消息。消息服务系统(例如:图2中的监听模块(即NatListeners))可以实时监听分布式消息队列(Nats-MQ)接收到的目标消息。
本发明提供的消息发送方法可以通过分布式消息队列(Nats-MQ)获取业务系统的目标消息,提高了获取目标消息的效率。
基于上述任一实施例,在本实施例中,所述消息服务系统包括分布式消息队列(Nats-MQ)和第一应用程序接口(Application Programming Interface,API);在执行步骤101,可以包括:
监听所述分布式消息队列(Nats-MQ)中来自所述第一API的所述目标消息,所述第一API用于接收来自所述业务系统的所述目标消息,并同步至所述分布式消息队列(Nats-MQ)中。
具体地,如图3所示,消息服务系统可以包括以下两种接收目标消息的方式:
方式一、分布式消息队列(Nats-MQ)
具体地,分布式消息队列(Nats-MQ)是消息服务系统中重要的组件,可以用来直接接收来自业务系统的目标消息。
方式二、API(即图3中的API1)
具体地,API1为消息服务系统为业务系统(即图3中的平台、系统模块、终端等)提供统一的API服务接口,可以用于直接接收来自业务系统的目标消息,并将该目标消息同步至分布式消息队列(Nats-MQ)。
上述两种方式,若消息量较大,由于API1接收消息性能没有分布式消息队列(Nats-MQ)接收消息性能高,可以优选采用分布式消息队列(Nats-MQ)。
另外,若有的业务系统(如图4中的平台、系统模块、终端等)没有引用分布式消息队列(Nats-MQ)的客户端代码,可以直接将目标消息发送至API1,再由API1将该目标消息同步至分布式消息队列(Nats-MQ)。
消息服务系统(例如:图3或图4中的监听模块(即NatListeners))可以实时监听分布式消息队列(Nats-MQ)接收到的目标消息,这里的目标消息可以包括业务系统直接发送至分布式消息队列(Nats-MQ)的消息,也包括业务系统直接发送至API1,再由API1同步至分布式消息队列(Nats-MQ)的消息。
本发明提供的消息发送方法可以通过分布式消息队列(Nats-MQ)或API获取业务系统的目标消息,提高了获取目标消息的灵活性。并且,通过为业务系统提供统一的API服务接口,这样可以避免同样操作接口重复开发,降低了资源消耗。
基于上述任一实施例,在本实施例中,在执行步骤102,可以包括:
根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验;
若所述第一次校验为校验通过,则确定所述目标消息的消息类型,根据所述消息类型对所述目标消息的设定字段进行第二次校验,所述设定字段与所述消息类型相对应;
若所述第二次校验为校验通过,则确定所述校验结果为通过校验。
具体地,设定消息体结构中包括各个设定参数可以包括消息标题、消息ID、消息内容、消息级别、消息源、发送者、接收者等。其中,不同消息类型的目标消息其对应的设定消息体结构可以是相同的。
在对目标消息进行消息校验时,可以先做基本消息格式的校验(即第一次校验),比如:进行基础校验不为空、消息类型校验等;若通过基本消息的校验,再做深层次的校验(即第二次校验),比如:对邮箱、短信、站内信的个性字段(即一个或多个设定字段)进行校验,若通过深层次的校验,则确定校验成功,可以执行后续的消息发送。
其中,不同消息类型对应的设定字段可以相同,也可以不同。
比如:消息类型为短信,则设定字段为发送者和接收者手机号,深层次的校验为发送者和接收者手机号不能够为空。
又比如:消息类型为邮件,则设定字段为发送者和接收者邮箱,深层次的校验为发送者和接收者邮箱不能够为空、且是否正确等。
又比如:消息类型为站内信,则设定字段为接收者ID,深层次的校验为接收者ID是否属于系统用户,若是系统用户,才可以通过WebSocket方式接收到目标消息,否则,接收不到目标消息。
又比如:消息类型为蓝信,则设定字段为接收者手机号,深层次的校验为接收者手机号不能够为空、且正确。
本发明提供的消息发送方法可以通过对目标消息进行两次校验,若均通过,才可以进行消息发送,从而提高了消息发送的准确性和安全性。
基于上述任一实施例,在本实施例中,在根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验时,包括采用但不限于以下校验方式:
通过数据传输对象(Data Transfer Object,DTO)方式对所述目标消息进行第一次校验。
具体地,DTO是数据传输对象,对象中会有很多属性,在DTO中可以对这些属性,通过函数方式,做非空、数据类型以及默认值校验。
除了上述DTO方式之外,还可以在程序逻辑中进行逻辑校验。与DTO方式相比,DTO方式面向对象方式校验,代码完整性比较好,且代码比较简洁。
在本实施例中,如图5所示,消息服务系统和业务系统之间实现消息发送的过程可以包括:
(1)消息服务系统实时监听目标消息,若监听到目标消息,则对目标消息进行解码;若未监听到目标消息,则继续监听。
(2)对目标消息进行基础消息格式校验(即第一次校验)和消息完整性校验(即第二次校验),若通过校验,则进行消息存储和消息发送流程;若为通过校验,则只存储,标记校验失败。
本发明提供的消息发送方法可以通过DTO方式对目标消息进行第一次校验,从而提高了消息验证的效率。
基于上述任一实施例,在本实施例中,该消息发送方法可以包括还可以包括:
将所述目标消息保存至所述消息服务系统的设定区域;
或,
将所述目标消息发送至所述目标消息对应的目标地址的同时,采用多线程同步机制将所述目标消息保存至所述消息服务系统的设定区域。
具体地,如图2或图3或图4所示,消息服务系统可启动多线程同步机制,在将目标消息发送至对应的目标地址时,将目标消息保存至消息服务系统的设定区域,即图2或图3或图4所示的消息落库。另外,若目标消息没有通过校验,也可以将该保存至消息服务系统的设定区域,并标记为校验失败,但不对该目标消息进行消息发送。
本发明提供的消息发送方法在将目标消息发送至对应的目标地址时,将目标消息保存至消息服务系统的设定区域,这样便于后续业务系统查询消息发送进展情况,提高了消息发送的实用性。
基于上述任一实施例,在本实施例中,该消息发送方法还可以包括:
检测所述目标消息是否发送成功;
若确定所述目标消息发送成功,则将用于指示所述发送成功的第一发送结果保存至所述消息服务系统的设定区域;
若确定所述目标消息发送失败,则按照所述发送方式将所述目标消息重新发送至所述目标消息对应的目标地址;其中,若检测到重新发送次数小于或等于设定失败重试次数时所述目标消息为发送成功,则将所述第一发送结果保存至所述设定区域或采用多线程异步回调将所述第一发送结果保存至所述设定区域,若检测到所述重新发送次数等于所述设定失败重试次数时所述目标消息为发送失败,则停止重新发送所述目标消息,将用于指示所述发送失败的第二发送结果保存至所述设定区域或采用多线程异步回调将所述第一发送结果保存至所述设定区域。
具体地,如图2或图3或图4所示,消息服务系统可启动多线程异步回调,获取针对目标消息的发送结果(即第一发送结果或第二发送结果),并将发送结果保存至消息服务系统的设定区域,即图2或图3或图4所示的更新库中消息发送结果。
针对发送异常,可以根据设定失败重试次数进行重新发送。其中,该设定失败重试次数可以是事先设置好的一个阈值,比如:3次,超过该阈值,就不再重复发送。并且,该设定失败重试次数也可以根据实际情况进行调整。
至于每次重新发送的间隔时间,可以根据具体的消息类型进行配置。
在本实施例中,如图6所示,消息服务系统实现消息发送的过程可以包括:
(1)针对校验通过的消息(即目标消息)可以进行消息落库存储,以及间隔设定时间发送目标消息。
(2)在发送目标消息时,可以根据该目标消息的消息类型选择对应的发送子模块进行发送,比如:站内信对应的是站内信发送子模块,邮件对应的是邮件发送子模块,短信对应的是短信发送子模块,蓝信对应的是蓝信发送子模块,等。并且,其中的各个消息发送子模块,包括解析该消息类型对应的配置信息(例如,网关、用户名、密码、令牌(token)等),并对目标消息进行二次组装,再将二次组装后的目标消息发送至该目标消息对应的目标地址。
(3)发送目标消息后,判断发送是否成功,则异步更新发送结果到库中;若不成功,则判断是否达到设定失败重试次数,若达到,则异步更新发送结果到库中,若未达到,则重新发送目标消息。
本发明提供的消息发送方法可以保存目标消息的发送结果,比如:发送成功或发送失败,尤其是发送失败时,还可以有设定次数的重新发送机会,从而提高了消息发送的可靠性。
基于上述任一实施例,在本实施例中,所述消息服务系统包括第二API;该消息发送方法还可以包括:
通过所述第二应用程序接口API接收来自所述业务系统的查询请求消息,所述查询请求消息用于查询所述目标消息的发送结果;
根据所查询请求消息从所述设定区域获取所述目标消息的发送结果,所述目标消息的发送结果为所述第一发送结果或所述第二发送结果;
通过所述第二应用程序接口API将所述第一发送结果或所述第二发送结果发送至所述业务系统。
具体地,第二API可以为图2或图3或图4所示的API2,该API2为消息服务系统为业务系统的业务模块(图2或图3或图4所示的业务模块)提供的另一API服务接口,可以用于业务系统从消息服务系统中查询目标消息的发送结果,比如:目标消息是否发送成功。
其中,图2或图3或图4所示的业务模块,主要实现所有消息检索查询,包括WebSocket推送,也是推送给业务模块的web端。图2或图3或图4所示的API2,主要服务于图2或图3或图4所示的业务模块,以及图2或图3或图4所示平台、系统模块、终端等。
本发明提供的消息发送方法可以为业务系统提供统一的API服务接口,用于为业务系统提供查询服务,这样可以避免同样操作接口重复开发,降低了资源消耗。并且,通过将业务程序和消息发送程序解耦,从而使得消息发送复用性增强。
下面对本发明提供的消息发送装置进行描述,下文描述的消息发送装置与上文描述的消息发送方法可相互对应参照。
图7是本发明提供的消息发送装置的结构示意图,所述消息发送装置可以用于消息发送系统,该消息发送装置可以包括:
获取模块71,用于从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
校验模块72,用于对所述目标消息进行消息校验,得到校验结果;
发送模块73,用于若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。
本发明提供的消息发送装置通过对业务系统按照设定消息体结构组装成的目标消息进行消息校验,若校验结果为通过校验,则根据目标消息的消息类型确定目标消息对应的发送方式,按照该发送方式将目标消息发送至目标消息对应的目标地址,从而实现了对消息发送的统一化管理,提高了消息发送的可靠性和可扩展性;并且,通过为各个业务系统提供统一的设定消息体结构,这样有利于统一各个业务系统发送的目标消息,使得所有消息解析归一化处理,从而避免了代码混乱,可读性差等问题;还有将业务程序和消息发送程序解耦,使得消息发送服务复用性增强,因独立后的消息发送服务是微服务架构,平台移植性强。
基于上述任一实施例,在本实施例中,所述消息服务系统包括分布式消息队列Nats-MQ;所述获取模块71具体用于:
监听所述分布式消息队列Nats-MQ中来自所述业务系统的所述目标消息。
本发明提供的消息发送装置可以通过分布式消息队列Nats-MQ获取业务系统的目标消息,提高了获取目标消息的效率。
基于上述任一实施例,在本实施例中,所述消息服务系统包括分布式消息队列Nats-MQ和第一应用程序接口API;所述获取模块71具体用于:
监听所述分布式消息队列Nats-MQ中来自所述第一应用程序接口API的所述目标消息,所述第一应用程序接口API用于接收来自所述业务系统的所述目标消息,并同步至所述分布式消息队列Nats-MQ中。
本发明提供的消息发送装置可以通过分布式消息队列Nats-MQ或API获取业务系统的目标消息,提高了获取目标消息的灵活性。并且,通过为业务系统提供统一的API服务接口,这样可以避免同样操作接口重复开发,降低了资源消耗。
基于上述任一实施例,在本实施例中,所述校验模块72包括:
第一校验子模块,用于根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验;
第二校验子模块,用于若所述第一次校验为校验通过,则确定所述目标消息的消息类型,根据所述消息类型对所述目标消息的设定字段进行第二次校验,所述设定字段与所述消息类型相对应;
校验确定子模块,用于若所述第二次校验为校验通过,则确定所述校验结果为通过校验。
本发明提供的消息发送装置可以通过对目标消息进行两次校验,若均通过,才可以进行消息发送,从而提高了消息发送的准确性和安全性。
基于上述任一实施例,在本实施例中,所述第一校验子模块具体用于:
通过数据传输对象DTO方式对所述目标消息进行第一次校验。
本发明提供的消息发送装置可以通过DTO方式对目标消息进行第一次校验,从而提高了消息验证的效率。
基于上述任一实施例,在本实施例中,该消息发送装置还可以包括:
第一存储模块,用于将所述目标消息保存至所述消息服务系统的设定区域;
或,
将所述目标消息发送至所述目标消息对应的目标地址的同时,采用多线程同步机制将所述目标消息保存至所述消息服务系统的设定区域。
本发明提供的消息发送装置在将目标消息发送至对应的目标地址时,将目标消息保存至消息服务系统的设定区域,这样便于后续业务系统查询消息发送进展情况,提高了消息发送的实用性。
基于上述任一实施例,在本实施例中,该消息发送装置还可以包括:
检测模块,用于检测所述目标消息是否发送成功;
第二存储模块,用于若确定所述目标消息发送成功,则将用于指示所述发送成功的第一发送结果保存至所述消息服务系统的设定区域或采用多线程异步回调将所述第一发送结果保存至所述设定区域;
第三存储模块,用于若确定所述目标消息发送失败,则按照所述发送方式将所述目标消息重新发送至所述目标消息对应的目标地址;其中,若检测到重新发送次数小于或等于设定失败重试次数时所述目标消息为发送成功,则将所述第一发送结果保存至所述设定区域或采用多线程异步回调将所述第一发送结果保存至所述设定区域,若检测到所述重新发送次数等于所述设定失败重试次数时所述目标消息为发送失败,则停止重新发送所述目标消息,将用于指示所述发送失败的第二发送结果保存至所述设定区域或采用多线程异步回调将所述第二发送结果保存至所述设定区域。
本发明提供的消息发送装置可以保存目标消息的发送结果,比如:发送成功或发送失败,尤其是发送失败时,还可以有设定次数的重新发送机会,从而提高了消息发送的可靠性。
基于上述任一实施例,在本实施例中,所述消息服务系统包括第二应用程序接口API;该消息发送装置还可以包括:
接收模块,用于通过所述第二应用程序接口API接收来自所述业务系统的查询请求消息,所述查询请求消息用于查询所述目标消息的发送结果;
查询模块,用于根据所查询请求消息从所述设定区域获取所述目标消息的发送结果,所述目标消息的发送结果为所述第一发送结果或所述第二发送结果;
响应模块,用于通过所述第二应用程序接口API将所述第一发送结果或所述第二发送结果发送至所述业务系统。
本发明提供的消息发送装置可以为业务系统提供统一的API服务接口,用于为业务系统提供查询服务,这样可以避免同样操作接口重复开发,降低了资源消耗。并且,通过将业务程序和消息发送程序解耦,从而使得消息发送复用性增强。
图8是本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以用于消息发送系统,包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行消息发送方法,该方法包括:
从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
对所述目标消息进行消息校验,得到校验结果;
若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种消息管理系统,包括上述任一实施例所示的消息发送系统和业务系统;
其中,所述业务系统用于按照设定消息体结构组装成的待发送的目标消息,以及将所述目标消息发送至所述消息发送系统。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的消息发送方法,该方法包括:
从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
对所述目标消息进行消息校验,得到校验结果;
若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的消息发送方法,该方法包括:
从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
对所述目标消息进行消息校验,得到校验结果;
若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种消息发送方法,其特征在于,所述方法用于消息服务系统,所述方法包括:
从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
对所述目标消息进行消息校验,得到校验结果;
若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址;
所述对所述目标消息进行消息校验,得到校验结果,包括:
根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验;
若所述第一次校验为校验通过,则确定所述目标消息的消息类型,根据所述消息类型对所述目标消息的设定字段进行第二次校验,所述设定字段与所述消息类型相对应;
若所述第二次校验为校验通过,则确定所述校验结果为通过校验。
2.根据权利要求1所述的消息发送方法,其特征在于,所述消息服务系统包括分布式消息队列Nats-MQ;
所述从业务系统获取待发送的目标消息,包括:
监听所述分布式消息队列Nats-MQ中来自所述业务系统的所述目标消息。
3.根据权利要求1所述的消息发送方法,其特征在于,所述消息服务系统包括分布式消息队列Nats-MQ和第一应用程序接口API;
所述从业务系统获取待发送的目标消息,包括:
监听所述分布式消息队列Nats-MQ中来自所述第一应用程序接口API的所述目标消息,所述第一应用程序接口API用于接收来自所述业务系统的所述目标消息,并同步至所述分布式消息队列Nats-MQ中。
4.根据权利要求1所述的消息发送方法,其特征在于,所述根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验,包括:
通过数据传输对象DTO方式对所述目标消息进行第一次校验。
5.根据权利要求1所述的消息发送方法,其特征在于,还包括:
将所述目标消息保存至所述消息服务系统的设定区域;
或,
将所述目标消息发送至所述目标消息对应的目标地址的同时,采用多线程同步机制将所述目标消息保存至所述消息服务系统的设定区域。
6.根据权利要求1或5所述的消息发送方法,其特征在于,还包括:
检测所述目标消息是否发送成功;
若确定所述目标消息发送成功,则将用于指示所述发送成功的第一发送结果保存至所述消息服务系统的设定区域或采用多线程异步回调将所述第一发送结果保存至所述设定区域;
若确定所述目标消息发送失败,则按照所述发送方式将所述目标消息重新发送至所述目标消息对应的目标地址;其中,若检测到重新发送次数小于或等于设定失败重试次数时所述目标消息为发送成功,则将所述第一发送结果保存至所述设定区域或采用多线程异步回调将所述第一发送结果保存至所述设定区域,若检测到所述重新发送次数等于所述设定失败重试次数时所述目标消息为发送失败,则停止重新发送所述目标消息,将用于指示所述发送失败的第二发送结果保存至所述设定区域或采用多线程异步回调将所述第二发送结果保存至所述设定区域。
7.根据权利要求6所述的消息发送方法,其特征在于,所述消息服务系统包括第二应用程序接口API;
所述方法还包括:
通过所述第二应用程序接口API接收来自所述业务系统的查询请求消息,所述查询请求消息用于查询所述目标消息的发送结果;
根据所查询请求消息从所述设定区域获取所述目标消息的发送结果,所述目标消息的发送结果为所述第一发送结果或所述第二发送结果;
通过所述第二应用程序接口API将所述第一发送结果或所述第二发送结果发送至所述业务系统。
8.一种消息发送装置,其特征在于,所述装置用于消息服务系统,所述装置包括:
获取模块,用于从业务系统获取待发送的目标消息,所述目标消息是所述业务系统按照设定消息体结构组装成的消息;
校验模块,用于对所述目标消息进行消息校验,得到校验结果;
发送模块,用于若所述校验结果为通过校验,则根据所述目标消息的消息类型确定所述目标消息对应的发送方式,按照所述发送方式将所述目标消息发送至所述目标消息对应的目标地址
所述校验模块包括:
第一校验子模块,用于根据所述设定消息体结构中包括的各个设定参数,对所述目标消息进行第一次校验;
第二校验子模块,用于若所述第一次校验为校验通过,则确定所述目标消息的消息类型,根据所述消息类型对所述目标消息的设定字段进行第二次校验,所述设定字段与所述消息类型相对应;
校验确定子模块,用于若所述第二次校验为校验通过,则确定所述校验结果为通过校验。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述消息发送方法的步骤。
10.一种消息管理系统,其特征在于,包括业务系统和消息发送系统;
其中,所述业务系统用于按照设定消息体结构组装成的待发送的目标消息,以及将所述目标消息发送至所述消息发送系统;
所述消息发送系统用于执行权利要求1至7任一项所述消息发送方法的步骤。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述消息发送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110851401.8A CN113794620B (zh) | 2021-07-27 | 2021-07-27 | 消息发送方法、装置、设备、系统与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110851401.8A CN113794620B (zh) | 2021-07-27 | 2021-07-27 | 消息发送方法、装置、设备、系统与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113794620A CN113794620A (zh) | 2021-12-14 |
CN113794620B true CN113794620B (zh) | 2023-07-25 |
Family
ID=78877000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110851401.8A Active CN113794620B (zh) | 2021-07-27 | 2021-07-27 | 消息发送方法、装置、设备、系统与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113794620B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513483A (zh) * | 2022-01-14 | 2022-05-17 | 上海万物新生环保科技集团有限公司 | 一种基于业务系统的消息通知方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049113A (zh) * | 2019-04-02 | 2019-07-23 | 中国联合网络通信集团有限公司 | 业务消息处理方法及装置 |
CN110213380A (zh) * | 2019-06-11 | 2019-09-06 | 深圳市思迪信息技术股份有限公司 | 一种消息推送方法、装置、计算机设备及存储介质 |
CN110505162A (zh) * | 2019-08-08 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 消息传输方法、装置及电子设备 |
CN111327519A (zh) * | 2020-02-17 | 2020-06-23 | 北京四信数字技术有限公司 | 一种多渠道消息内容的发送方法、装置、设备及存储介质 |
CN111371892A (zh) * | 2020-03-05 | 2020-07-03 | 中国银行股份有限公司 | 高并发分布式消息推送系统及方法 |
CN112187616A (zh) * | 2020-08-31 | 2021-01-05 | 五八到家有限公司 | 消息发送方法、设备及存储介质 |
CN112689005A (zh) * | 2020-12-21 | 2021-04-20 | 青岛海尔科技有限公司 | 消息发送方法及装置、存储介质、电子装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10754826B2 (en) * | 2015-11-19 | 2020-08-25 | Ctera Networks, Ltd. | Techniques for securely sharing files from a cloud storage |
US10673956B2 (en) * | 2017-11-03 | 2020-06-02 | International Business Machines Corporation | Control of an application session to accommodate different users |
-
2021
- 2021-07-27 CN CN202110851401.8A patent/CN113794620B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049113A (zh) * | 2019-04-02 | 2019-07-23 | 中国联合网络通信集团有限公司 | 业务消息处理方法及装置 |
CN110213380A (zh) * | 2019-06-11 | 2019-09-06 | 深圳市思迪信息技术股份有限公司 | 一种消息推送方法、装置、计算机设备及存储介质 |
CN110505162A (zh) * | 2019-08-08 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 消息传输方法、装置及电子设备 |
CN111327519A (zh) * | 2020-02-17 | 2020-06-23 | 北京四信数字技术有限公司 | 一种多渠道消息内容的发送方法、装置、设备及存储介质 |
CN111371892A (zh) * | 2020-03-05 | 2020-07-03 | 中国银行股份有限公司 | 高并发分布式消息推送系统及方法 |
CN112187616A (zh) * | 2020-08-31 | 2021-01-05 | 五八到家有限公司 | 消息发送方法、设备及存储介质 |
CN112689005A (zh) * | 2020-12-21 | 2021-04-20 | 青岛海尔科技有限公司 | 消息发送方法及装置、存储介质、电子装置 |
Non-Patent Citations (2)
Title |
---|
《pyModeS: Decoding Mode-S Surveillance Data for Open Air Transportation Research》;Junzi Sun 等;《IEEE》;20201231;全文 * |
《互联网企业线上服务实时监控系统研究》;奚圆圆;《中国优秀硕士学位论文全文数据库》;20170715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113794620A (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6686033B2 (ja) | メッセージをプッシュするための方法および装置 | |
US10110538B2 (en) | Method and apparatus for message transmission | |
CN109561159B (zh) | 一种基于Websocket长连接的数据处理方法及系统 | |
US10447796B2 (en) | Pushlet instant messaging framework and pushlet instant messaging method | |
US20060246889A1 (en) | Wireless Data Device Performance Monitor | |
CN111147196A (zh) | 数据传输方法、数据发送设备及数据接收设备 | |
CN113794620B (zh) | 消息发送方法、装置、设备、系统与存储介质 | |
CN103684707A (zh) | 服务端、用户端消息传输处理方法、消息传输方法及系统 | |
KR101213935B1 (ko) | 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법 | |
CN107172112B (zh) | 一种计算机文件传输方法及装置 | |
CN109286665B (zh) | 实时移动游戏长链接处理方法及装置 | |
WO2016074572A1 (zh) | 业务数据处理方法、装置及系统 | |
US8060568B2 (en) | Real time messaging framework hub to intercept and retransmit messages for a messaging facility | |
CN115658343A (zh) | 一种检测、处理分布式系统中消息顺序的方法及装置 | |
CN108880994B (zh) | 一种重发邮件的方法和装置 | |
EP1662704A2 (en) | Monitoring system, apparatus to be monitored, monitoring apparatus and monitoring method | |
CN104348711A (zh) | 消息接收装置及方法 | |
CN114040008A (zh) | 一种报文处理方法及装置 | |
CN112860770B (zh) | 报表生成的方法、装置、电子设备和存储介质 | |
CN111552907A (zh) | 消息处理方法、装置、设备和存储介质 | |
CN115174244B (zh) | 一种安全检测方法及系统 | |
CN109951520A (zh) | 一种数据传输方法、空气监测设备及存储介质 | |
CN112437144B (zh) | 一种提升单台边缘服务器iot设备接入数的方法及系统 | |
US20220182800A1 (en) | Message transmission in a multi-terminal context | |
CN113032123B (zh) | 一种远程npl运行环境的线程调度方法、系统及相关装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: Qianxin Technology Group Co.,Ltd. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: Qianxin Technology Group Co.,Ltd. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |