CN111741014B - 消息发送方法、装置、服务器及存储介质 - Google Patents
消息发送方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN111741014B CN111741014B CN202010701833.6A CN202010701833A CN111741014B CN 111741014 B CN111741014 B CN 111741014B CN 202010701833 A CN202010701833 A CN 202010701833A CN 111741014 B CN111741014 B CN 111741014B
- Authority
- CN
- China
- Prior art keywords
- target
- user
- message
- connection
- authentication
- 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
Images
Classifications
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/14—Session management
-
- 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/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及数据处理技术领域,提供一种消息发送方法,包括:接收目标用户发送的最后一次的连接认证报文;将连接认证报文携带的用户标识以及目标认证信息发送至预设的入口进程中;根据用户标识以及入口进程的分发算法,确定目标连接进程;将目标认证信息分发至目标连接进程中;通过目标连接进程对目标认证信息进行认证,获得认证结果;若认证结果为认证通过,建立目标用户与目标连接进程的连接;通过连接,将目标用户订阅的消息发送给目标用户。本发明还提供一种消息发送装置、服务器以及存储介质。本发明能降低权限认证的出错率。此外,本发明还涉及区块链技术,消息可存储于区块链中。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种消息发送方法、装置、服务器及存储介质。
背景技术
目前,随着计算机技术的发展,网页消息实时推送功能可以通过负载均衡、缓存、数据持久化等技术来实现,但在实践中发现,对于采用node.js作为后端的服务的系统来说,多机房、多服务器、多进程之间的消息同步难以实现,以及权限认证容易出错。
因此,如何确保消息同步以及降低权限认证的出错率是一个亟需解决的技术问题。
发明内容
鉴于以上内容,有必要提供一种消息发送方法、装置、服务器及存储介质,能够降低权限认证的出错率。
本发明的第一方面提供一种消息发送方法,所述方法包括:
接收目标用户发送的最后一次的连接认证报文,其中,所述连接认证报文携带有所述目标用户的用户标识以及目标认证信息;
将所述用户标识以及所述目标认证信息发送至预设的入口进程中,其中,所述入口进程用于将同一个用户多次发送的认证信息分发至同一个连接进程中;
根据所述用户标识以及所述入口进程的分发算法,确定目标连接进程,其中,所述目标连接进程用于对所述目标用户进行多次认证;
将所述目标认证信息分发至所述目标连接进程中;
通过所述目标连接进程对所述目标认证信息进行认证,获得认证结果;
若所述认证结果为认证通过,建立所述目标用户与所述目标连接进程的连接;
通过所述连接,将所述目标用户订阅的消息发送给所述目标用户。
本发明的第二方面提供一种消息发送装置,所述消息发送装置包括:
接收模块,用于接收目标用户发送的最后一次的连接认证报文,其中,所述连接认证报文携带有所述目标用户的用户标识以及目标认证信息;
发送模块,用于将所述用户标识以及所述目标认证信息发送至预设的入口进程中,其中,所述入口进程用于将同一个用户多次发送的认证信息分发至同一个连接进程中;
确定模块,用于根据所述用户标识以及所述入口进程的分发算法,确定目标连接进程,其中,所述目标连接进程用于对所述目标用户进行多次认证;
分发模块,用于将所述目标认证信息分发至所述目标连接进程中;
认证模块,用于通过所述目标连接进程对所述目标认证信息进行认证,获得认证结果;
建立模块,用于若所述认证结果为认证通过,建立所述目标用户与所述目标连接进程的连接;
所述发送模块,还用于通过所述连接,将所述目标用户订阅的消息发送给所述目标用户。
本发明的第三方面提供一种服务器,所述服务器包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的消息发送方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的消息发送方法。
由以上技术方案,本发明中,可以通过消息中间件来转发消息,确保多个服务器的多个进程之间的消息同步,同时,通过入口进程将相同用户的连接指向相同的子进程,避免了用户的多次认证信息发送到不同的子进程而导致的认证失败,降低了权限认证的出错率。
附图说明
图1是本发明公开的一种消息发送方法的较佳实施例的流程图。
图2是本发明公开的一种消息发送装置的较佳实施例的功能模块图。
图3是本发明实现消息发送方法的较佳实施例的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例的消息发送方法应用在服务器中,也可以应用在服务器和通过网络与所述服务器进行连接的电子设备所构成的硬件环境中,由服务器和电子设备共同执行。网络包括但不限于:广域网、城域网或局域网。
其中,服务器可以是指能对网络中其它设备(如电子设备)提供服务的计算机系统。如果一个个人电脑能够对外提供文件传输协议(File Transfer Protocol,简称FTP)服务,也可以叫服务器。从狭义范围上讲,服务器专指某些高性能计算机,能通过网络,对外提供服务,其相对于普通的个人电脑来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通的个人电脑有所不同。
所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述电子设备还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络设备、多个网络设备组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络设备构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理PDA等。
请参见图1,图1是本发明公开的一种消息发送方法的较佳实施例的流程图。其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11、接收目标用户发送的最后一次的连接认证报文,其中,所述连接认证报文携带有所述目标用户的用户标识以及目标认证信息。
本发明实施例中,在建立用户与进程的连接时,需要进行三次认证,若前两次认证没问题,可以接收目标用户发送的最后一次的连接认证报文。
可选的,可以通过基于网际互联协议地址(IP地址)的哈希负载均衡算法(比如nginx的ip_hash负载均衡方式)为每个用户分配服务器。可以将相同IP地址的用户分配至相同的服务器中。
其中,基于网际互联协议地址的哈希负载均衡算法可以根据客户端的IP地址,通过哈希函数计算得到一个哈希值,将此哈希值和服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号。采用基于网际互联协议地址的哈希负载均衡算法时,如果服务器列表不变,相同的网际互联协议地址的客户端,将映射到同一个后台服务器进行访问。
其中,所述网际互连协议地址(Internet Protocol Address)是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
其中,IP(Internet Protocol,网际互连协议)是TCP/IP体系中的网络层协议,是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),对上可载送传输层各种协议的信息,例如TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。
S12、将所述用户标识以及所述目标认证信息发送至预设的入口进程中,其中,所述入口进程用于将同一个用户多次发送的认证信息分发至同一个连接进程中。
其中,进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息。
本发明实施例中,每个服务器上都有一个预设的入口进程,通过所述入口进程,为每个用户分配用于进行连接的连接进程,可以避免用户的多次认证信息发送到不同的连接进程从而导致的认证失败的情况。
S13、根据所述用户标识以及所述入口进程的分发算法,确定目标连接进程,其中,所述目标连接进程用于对所述目标用户进行多次认证。
其中,所述目标连接进程为所述入口进程为所述用户指定的连接进程,用于对所述目标用户进行身份认证,通过认证后,与所述目标用户进行建立连接,进行数据的传输。
具体的,所述用户标识为所述用户的网际互联协议地址,所述根据所述用户标识以及所述入口进程的分配算法,确定目标连接进程包括:
获取所述网际互联协议地址的预设位置的地址字符;
根据所述入口进程的分发算法,从所有连接进程中确定与所述地址字符对应的连接进程;
将所述与所述地址字符对应的连接进程确定为所述目标连接进程。
在该可选的实施方式中,所述入口进程用于按照预设规则,将同一个用户的认证信息分发至同一个连接进程。比如,某台服务器存在4个子进程,获取进行连接的目标用户的网际互连协议地址(IP地址),然后获取所述网际互联协议地址的预设位置的地址字符(比如最后两位地址字符),将所述网际互连协议地址的最后两位对4取模,假设最后两位是02,对4取模的结果是2,即与所述地址字符对应的连接进程(所述目标连接进程)是第二个子进程。
S14、将所述目标认证信息分发至所述目标连接进程中。
本发明实施例中,在确定目标连接进程后,可以将所述入口进程中的目标认证信息分发至所述目标连接进程中,由所述目标连接进程进行下一步的数据处理。
S15、通过所述目标连接进程对所述目标认证信息进行认证,获得认证结果。
本发明实施例中,所述认证信是所述目标用户发送的最后一次的连接认证报文所携带的认证信息,即所述目标连接进程已经完成了所述目标用户的前2次认证,这次的认证是最后一次认证,若认证结果为认证通过,确定所述目标用户合法,可以建立所述目标用户与所述目标连接进程的连接;若认证结果为不通过,确定所述目标用户非法,不能建立所述目标用户与所述目标连接进程的连接。
S16、若所述认证结果为认证通过,建立所述目标用户与所述目标连接进程的连接。
本发明实施例中,若所述认证结果为认证通过,确定所述目标用户为合法用户,允许与所述目标用户建立网络连接,可以建立所述目标用户与所述目标连接进程的连接。
作为一种可选的实施方式,所述方法还包括:
若所述认证结果为认证不通过,生成提示信息;
将所述提示信息发送给所述目标用户。
在该可选的实施方式中,如果连接的过程中,用户的认证信息出错,认证不通过,可以生成提示信息(比如:账号错误、密码错误、网络出错等),并可以将所述提示信息发送给所述目标用户,在用户的客户端(网页)输出所述提示信息。
S17、通过所述连接,将所述目标用户订阅的消息发送给所述目标用户。
本发明实施例中,在建立所述目标用户与所述目标连接进程的连接之后,可以通过所述连接在所述目标用户与所述目标连接进程之间进行数据传输,可以在服务端获取所述目标用户订阅的消息,然后将所述目标用户订阅的消息发送给所述目标用户。
具体的,所述通过所述连接,将所述目标用户订阅的消息发送至所述目标用户包括:
确定所述目标连接进程中的最新消息;
获取所述目标连接进程的用户连接列表;
判断所述用户连接列表中是否存在与所述最新消息所携带的用户标识对应的订阅用户;
若所述用户连接列表中存在与所述最新消息所携带的用户标识对应的订阅用户,判断所述订阅用户中是否存在所述目标用户;
若所述订阅用户中存在所述目标用户,确定所述最新消息为所述目标用户的订阅消息;
通过所述连接,将所述最新消息发送给所述目标用户。
在该可选的实施方式中,服务端产生的最新消息会暂时存放在所有的连接进程中,可以确定所述目标连接进程中的最新消息。所述目标连接进程会维护一个用户连接的用户列表,所述用户列表记录了与所述目标连接进程进行连接的用户的用户信息,所述用户列表可以存储在内存中,读取速度快。可以判断所述用户连接列表中是否存在与所述消息所携带的用户标识对应的订阅用户,若所述用户连接列表中存在与所述最新消息所携带的用户标识对应的订阅用户,需要进一步判断所述订阅用户中是否存在所述目标用户;若所述订阅用户中存在所述目标用户,确定所述最新消息为所述目标用户的订阅消息,通过所述连接,将所述最新消息发送给所述目标用户。
其中,消息携带有用户标识,所述用户标识用于指示消息的推送对象(需要发送给的用户)。不同的用户可能与不同机房中的不同服务器的不同连接进程连接,需要通过所述连接进程对应的用户列表来确定存在连接的推送对象,以将消息发送给推送对象。
作为一种可选的实施方式,所述方法还包括:
若所述用户连接列表中不存在与所述最新消息所携带的用户标识对应的订阅用户,确定所述最新消息为未订阅消息;
丢弃所述未订阅消息。
在该可选的实施方式中,若所述目标连接进程的用户列表中不存在与所述最新消息所携带的用户标识对应的订阅用户,确定所述目标连接进程没有与订阅所述最新消息的用户进行连接,无法将所述最新消息发送至需要的用户,确定所述最新消息为未订阅消息,可以将所述未订阅消息丢弃。
作为一种可选的实施方式,所述方法还包括:
获取系统的并发状态;
若所述并发状态为高并发,生成告警信息;
输出所述告警信息至预设终端。
其中,所述并发状态包括系统的各项指标,比如CPU使用率、内存使用情况等。
在该可选的实施方式中,可以对系统的CPU使用情况,内存使用情况、线程使用情况等进行监控,并确定所述系统的并发状态,若所述并发状态为高并发(比如CPU使用率超过预设的使用率阈值),生成告警信息;输出所述告警信息至预设终端,可以及时告警,让管理人员进行处理,比如增加服务器。确保服务的正常运行。
作为一种可选的实施方式,所述方法还包括:
当生成最新消息时,将所述最新消息发布至消息中间件中;
通过所述消息中间件,将所述最新消息发送至所有连接进程中。
其中,所述消息中间件可以是一种通讯组件,适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,可以被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发。
其中,所述最新消息可以是系统产生的各种最新的数据。
其中,所述多个子进程订阅相同类型的消息。所述多个子进程订阅相同类型的消息,即可以将消息发送给所有子进程,实现多个进程之间的消息同步。
在该可选的实施方式中,一台服务器中可以有多个连接进程,一个连接进程可以与多个用户进行连接。所述消息中间件可以将消息发送给订阅所述消息的所有连接进程中。
需要强调的是,为进一步保证上述消息的私密和安全性,上述消息还可以存储于一区块链的节点中。
在图1所描述的方法流程中,可以通过消息中间件来转发消息,确保多个服务器的多个进程之间的消息同步,同时,通过入口进程将相同用户的连接指向相同的子进程,避免了用户的多次认证信息发送到不同的子进程而导致的认证失败,降低了权限认证的出错率。
请参见图2,图2是本发明公开的一种消息发送装置的较佳实施例的功能模块图。
在一些实施例中,所述消息发送装置运行于服务器中。所述消息发送装置可以包括多个由程序代码段所组成的功能模块。所述消息发送装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的消息发送方法中的部分或全部步骤。
本实施例中,所述消息发送装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、发送模块202、确定模块203、分发模块204、认证模块205及建立模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。
接收模块201,用于接收目标用户发送的最后一次的连接认证报文,其中,所述连接认证报文携带有所述目标用户的用户标识以及目标认证信息。
本发明实施例中,在建立用户与进程的连接时,需要进行三次认证,若前两次认证没问题,可以接收目标用户发送的最后一次的连接认证报文。
可选的,可以通过基于网际互联协议地址(IP地址)的哈希负载均衡算法(比如nginx的ip_hash负载均衡方式)为每个用户分配服务器。可以将相同IP地址的用户分配至相同的服务器中。
其中,基于网际互联协议地址的哈希负载均衡算法可以根据客户端的IP地址,通过哈希函数计算得到一个哈希值,将此哈希值和服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号。采用基于网际互联协议地址的哈希负载均衡算法时,如果服务器列表不变,相同的网际互联协议地址的客户端,将映射到同一个后台服务器进行访问。
其中,所述网际互连协议地址(Internet Protocol Address)是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
其中,IP(Internet Protocol,网际互连协议)是TCP/IP体系中的网络层协议,是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),对上可载送传输层各种协议的信息,例如TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。
发送模块202,用于将所述用户标识以及所述目标认证信息发送至预设的入口进程中,其中,所述入口进程用于将同一个用户多次发送的认证信息分发至同一个连接进程中。
其中,进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息。
本发明实施例中,每个服务器上都有一个预设的入口进程,通过所述入口进程,为每个用户分配用于进行连接的连接进程,可以避免用户的多次认证信息发送到不同的连接进程从而导致的认证失败的情况。
确定模块203,用于根据所述用户标识以及所述入口进程的分发算法,确定目标连接进程,其中,所述目标连接进程用于对所述目标用户进行多次认证。
其中,所述目标连接进程为所述入口进程为所述用户指定的连接进程,用于对所述目标用户进行身份认证,通过认证后,与所述目标用户进行建立连接,进行数据的传输。
分发模块204,用于将所述目标认证信息分发至所述目标连接进程中。
本发明实施例中,在确定目标连接进程后,可以将所述入口进程中的目标认证信息分发至所述目标连接进程中,由所述目标连接进程进行下一步的数据处理。
认证模块205,用于通过所述目标连接进程对所述目标认证信息进行认证,获得认证结果。
本发明实施例中,所述认证信是所述目标用户发送的最后一次的连接认证报文所携带的认证信息,即所述目标连接进程已经完成了所述目标用户的前2次认证,这次的认证是最后一次认证,若认证结果为认证通过,确定所述目标用户合法,可以建立所述目标用户与所述目标连接进程的连接;若认证结果为不通过,确定所述目标用户非法,不能建立所述目标用户与所述目标连接进程的连接。
建立模块206,用于若所述认证结果为认证通过,建立所述目标用户与所述目标连接进程的连接。
本发明实施例中,若所述认证结果为认证通过,确定所述目标用户为合法用户,允许与所述目标用户建立网络连接,可以建立所述目标用户与所述目标连接进程的连接。
所述发送模块202,还用于通过所述连接,将所述目标用户订阅的消息发送给所述目标用户。
本发明实施例中,在建立所述目标用户与所述目标连接进程的连接之后,可以通过所述连接在所述目标用户与所述目标连接进程之间进行数据传输,可以在服务端获取所述目标用户订阅的消息,然后将所述目标用户订阅的消息发送给所述目标用户。
作为一种可选的实施方式,所述用户标识为所述用户的网际互联协议地址,所述确定模块203根据所述用户标识以及所述入口进程的分配算法,确定目标连接进程的方式具体为:
获取所述网际互联协议地址的预设位置的地址字符;
根据所述入口进程的分发算法,从所有连接进程中确定与所述地址字符对应的连接进程;
将所述与所述地址字符对应的连接进程确定为所述目标连接进程。
在该可选的实施方式中,所述入口进程用于按照预设规则,将同一个用户的认证信息分发至同一个连接进程。比如,某台服务器存在4个子进程,获取进行连接的目标用户的网际互连协议地址(IP地址),然后获取所述网际互联协议地址的预设位置的地址字符(比如最后两位地址字符),将所述网际互连协议地址的最后两位对4取模,假设最后两位是02,对4取模的结果是2,即与所述地址字符对应的连接进程(所述目标连接进程)是第二个子进程。
作为一种可选的实施方式,所述发送模块202通过所述连接,将所述目标用户订阅的消息发送至所述目标用户的方式具体为:
确定所述目标连接进程中的最新消息;
获取所述目标连接进程的用户连接列表;
判断所述用户连接列表中是否存在与所述最新消息所携带的用户标识对应的订阅用户;
若所述用户连接列表中存在与所述最新消息所携带的用户标识对应的订阅用户,判断所述订阅用户中是否存在所述目标用户;
若所述订阅用户中存在所述目标用户,确定所述最新消息为所述目标用户的订阅消息;
通过所述连接,将所述最新消息发送给所述目标用户。
在该可选的实施方式中,服务端产生的最新消息会暂时存放在所有的连接进程中,可以确定所述目标连接进程中的最新消息。所述目标连接进程会维护一个用户连接的用户列表,所述用户列表记录了与所述目标连接进程进行连接的用户的用户信息,所述用户列表可以存储在内存中,读取速度快。可以判断所述用户连接列表中是否存在与所述消息所携带的用户标识对应的订阅用户,若所述用户连接列表中存在与所述最新消息所携带的用户标识对应的订阅用户,需要进一步判断所述订阅用户中是否存在所述目标用户;若所述订阅用户中存在所述目标用户,确定所述最新消息为所述目标用户的订阅消息,通过所述连接,将所述最新消息发送给所述目标用户。
其中,消息携带有用户标识,所述用户标识用于指示消息的推送对象(需要发送给的用户)。不同的用户可能与不同机房中的不同服务器的不同连接进程连接,需要通过所述连接进程对应的用户列表来确定存在连接的推送对象,以将消息发送给推送对象。
作为一种可选的实施方式,所述确定模块203,还用于若所述用户连接列表中不存在与所述最新消息所携带的用户标识对应的订阅用户,确定所述最新消息为未订阅消息;
所述消息发送装置还可以包括:
丢弃模块,用于丢弃所述未订阅消息。
在该可选的实施方式中,若所述目标连接进程的用户列表中不存在与所述最新消息所携带的用户标识对应的订阅用户,确定所述目标连接进程没有与订阅所述最新消息的用户进行连接,无法将所述最新消息发送至需要的用户,确定所述最新消息为未订阅消息,可以将所述未订阅消息丢弃。
作为一种可选的实施方式,所述消息发送装置还可以包括:
发布模块,用于当生成最新消息时,将所述最新消息发布至消息中间件中;
所述发送模块202,还用于通过所述消息中间件,将所述最新消息发送至所有连接进程中。
其中,所述消息中间件可以是一种通讯组件,适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,可以被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发。
其中,所述最新消息可以是系统产生的各种最新的数据。
其中,所述多个子进程订阅相同类型的消息。所述多个子进程订阅相同类型的消息,即可以将消息发送给所有子进程,实现多个进程之间的消息同步。
在该可选的实施方式中,一台服务器中可以有多个连接进程,一个连接进程可以与多个用户进行连接。所述消息中间件可以将消息发送给订阅所述消息的所有连接进程中。
在图1所描述的方法流程中,可以通过消息中间件来转发消息,确保多个服务器的多个进程之间的消息同步,同时,通过入口进程将相同用户的连接指向相同的子进程,避免了用户的多次认证信息发送到不同的子进程而导致的认证失败,降低了权限认证的出错率。
作为一种可选的实施方式,所述消息发送方法还包括:
第一生成模块,用于若所述认证结果为认证不通过,生成提示信息;
所述发送模块202,还用于将所述提示信息发送给所述目标用户。
在该可选的实施方式中,如果连接的过程中,用户的认证信息出错,认证不通过,可以生成提示信息(比如:账号错误、密码错误、网络出错等),并可以将所述提示信息发送给所述目标用户,在用户的客户端(网页)输出所述提示信息。
作为一种可选的实施方式,所述消息发送装置还可以包括:
获取模块,用于获取系统的并发状态;
第二生成模块,用于若所述并发状态为高并发,生成告警信息;
输出模块,用于输出所述告警信息至预设终端。
其中,所述并发状态包括系统的各项指标,比如CPU使用率、内存使用情况等。
在该可选的实施方式中,可以对系统的CPU使用情况,内存使用情况、线程使用情况等进行监控,并确定所述系统的并发状态,若所述并发状态为高并发(比如CPU使用率超过预设的使用率阈值),生成告警信息;输出所述告警信息至预设终端,可以及时告警,让管理人员进行处理,比如增加服务器。确保服务的正常运行。
在图2所描述的消息发送装置中,可以通过消息中间件来转发消息,确保多个服务器的多个进程之间的消息同步,同时,通过入口进程将相同用户的连接指向相同的子进程,避免了用户的多次认证信息发送到不同的子进程而导致的认证失败,降低了权限认证的出错率。
需要强调的是,为进一步保证上述消息的私密和安全性,上述消息还可以存储于一区块链的节点中。
如图3所示,图3是本发明实现消息发送方法的较佳实施例的服务器的结构示意图。所述服务器3包括存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
本领域技术人员可以理解,图3所示的示意图仅仅是所述服务器3的示例,并不构成对所述服务器3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器3还可以包括输入输出设备、网络接入设备等。
所述服务器3还包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(InternetProtocol Television,IPTV)、智能式穿戴式设备等。所述服务器3所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述服务器3的控制中心,利用各种接口和线路连接整个服务器3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述服务器3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器3的使用所创建的数据等。此外,存储器31可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件等。
结合图1,所述服务器3中的所述存储器31存储多个指令以实现一种消息发送方法,所述处理器32可执行所述多个指令从而实现:
接收目标用户发送的最后一次的连接认证报文,其中,所述连接认证报文携带有所述目标用户的用户标识以及目标认证信息;
将所述用户标识以及所述目标认证信息发送至预设的入口进程中,其中,所述入口进程用于将同一个用户多次发送的认证信息分发至同一个连接进程中;
根据所述用户标识以及所述入口进程的分发算法,确定目标连接进程,其中,所述目标连接进程用于对所述目标用户进行多次认证;
将所述目标认证信息分发至所述目标连接进程中;
通过所述目标连接进程对所述目标认证信息进行认证,获得认证结果;
若所述认证结果为认证通过,建立所述目标用户与所述目标连接进程的连接;
通过所述连接,将所述目标用户订阅的消息发送给所述目标用户。
具体地,所述处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在图3所描述的服务器3中,可以通过消息中间件来转发消息,确保多个服务器的多个进程之间的消息同步,同时,通过入口进程将相同用户的连接指向相同的子进程,避免了用户的多次认证信息发送到不同的子进程而导致的认证失败,降低了权限认证的出错率。
所述服务器3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (8)
1.一种消息发送方法,其特征在于,所述消息发送方法包括:
在建立用户与进程的连接时,需要进行三次认证,若前两次认证没问题,接收目标用户发送的最后一次的连接认证报文,其中,所述连接认证报文携带有所述目标用户的用户标识以及目标认证信息,所述用户标识为所述目标用户的网际互联协议地址;
将所述用户标识以及所述目标认证信息发送至预设的入口进程中,其中,所述入口进程用于将同一个用户多次发送的认证信息分发至同一个连接进程中;
根据所述用户标识以及所述入口进程的分发算法,确定目标连接进程,其中,所述目标连接进程用于对所述目标用户进行多次认证;
将所述目标认证信息分发至所述目标连接进程中;
通过所述目标连接进程对所述目标认证信息进行认证,获得认证结果;
若所述认证结果为认证通过,建立所述目标用户与所述目标连接进程的连接;
确定所述目标连接进程中的最新消息;
获取所述目标连接进程的用户连接列表;
判断所述用户连接列表中是否存在与所述最新消息所携带的用户标识对应的订阅用户;
若所述用户连接列表中存在与所述最新消息所携带的用户标识对应的订阅用户,判断所述订阅用户中是否存在所述目标用户;
若所述订阅用户中存在所述目标用户,确定所述最新消息为所述目标用户的订阅消息;
通过所述连接,将所述最新消息发送给所述目标用户;当生成最新消息时,将所述最新消息发布至消息中间件中,所述最新消息可以是系统产生的各种最新的数据;
通过所述消息中间件,将所述最新消息发送至所有连接进程中,每个连接进程与多个用户进行连接。
2.根据权利要求1所述的消息发送方法,其特征在于,所述根据所述用户标识以及所述入口进程的分配算法,确定目标连接进程包括:
获取所述网际互联协议地址的预设位置的地址字符;
根据所述入口进程的分发算法,从所有连接进程中确定与所述地址字符对应的连接进程;
将所述与所述地址字符对应的连接进程确定为所述目标连接进程。
3.根据权利要求1所述的消息发送方法,其特征在于,所述消息发送方法还包括:
若所述用户连接列表中不存在与所述最新消息所携带的用户标识对应的订阅用户,确定所述最新消息为未订阅消息;
丢弃所述未订阅消息。
4.根据权利要求1至3中任一项所述的消息发送方法,其特征在于,所述消息发送方法还包括:
若所述认证结果为认证不通过,生成提示信息;
将所述提示信息发送给所述目标用户。
5.根据权利要求1至3中任一项所述的消息发送方法,其特征在于,所述消息发送方法还包括:
获取系统的并发状态;
若所述并发状态为高并发,生成告警信息;
输出所述告警信息至预设终端。
6.一种消息发送装置,其特征在于,所述消息发送装置包括:
接收模块,用于在建立用户与进程的连接时,需要进行三次认证,若前两次认证没问题,接收目标用户发送的最后一次的连接认证报文,其中,所述连接认证报文携带有所述目标用户的用户标识以及目标认证信息,所述用户标识为所述目标用户的网际互联协议地址;
发送模块,用于将所述用户标识以及所述目标认证信息发送至预设的入口进程中,其中,所述入口进程用于将同一个用户多次发送的认证信息分发至同一个连接进程中;
确定模块,用于根据所述用户标识以及所述入口进程的分发算法,确定目标连接进程,其中,所述目标连接进程用于对所述目标用户进行多次认证;
分发模块,用于将所述目标认证信息分发至所述目标连接进程中;
认证模块,用于通过所述目标连接进程对所述目标认证信息进行认证,获得认证结果;
建立模块,用于若所述认证结果为认证通过,建立所述目标用户与所述目标连接进程的连接;
所述发送单元,还用于确定所述目标连接进程中的最新消息;
所述发送单元,还用于获取所述目标连接进程的用户连接列表;
所述发送单元,还用于判断所述用户连接列表中是否存在与所述最新消息所携带的用户标识对应的订阅用户;
所述发送单元,还用于若所述用户连接列表中存在与所述最新消息所携带的用户标识对应的订阅用户,判断所述订阅用户中是否存在所述目标用户;
所述发送单元,还用于若所述订阅用户中存在所述目标用户,确定所述最新消息为所述目标用户的订阅消息;
所述发送单元,还用于通过所述连接,将所述最新消息发送给所述目标用户;
发布模块,用于当生成最新消息时,将所述最新消息发布至消息中间件中,所述最新消息可以是系统产生的各种最新的数据;
所述发送模块,还用于通过所述消息中间件,将所述最新消息发送至所有连接进程中,每个连接进程与多个用户进行连接。
7.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至5中任意一项所述的消息发送方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至5中任意一项所述的消息发送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010701833.6A CN111741014B (zh) | 2020-07-21 | 2020-07-21 | 消息发送方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010701833.6A CN111741014B (zh) | 2020-07-21 | 2020-07-21 | 消息发送方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111741014A CN111741014A (zh) | 2020-10-02 |
CN111741014B true CN111741014B (zh) | 2020-12-22 |
Family
ID=72655224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010701833.6A Active CN111741014B (zh) | 2020-07-21 | 2020-07-21 | 消息发送方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111741014B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491614B (zh) * | 2020-11-26 | 2023-08-11 | 许昌许继软件技术有限公司 | 一种用于嵌入式设备的配置信息在线自动生效方法及系统 |
CN113064742B (zh) * | 2021-04-12 | 2024-10-01 | 深圳赛安特技术服务有限公司 | 消息处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729016A (zh) * | 2018-12-25 | 2019-05-07 | 新华三技术有限公司 | 一种报文发送方法、设备及计算机可读存储介质 |
CN110798546A (zh) * | 2019-11-08 | 2020-02-14 | 杭州海兴电力科技股份有限公司 | 一种基于duid的dhcp客户端接入认证方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106826A1 (en) * | 2007-10-19 | 2009-04-23 | Daniel Palestrant | Method and system for user authentication using event triggered authorization events |
CN102222213B (zh) * | 2010-07-29 | 2013-08-07 | 郑文明 | 一种基于开放式Web Service架构的分布式视觉计算方法 |
CN102169502A (zh) * | 2011-04-27 | 2011-08-31 | 苏州阔地网络科技有限公司 | 一种通用的基于网页的订阅电子报的方法及系统 |
CN102708173B (zh) * | 2012-05-02 | 2014-08-13 | 北京奇虎科技有限公司 | 处理用户访问网页的请求的方法及系统 |
CN104281493A (zh) * | 2014-09-28 | 2015-01-14 | 般固(北京)科技股份有限公司 | 一种提升应用交付通讯平台多进程程序性能的方法 |
CN108123866B (zh) * | 2016-11-30 | 2019-01-25 | 北京云中融信网络科技有限公司 | 消息传输方法及装置 |
CN106657130B (zh) * | 2017-01-09 | 2020-05-19 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
-
2020
- 2020-07-21 CN CN202010701833.6A patent/CN111741014B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729016A (zh) * | 2018-12-25 | 2019-05-07 | 新华三技术有限公司 | 一种报文发送方法、设备及计算机可读存储介质 |
CN110798546A (zh) * | 2019-11-08 | 2020-02-14 | 杭州海兴电力科技股份有限公司 | 一种基于duid的dhcp客户端接入认证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111741014A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3484125B1 (en) | Method and device for scheduling interface of hybrid cloud | |
JP4566273B2 (ja) | 高速短待ち時間データ通信環境において冗長メッセージ・ストリームを使用する高信頼性メッセージングのための方法 | |
CN111163130B (zh) | 一种网络服务系统及其数据传输方法 | |
US11343097B2 (en) | Dynamic segmentation of network traffic by use of pre-shared keys | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN103685467A (zh) | 一种物联网互联互通平台及其通信方法 | |
JPH08507416A (ja) | クライアントサーバ通信の認証のための方法及び装置 | |
CN111741014B (zh) | 消息发送方法、装置、服务器及存储介质 | |
CN113472817B (zh) | 一种大规模IPSec的网关接入方法、装置及电子设备 | |
CN112948851A (zh) | 用户认证方法、装置、服务器及存储介质 | |
CN114884697B (zh) | 基于国密算法的数据加解密方法及相关设备 | |
CN112689014B (zh) | 一种双全工通信方法、装置、计算机设备和存储介质 | |
CN110968644A (zh) | 一种数据处理方法以及设备 | |
CN112235104A (zh) | 一种数据加密传输方法、系统、终端及存储介质 | |
CN111064750A (zh) | 一种数据中心的网络报文控制方法和装置 | |
CN107508781A (zh) | 基于Web代理服务器的交互方法、系统和服务器架构 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN113905012A (zh) | 一种通信方法、装置、设备及介质 | |
CN113497762A (zh) | 数据报文的传输方法及装置 | |
CN112134884B (zh) | 一种报文序列号的更新方法 | |
CN108462681A (zh) | 一种异构网络的通信方法、设备及系统 | |
CN109150919B (zh) | 一种网络防攻击的方法及网络设备 | |
CN115314231A (zh) | 网络攻击信息处理方法、装置、电子设备及存储介质 | |
CN112039882A (zh) | 一种消息传输处理方法、系统、设备及存储介质 | |
CN111698299A (zh) | Session对象复制方法、装置、分布式微服务架构及介质 |
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 |