CN107248978A - 一种消息监听处理方法及系统 - Google Patents
一种消息监听处理方法及系统 Download PDFInfo
- Publication number
- CN107248978A CN107248978A CN201710391648.XA CN201710391648A CN107248978A CN 107248978 A CN107248978 A CN 107248978A CN 201710391648 A CN201710391648 A CN 201710391648A CN 107248978 A CN107248978 A CN 107248978A
- Authority
- CN
- China
- Prior art keywords
- message
- server
- return
- information
- processing
- 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.)
- Granted
Links
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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
-
- 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
- H04L67/30—Profiles
-
- 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/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种消息监听处理方法及系统,该系统包括:至少一个消息服务器和消息服务器连接模块;所述消息服务器包括:消息处理对象初始化单元、消息处理单元和消息发送单元。客户端根据预存储的服务器配置列表依次连接消息服务器,在连接上消息服务器后,初始化消息服务器中存储的消息处理类,得到至少一个消息处理对象,对消息服务器是否接收到客户端发送的服务器消息进行监听,并对接收到的服务器消息进行处理,通过消息生产者将返回消息处理后发送给消息服务器,实现了客户端与服务端之间的消息交互处理,通信效率较高,满足不同场合的通信需求。
Description
技术领域
本发明涉及消息处理技术领域,特别涉及一种消息监听处理方法及系统。
背景技术
传统的通信方式主要采用如下方式进行通信:客户端向服务器发送信息,提出请求,服务器接收客户端发来的请求,并能发送数据给客户端以做出回应。当我们用浏览器浏览网页,要查看某个文件时,我们的电脑会发出请求给文件服务器,文件服务器收到请求并同意后,将文件数据传送到我们的电脑。此时,电脑充当客户端的角色。电脑要和文件服务器交流,必须要规定通信的规矩,即协议,传统的协议比较复杂,大大降低了通信的效率,以及通信数据信息的准确性。
发明内容
本发明所要解决的技术问题是提供一种消息监听处理方法,该方法通过消息服务器中存储的消息处理类,初始化一个消息处理对象对发送到消息服务器的服务器消息进行监听,并进行处理,最终将处理结果返回消息服务器。
本发明解决上述技术问题的技术方案如下:一种消息监听处理方法,包括以下步骤:
S1、根据预存储的服务器配置列表中配置文件的顺序依次连接消息服务器;
S2、当消息服务器连接成功时,初始化所述消息服务器中存储的消息处理类,得到至少一个消息处理对象,每个所述消息处理对象中包括至少一个消息监听器和至少一个消息执行器,每个所述消息监听器实时监听所述消息服务器是否接收到新的服务器消息;
S3、当所述消息服务器接收到新的服务器消息时,监听到所述消息服务器接收到新的服务器消息的消息监听器根据接收到的服务器消息,从所述至少一个消息执行器中找到至少一个匹配消息执行器,通过所述至少一个匹配消息执行器对所述服务器消息进行处理,得到至少一个返回消息;
S4、确定所述服务器消息的消息生产者,通过所述消息生产者对所述至少一个返回消息进行序列化和压缩后,发送给所述消息服务器。
本发明的有益效果是:根据预存储的服务器配置列表依次连接消息服务器,在连接上消息服务器后,初始化消息服务器中存储的消息处理类,得到至少一个消息处理对象,对消息服务器是否接收到服务器消息进行监听,并对接收到的服务器消息进行处理,通过消息生产者将返回消息处理后发送给消息服务器,通信效率较高,满足不同场合的通信需求。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,S1中具体包括:
S11、从预存储的数据库单元中获取服务器配置列表;
S12、通过所述服务器配置列表中配置文件的顺序依次连接消息服务器,当连接消息服务器失败时,再次连接所述消息服务器,当连接所述消息服务器失败的次数达到预设次数后,连接下一个消息服务器,当所有的消息服务器均连接失败的时候,消息处理服务启动失败;
其中所述配置文件包括:消息服务器的子系统名称信息、队列线程名称信息、消息服务器URL地址信息、消息服务器状态信息。
采用上述进一步方案的有益效果是:通过服务器配置列表依次连接消息服务器,并在消息服务器连接失败时,尝试重新连接该消息服务器,防止网络问题导致的连接失败。
进一步,所述服务器消息包括:消息名称信息、消息标识信息、指令信息和返回消息获取时间间隔信息;S3中具体包括:
S31、所述消息监听器根据接收到的服务器消息包括的所述消息名称信息,从所述至少一个消息执行器中找到至少一个匹配消息执行器;
S32、判断所述至少一个匹配消息执行器是否都为空,否,则通过所述至少一个匹配消息执行器中不为空的匹配消息执行器根据所述指令信息对所述服务器消息进行处理,得到至少一个返回消息;是,则根据预存储的服务器配置列表中配置文件的顺序重新依次连接消息服务器。
采用上述进一步方案的有益效果是:根据服务器消息的内容判断消息服务器需要多少个消息执行器进行处理,从消息执行器中找到至少一个匹配消息执行器按指令信息对服务器消息进行处理。
进一步,S4中具体包括:
根据所述消息名称信息和所述消息标识信息确认所述服务器消息的类型;
当所述服务器消息为同步消息时,将处理所述服务器消息的业务线程设置为阻塞等待状态,直到所述至少一个消息处理对象返回所述服务器消息对应的至少一个返回消息;
初始化一个数组对象,将所述消息标识信息和所述数组对象对应存储在第一字典中,将所述数组对象和所述至少一个返回消息对应存储在第二字典中;
确定与所述消息名称信息对应的队列线程名称信息,根据所述队列线程名称信息确定所述服务器消息的消息生产者,当所述消息生产者为空时,根据所述队列线程名称信息生成一个消息生产者;
所述消息生产者根据所述消息标识信息从所述第一字典中获取对应的数组对象,并根据所述数组对象从所述第二字典中获取对应的所述至少一个返回消息;
判断所述至少一个返回消息是否都为空,是,则根据返回消息获取时间间隔信息等待指定时间后,所述消息生产者根据所述第一字典和第二字典重新获取所述至少一个返回消息;否,则通过所述消息生产者将所述至少一个返回消息中不为空的返回消息进行序列化和压缩后,发送给所述消息服务器;
消息服务器接收反馈的返回消息,将所述返回消息设置为所述服务器消息的答复消息,通知所述业务线程结束阻塞等待状态。
采用上述进一步方案的有益效果是:利用线程阻塞实现了异步通信方式下的同步等待,实现了与服务端之间的消息交互处理,通信效率较高,实现了同步与异步相结合的通信方式,满足不同场合的通信需求。
进一步,还包括S5,对接收到的所述至少一个返回消息进行解压和反序列化,还原所述至少一个返回消息的消息内容。
采用上述进一步方案的有益效果是:对接收到的数据进行解压和反序列化处理,得到原消息内容,保证信息安全性。
本发明还提供实现上述方法的一种消息监听处理系统,包括:至少一个消息服务器和消息服务器连接模块;每个所述消息服务器包括:消息处理对象初始化单元、消息处理单元、消息发送单元和数据库单元;
所述消息服务器连接模块,用于根据预存储的服务器配置列表中配置文件的顺序依次连接消息服务器;
所述消息处理对象初始化单元,用于当消息服务器连接成功时,初始化所述消息服务器中存储的消息处理类,得到至少一个消息处理对象,每个所述消息处理对象中包括至少一个消息监听器和至少一个消息执行器,每个所述消息监听器实时监听所述消息服务器是否接收到新的服务器消息;
所述消息处理单元,用于当所述消息服务器接收到新的服务器消息时,监听到所述消息服务器接收到新的服务器消息的消息监听器根据接收到的服务器消息,从所述至少一个消息执行器中找到至少一个匹配消息执行器,通过所述至少一个匹配消息执行器对所述服务器消息进行处理,得到至少一个返回消息;
所述消息发送单元,用于确定所述服务器消息的消息生产者,通过所述消息生产者对所述至少一个返回消息进行序列化和压缩后,发送给所述数据库单元。
进一步,所述消息服务器连接模块,具体用于,
从所述数据库单元中获取服务器配置列表;
通过所述服务器配置列表中配置文件的顺序依次连接消息服务器,当连接消息服务器失败时,再次连接所述消息服务器,当连接所述消息服务器失败的次数达到预设次数后,连接下一个消息服务器,当所有的消息服务器均连接失败的时候,消息处理服务启动失败;
其中所述配置文件包括:消息服务器的子系统名称信息、队列线程名称信息、消息服务器URL地址信息、消息服务器状态信息。
进一步,所述服务器消息包括:消息名称信息、消息标识信息、指令信息和返回消息获取时间间隔信息;
所述消息处理单元,具体用于,
所述消息监听器根据接收到的服务器消息包括的所述消息名称信息,从所述至少一个消息执行器中找到至少一个匹配消息执行器;
判断所述至少一个匹配消息执行器是否都为空,否,则通过所述至少一个匹配消息执行器中不为空的匹配消息执行器根据所述指令信息对所述服务器消息进行处理,得到至少一个返回消息;是,则根据预存储的服务器配置列表中配置文件的顺序重新依次连接消息服务器。
进一步,所述消息服务器还包括:判断单元和接收处理模块;
所述消息发送单元,具体用于,
通过判断单元根据所述消息名称信息和所述消息标识信息确认所述服务器消息的类型;
当所述服务器消息为同步消息时,
当所述服务器消息为同步消息时,将处理所述服务器消息的业务线程设置为阻塞等待状态,直到所述至少一个消息处理对象返回所述服务器消息对应的至少一个返回消息;
初始化一个数组对象,将所述消息标识信息和所述数组对象对应存储在第一字典中,将所述数组对象和所述至少一个返回消息对应存储在第二字典中;
确定与所述消息名称信息对应的队列线程名称信息,根据所述队列线程名称信息确定所述服务器消息的消息生产者,当所述消息生产者为空时,根据所述队列线程名称信息生成一个消息生产者;
所述消息生产者根据所述消息标识信息从所述第一字典中获取对应的数组对象,并根据所述数组对象从所述第二字典中获取对应的所述至少一个返回消息;
判断所述至少一个返回消息是否都为空,是,则根据返回消息获取时间间隔信息等待指定时间后,所述消息生产者根据所述第一字典和第二字典重新获取所述至少一个返回消息;否,则通过所述消息生产者将所述至少一个返回消息中不为空的返回消息进行序列化和压缩后,发送给所述数据库单元;
当所述数据库单元接收到所述至少一个返回消息时,消息服务器通过所述接收处理单元将所述返回消息设置为所述服务器消息的答复消息,通知所述业务线程结束阻塞等待状态。
进一步,所述消息处理器还包括:数据恢复单元;用于对接收到的所述至少一个返回消息进行解压和反序列化,还原所述至少一个返回消息的消息内容。
附图说明
图1为本发明实施例提供的一种消息监听处理方法流程示意图;
图2为本发明实施例提供的一种消息监听处理系统结构示意图;
图3为本发明实施例提供的一种消息监听处理系统中消息服务器结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种消息监听处理方法,包括以下步骤:
S1、根据预存储的服务器配置列表中配置文件的顺序依次连接消息服务器;
S2、当消息服务器连接成功时,初始化消息服务器中存储的消息处理类,得到至少一个消息处理对象,每个消息处理对象中包括至少一个消息监听器和至少一个消息执行器,每个消息监听器实时监听消息服务器是否接收到新的服务器消息;
S3、当消息服务器接收到新的服务器消息时,监听到消息服务器接收到新的服务器消息的消息监听器根据接收到的服务器消息,从至少一个消息执行器中找到至少一个匹配消息执行器,通过至少一个匹配消息执行器对服务器消息进行处理,得到至少一个返回消息;
S4、确定服务器消息的消息生产者,通过消息生产者对至少一个返回消息进行序列化和压缩后,发送给消息服务器。
上述实施例中,客户端根据预存储的服务器配置列表依次连接消息服务器,在连接上消息服务器后,初始化消息服务器中存储的消息处理类,得到至少一个消息处理对象,对消息服务器是否接收到客户端发送的服务器消息进行监听,并对接收到的服务器消息进行处理,通过消息生产者将返回消息处理后发送给消息服务器,实现了客户端与服务端之间的消息交互处理,通信效率较高,满足不同场合的通信需求。
上述实施例中出现的消息生产者表达的意思并不是发送服务器消息的消息生产者,而是消息处理技术领域中进行消息反馈的对象的专业名词,如上述消息处理对象,在消息处理技术领域中代表其功能的专业名词为消息消费者。
如图2所示,本发明还提供实现上述方法的一种消息监听处理系统,包括:至少一个消息服务器和消息服务器连接模块;如图3所示,每个消息服务器包括:消息处理对象初始化单元、消息处理单元、消息发送单元和数据库单元;
消息服务器连接模块,用于根据预存储的服务器配置列表中配置文件的顺序依次连接消息服务器;
消息处理对象初始化单元,用于当消息服务器连接成功时,将此消息服务器的Active状态设置为true,初始化消息服务器中存储的消息处理类,得到至少一个消息处理对象,每个消息处理对象中包括至少一个消息监听器和至少一个消息执行器,每个消息监听器实时监听消息服务器是否接收到新的服务器消息;
消息处理单元,用于当消息服务器接收到新的服务器消息时,监听到消息服务器接收到新的服务器消息的消息监听器根据接收到的服务器消息,从至少一个消息执行器中找到至少一个匹配消息执行器,通过至少一个匹配消息执行器对服务器消息进行处理,得到至少一个返回消息;
消息发送单元,用于确定服务器消息的消息生产者,通过消息生产者对至少一个返回消息进行序列化和压缩后,发送给数据库单元。
优选的,消息服务器连接模块,具体用于,
从数据库单元中获取服务器配置列表;
通过服务器配置列表中配置文件的顺序依次连接消息服务器,当连接消息服务器失败时,再次连接消息服务器,当连接消息服务器失败的次数达到预设次数后,连接下一个消息服务器,当所有的消息服务器均连接失败的时候,消息处理服务启动失败,连接不成功的原因可能是很多,这里有一个重试的过程,避免非必要因素导致的消息服务器连接失败的情况出现,如网络连接不通畅的原因导致的连接失败,通过服务器消息找到队列线程名称信息,通过队列线程名称信息找到注册的消息监听器,如果允许多个消息监听器,那么实例化多个消息监听器给这个消息;
其中配置文件包括:消息服务器的子系统名称信息、队列线程名称信息、消息服务器URL地址信息、消息服务器状态信息。
优选的,服务器消息包括:消息名称信息、消息标识信息、指令信息和返回消息获取时间间隔信息;
消息处理单元,具体用于,
消息监听器根据接收到的服务器消息包括的消息名称信息,从至少一个消息执行器中找到至少一个匹配消息执行器;
判断至少一个匹配消息执行器是否都为空,否,则通过至少一个匹配消息执行器中不为空的匹配消息执行器根据指令信息对服务器消息进行处理,得到至少一个返回消息;是,则根据预存储的服务器配置列表中配置文件的顺序重新依次连接消息服务器。
优选的,消息服务器还包括:判断单元和接收处理模块;
消息发送单元,具体用于,
通过判断单元根据消息名称信息和消息标识信息确认服务器消息的类型;
当服务器消息为同步消息时,
将处理服务器消息的业务线程设置为阻塞等待状态,直到至少一个消息处理对象返回服务器消息对应的至少一个返回消息;
初始化一个数组对象,将消息标识信息和数组对象对应存储在第一字典中,将数组对象和至少一个返回消息对应存储在第二字典中;
确定与消息名称信息对应的队列线程名称信息,根据队列线程名称信息确定服务器消息的消息生产者,当消息生产者为空时,根据队列线程名称信息生成一个消息生产者;
消息生产者根据消息标识信息从第一字典中获取对应的数组对象,并根据数组对象从第二字典中获取对应的至少一个返回消息;
判断至少一个返回消息是否都为空,是,则根据返回消息获取时间间隔信息等待指定时间后,消息生产者根据第一字典和第二字典重新获取至少一个返回消息;否,则通过消息生产者将至少一个返回消息中不为空的返回消息进行序列化和压缩后,发送给数据库单元;
具体的,将rpcWaitingThreads变量设置为多线程同步等待的锁,需要等待的业务线程会把消息标识和子线程对象存储在Map中,能取得返回消息的运算线程也会放到该Map中;当发送到消息服务器,需要等待消息服务器返回信息的时,把这个业务线程的信息记录下来,Map变量名:rpcWaitingThreads,Map对象中将消息标识和子线程对象对应存储为键值对,Map对象中还将子线程对象和运算线程对象对应存储为键值对。
当数据库单元接收到至少一个返回消息时,消息服务器通过接收处理单元将返回消息设置为服务器消息的答复消息,通知业务线程结束阻塞等待状态;
具体的,对获取到的返回消息的处理,当前线程锁定Map变量名:rpcWaitingThreads,通过消息标识获取到子线程对象,从子线程对象获取运算线程对象,根据运算线程对象取得返回消息,当运算线程对象为空时,根据返回消息获取时间间隔信息等待指定时间后,再次调用返回消息的处理,直到取得返回结果。
优选的,线程锁rpcWaitingThreads处理逻辑还包括:通过消息标识找到子线程对象,把获取的返回消息带的参数代入Map中,关键字返回消息,从子线程对象中找到阻塞的运算线程,并通知其他因阻塞而等待的线程继续执行,让与阻塞的运算线程无关的运算线程继续运行。
当服务器消息为异步消息时,
根据消息名称信息找到队列线程名称信息,通过队列线程名称信息找到消息生产者,当消息生产者为空时,根据队列线程名称信息生成一个消息生产者;
通过消息生产者将返回消息序列化和压缩操作后,反馈给消息服务器;
消息服务器通过接收处理单元接收反馈的返回消息,读取返回消息中的数据信息,并将数据信息从字节流转换为消息格式,并调用socket连接对象的数据处理方法对消息格式的数据信息进行处理。
优选的,消息处理器还包括:数据恢复单元;用于对接收到的至少一个返回消息进行解压和反序列化,还原至少一个返回消息的消息内容。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种消息监听处理方法,其特征在于,包括以下步骤:
S1、根据预存储的服务器配置列表中配置文件的顺序依次连接消息服务器;
S2、当消息服务器连接成功时,初始化所述消息服务器中存储的消息处理类,得到至少一个消息处理对象,每个所述消息处理对象中包括至少一个消息监听器和至少一个消息执行器,每个所述消息监听器实时监听所述消息服务器是否接收到新的服务器消息;
S3、当所述消息服务器接收到新的服务器消息时,监听到所述消息服务器接收到新的服务器消息的消息监听器根据接收到的服务器消息,从所述至少一个消息执行器中找到至少一个匹配消息执行器,通过所述至少一个匹配消息执行器对所述服务器消息进行处理,得到至少一个返回消息;
S4、确定所述服务器消息的消息生产者,通过所述消息生产者对所述至少一个返回消息进行序列化和压缩后,发送给所述消息服务器。
2.根据权利要求1所述的一种消息监听处理方法,其特征在于,S1中具体包括:
S11、从预存储的数据库单元中获取服务器配置列表;
S12、通过所述服务器配置列表中配置文件的顺序依次连接消息服务器,当连接消息服务器失败时,再次连接所述消息服务器,当连接所述消息服务器失败的次数达到预设次数后,连接下一个消息服务器,当所有的消息服务器均连接失败的时候,消息处理服务启动失败;
其中所述配置文件包括:消息服务器的子系统名称信息、队列线程名称信息、消息服务器URL地址信息、消息服务器状态信息。
3.根据权利要求2所述的一种消息监听处理方法,其特征在于,所述服务器消息包括:消息名称信息、消息标识信息、指令信息和返回消息获取时间间隔信息;S3中具体包括:
S31、所述消息监听器根据接收到的服务器消息包括的所述消息名称信息,从所述至少一个消息执行器中找到至少一个匹配消息执行器;
S32、判断所述至少一个匹配消息执行器是否都为空,否,则通过所述至少一个匹配消息执行器中不为空的匹配消息执行器根据所述指令信息对所述服务器消息进行处理,得到至少一个返回消息;是,则执行步骤S1。
4.根据权利要求3所述的一种消息监听处理方法,其特征在于,S4中具体包括:
根据所述消息名称信息和所述消息标识信息确认所述服务器消息的类型;
当所述服务器消息为同步消息时,将处理所述服务器消息的业务线程设置为阻塞等待状态,直到所述至少一个消息处理对象返回所述服务器消息对应的至少一个返回消息;
初始化一个数组对象,将所述消息标识信息和所述数组对象对应存储在第一字典中,将所述数组对象和所述至少一个返回消息对应存储在第二字典中;
确定与所述消息名称信息对应的队列线程名称信息,根据所述队列线程名称信息确定所述服务器消息的消息生产者,当所述消息生产者为空时,根据所述队列线程名称信息生成一个消息生产者;
所述消息生产者根据所述消息标识信息从所述第一字典中获取对应的数组对象,并根据所述数组对象从所述第二字典中获取对应的所述至少一个返回消息;
判断所述至少一个返回消息是否都为空,是,则根据返回消息获取时间间隔信息等待指定时间后,所述消息生产者根据所述第一字典和第二字典重新获取所述至少一个返回消息;否,则通过所述消息生产者将所述至少一个返回消息中不为空的返回消息进行序列化和压缩后,发送给所述消息服务器;
消息服务器接收反馈的返回消息,将所述返回消息设置为所述服务器消息的答复消息,通知所述业务线程结束阻塞等待状态。
5.根据权利要求1-4中任一项所述的一种消息监听处理方法,其特征在于,还包括S5,对接收到的所述至少一个返回消息进行解压和反序列化,还原所述至少一个返回消息的消息内容。
6.一种消息监听处理系统,其特征在于,包括:至少一个消息服务器和消息服务器连接模块;每个所述消息服务器包括:消息处理对象初始化单元、消息处理单元、消息发送单元和数据库单元;
所述消息服务器连接模块,用于根据预存储的服务器配置列表中配置文件的顺序依次连接消息服务器;
所述消息处理对象初始化单元,用于当消息服务器连接成功时,初始化所述消息服务器中存储的消息处理类,得到至少一个消息处理对象,每个所述消息处理对象中包括至少一个消息监听器和至少一个消息执行器,每个所述消息监听器实时监听所述消息服务器是否接收到新的服务器消息;
所述消息处理单元,用于当所述消息服务器接收到新的服务器消息时,监听到所述消息服务器接收到新的服务器消息的消息监听器根据接收到的服务器消息,从所述至少一个消息执行器中找到至少一个匹配消息执行器,通过所述至少一个匹配消息执行器对所述服务器消息进行处理,得到至少一个返回消息;
所述消息发送单元,用于确定所述服务器消息的消息生产者,通过所述消息生产者对所述至少一个返回消息进行序列化和压缩后,发送给所述数据库单元。
7.根据权利要求6所述的一种消息监听处理系统,其特征在于,所述消息服务器连接模块,具体用于,
从所述数据库单元中获取服务器配置列表;
通过所述服务器配置列表中配置文件的顺序依次连接消息服务器,当连接消息服务器失败时,再次连接所述消息服务器,当连接所述消息服务器失败的次数达到预设次数后,连接下一个消息服务器,当所有的消息服务器均连接失败的时候,消息处理服务启动失败;
其中所述配置文件包括:消息服务器的子系统名称信息、队列线程名称信息、消息服务器URL地址信息、消息服务器状态信息。
8.根据权利要求7所述的一种消息监听处理系统,其特征在于,所述服务器消息包括:消息名称信息、消息标识信息、指令信息和返回消息获取时间间隔信息;
所述消息处理单元,具体用于,
所述消息监听器根据接收到的服务器消息包括的所述消息名称信息,从所述至少一个消息执行器中找到至少一个匹配消息执行器;
判断所述至少一个匹配消息执行器是否都为空,否,则通过所述至少一个匹配消息执行器中不为空的匹配消息执行器根据所述指令信息对所述服务器消息进行处理,得到至少一个返回消息;是,则根据预存储的服务器配置列表中配置文件的顺序重新依次连接消息服务器。
9.根据权利要求8所述的一种消息监听处理系统,其特征在于,所述消息服务器还包括:判断单元和接收处理模块;
所述消息发送单元,具体用于,
通过判断单元根据所述消息名称信息和所述消息标识信息确认所述服务器消息的类型;
当所述服务器消息为同步消息时,
当所述服务器消息为同步消息时,将处理所述服务器消息的业务线程设置为阻塞等待状态,直到所述至少一个消息处理对象返回所述服务器消息对应的至少一个返回消息;
初始化一个数组对象,将所述消息标识信息和所述数组对象对应存储在第一字典中,将所述数组对象和所述至少一个返回消息对应存储在第二字典中;
确定与所述消息名称信息对应的队列线程名称信息,根据所述队列线程名称信息确定所述服务器消息的消息生产者,当所述消息生产者为空时,根据所述队列线程名称信息生成一个消息生产者;
所述消息生产者根据所述消息标识信息从所述第一字典中获取对应的数组对象,并根据所述数组对象从所述第二字典中获取对应的所述至少一个返回消息;
判断所述至少一个返回消息是否都为空,是,则根据返回消息获取时间间隔信息等待指定时间后,所述消息生产者根据所述第一字典和第二字典重新获取所述至少一个返回消息;否,则通过所述消息生产者将所述至少一个返回消息中不为空的返回消息进行序列化和压缩后,发送给所述数据库单元;
当所述数据库单元接收到所述至少一个返回消息时,消息服务器通过所述接收处理单元将所述返回消息设置为所述服务器消息的答复消息,通知所述业务线程结束阻塞等待状态。
10.根据权利要求6-9中任一项所述的一种消息监听处理系统,其特征在于,所述消息处理器还包括:数据恢复单元;用于对接收到的所述至少一个返回消息进行解压和反序列化,还原所述至少一个返回消息的消息内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710391648.XA CN107248978B (zh) | 2017-05-27 | 2017-05-27 | 一种消息监听处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710391648.XA CN107248978B (zh) | 2017-05-27 | 2017-05-27 | 一种消息监听处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107248978A true CN107248978A (zh) | 2017-10-13 |
CN107248978B CN107248978B (zh) | 2019-12-31 |
Family
ID=60017786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710391648.XA Expired - Fee Related CN107248978B (zh) | 2017-05-27 | 2017-05-27 | 一种消息监听处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107248978B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908488A (zh) * | 2017-11-14 | 2018-04-13 | 中国银行股份有限公司 | 消息请求接口交互方法、装置、计算机设备及存储介质 |
CN109361770A (zh) * | 2018-12-11 | 2019-02-19 | 苏州创旅天下信息技术有限公司 | 基于WebSocket和消息队列实现双向实时通信的系统及方法 |
CN109408251A (zh) * | 2018-09-28 | 2019-03-01 | 北京龙拳风暴科技有限公司 | 消息发送方法与装置、消息接收处理方法与装置 |
CN109614506A (zh) * | 2018-11-05 | 2019-04-12 | 厦门市美亚柏科信息股份有限公司 | 一种基于rocksdb排重数据导入图库的方法、装置及存储介质 |
CN111182065A (zh) * | 2019-12-30 | 2020-05-19 | 深圳奇迹智慧网络有限公司 | 基于mqtt协议的消息处理方法、装置和计算机设备 |
CN115086161A (zh) * | 2022-06-21 | 2022-09-20 | 杭州安恒信息技术股份有限公司 | 一种nginx被动健康检查方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034382A1 (en) * | 2002-01-23 | 2008-02-07 | International Business Machines Corporation | Multi-protocol object distribution |
EP2053552A3 (en) * | 2005-11-03 | 2011-02-02 | KTFreetel Co., Ltd. | A legacy cooperation device and processing method |
CN104236579A (zh) * | 2014-10-09 | 2014-12-24 | 武汉大学 | 一种基于Android内核层实现高精度卫星导航定位方法 |
CN106161537A (zh) * | 2015-04-10 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 远程过程调用的处理方法、装置、系统及电子设备 |
-
2017
- 2017-05-27 CN CN201710391648.XA patent/CN107248978B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034382A1 (en) * | 2002-01-23 | 2008-02-07 | International Business Machines Corporation | Multi-protocol object distribution |
EP2053552A3 (en) * | 2005-11-03 | 2011-02-02 | KTFreetel Co., Ltd. | A legacy cooperation device and processing method |
CN104236579A (zh) * | 2014-10-09 | 2014-12-24 | 武汉大学 | 一种基于Android内核层实现高精度卫星导航定位方法 |
CN106161537A (zh) * | 2015-04-10 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 远程过程调用的处理方法、装置、系统及电子设备 |
Non-Patent Citations (1)
Title |
---|
DONALD_DRAPER: "ActiveMQ连接工厂、连接详解", 《CSDN》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908488A (zh) * | 2017-11-14 | 2018-04-13 | 中国银行股份有限公司 | 消息请求接口交互方法、装置、计算机设备及存储介质 |
CN109408251A (zh) * | 2018-09-28 | 2019-03-01 | 北京龙拳风暴科技有限公司 | 消息发送方法与装置、消息接收处理方法与装置 |
CN109408251B (zh) * | 2018-09-28 | 2020-11-03 | 北京龙拳风暴科技有限公司 | 消息发送方法与装置、消息接收处理方法与装置 |
CN109614506A (zh) * | 2018-11-05 | 2019-04-12 | 厦门市美亚柏科信息股份有限公司 | 一种基于rocksdb排重数据导入图库的方法、装置及存储介质 |
CN109361770A (zh) * | 2018-12-11 | 2019-02-19 | 苏州创旅天下信息技术有限公司 | 基于WebSocket和消息队列实现双向实时通信的系统及方法 |
CN111182065A (zh) * | 2019-12-30 | 2020-05-19 | 深圳奇迹智慧网络有限公司 | 基于mqtt协议的消息处理方法、装置和计算机设备 |
CN115086161A (zh) * | 2022-06-21 | 2022-09-20 | 杭州安恒信息技术股份有限公司 | 一种nginx被动健康检查方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107248978B (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107248978A (zh) | 一种消息监听处理方法及系统 | |
CN102880475B (zh) | 计算机软件系统中基于云计算的实时事件处理系统及方法 | |
CN107070613B (zh) | 分布式网络环境下数据可靠传输方法 | |
WO2019218480A1 (zh) | 一种推送服务的重连方法及设备 | |
CN101953139B (zh) | 响应于网络层连通性的dhcp初始化 | |
CN110417915A (zh) | 一种推送消息传输方法、装置、存储介质及电子设备 | |
CN105825409B (zh) | 一种电子发票消息推送系统及方法 | |
WO2011130940A1 (zh) | 多业务统一处理方法及统一业务平台 | |
CN106331147B (zh) | 一种redis分布式调用方法 | |
CN109889454A (zh) | 一种微服务架构的消息推送装置及方法 | |
WO2014176991A1 (zh) | 多媒体业务处理装置、方法及系统 | |
CN108696899A (zh) | Sip消息传输与接收方法及传输与接收装置 | |
CN103051724B (zh) | 一种基于长连接的套接字同步方法 | |
CN102546542A (zh) | 电子系统及其嵌入式设备和中转设备 | |
CN116743836A (zh) | 长连接通信链路建立方法及其装置、电子设备及存储介质 | |
CN116743624A (zh) | 通信连接方法、装置、终端设备以及存储介质 | |
CN109194731A (zh) | 一种基于组态软件的并发实时数据传输接口实现方法 | |
CN103533001A (zh) | 基于http多重代理的通信方法和系统、中间代理服务器 | |
CN112559472B (zh) | 一种文件传输方法、装置、计算机设备及存储介质 | |
CN111294358B (zh) | 报文的处理方法及装置 | |
CN115964136A (zh) | 一种定时任务执行方法、服务端、客户端及存储介质 | |
WO2015154433A1 (zh) | 线卡管理方法及系统 | |
CN114500646B (zh) | 一种去中心化的esb云平台系统及其服务调用方法 | |
CN112448952B (zh) | 解决远程接收并存储智能设备参数的方法及装置 | |
CN113891263B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191231 Termination date: 20210527 |
|
CF01 | Termination of patent right due to non-payment of annual fee |