CN109995801A - 一种消息传输方法和装置 - Google Patents
一种消息传输方法和装置 Download PDFInfo
- Publication number
- CN109995801A CN109995801A CN201711472720.8A CN201711472720A CN109995801A CN 109995801 A CN109995801 A CN 109995801A CN 201711472720 A CN201711472720 A CN 201711472720A CN 109995801 A CN109995801 A CN 109995801A
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- storage queue
- consumer
- consumption
- 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
-
- 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/544—Buffers; Shared memory; Pipes
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种消息传输方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收至少一个消费标识;确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;输出所述存储队列中的消息。该实施方式通过向消息队列发送消费标识,消息队列将消息存入依据该消费标识构建的存储队列中,通过该存储队列与消费者进行消息传输,解决了现有技术中必须预先确定消息模式的技术问题,增加了用户使用的灵活性。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种消息传输方法和装置。
背景技术
Java消息服务(Java Message Service,JMS)是Java EE(Java PlatformEnterprise Edition)中面向消息的中间件(message-oriented middleware)的技术规范,中间件即为消息队列。JMS用于在两个应用程序之间,或者在分布式***中发送和接收消息,以实现异步的消息通信。
目前JMS支持两种消息模式,一种是点对点模式,另一种是发布-订阅模式。点对点模式的实现过程为:用户在消息队列中创建一个队列(Queue);生产者(Producer)连接消息队列的Queue,然后向Queue发送消息;消费者(Consumer)连接消息队列的Queue,然后从Queue接收消息。发布-订阅模式的实现过程为:用户在消息队列中创建一个主题(Topic);生产者(Producer)连接消息队列的Topic,然后向Topic发送消息;消费者(Consumer)连接消息队列的Topic,然后从Topic接收消息。在点对点模式中,任何一个生产者生产的消息只会被若干消费者中的其中一个消费;而在发布-订阅模式中,任何一个生产者生产的消息都会被所有消费者消费。
现有技术中进行消息传输时,需由用户预先确定消息模式后,根据消息模式在消息队列中创建Queue(点对点模式)或者Topic(发布-订阅模式);然后生产者、消息队列和消费者按照上述实现过程进行消息传输。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)现有技术中必须由用户预先确定消息模式才能进行消息传输,而在实际使用中用户可能无法确定消息模式;
(2)现有技术中消息队列在使用过程中,无法动态变更消息模式,比如无法从点对点模式变更为发布-订阅模式。
发明内容
有鉴于此,本发明实施例提供一种消息传输方法和装置,消费者向消息队列发送一个消费标识,消息队列将消息存入依据该消费标识构建的存储队列中,通过该存储队列与消费者进行消息传输。解决了现有技术中必须预先确定消息模式的技术问题,增加了用户使用的灵活性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种消息传输方法。
本发明实施例的一种消息传输方法,包括:接收至少一个消费标识;其中,所述消费标识包括消息类型;确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;输出所述存储队列中的消息。
可选地,所述消费标识为多个;所述确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中,包括:确认各所述消费标识均相同并且存在与所述消费标识相对应的存储队列时,从存储器获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;确认各所述消费标识存在不同并且存在与各所述消费标识相对应的存储队列时,从存储器分别获取与各所述消息类型相同的消息,然后将所述消息分别存入各所述存储队列中。
可选地,当各所述消费标识均相同时,所述输出所述存储队列中的消息,包括:将所述消息随机输出至与所述存储队列相对应的消费者中的一个;当各所述消费标识存在不同时,所述输出所述存储队列中的消息,包括:将各所述存储队列中的消息分别输出至与各所述存储队列相对应的消费者。
可选地,所述输出所述存储队列中的消息的步骤之后,还包括:确认与所述消费标识相对应的存储队列没有消费者连接时,销毁所述存储队列。
为实现上述目的,根据本发明实施例的一个方面,提供了一种消息传输装置。
本发明实施例的一种消息传输装置,包括:接收模块,用于接收至少一个消费标识;其中,所述消费标识包括消息类型;存储模块,用于确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;输出模块,用于输出所述存储队列中的消息。
可选地,所述消费标识为多个;所述存储模块,还用于:确认各所述消费标识均相同并且存在与所述消费标识相对应的存储队列时,从存储器获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;以及确认各所述消费标识存在不同并且存在与各所述消费标识相对应的存储队列时,从存储器分别获取与各所述消息类型相同的消息,然后将所述消息分别存入各所述存储队列中。
可选地,所述输出模块,还用于:将所述消息随机输出至与所述存储队列相对应的消费者中的一个;以及将各所述存储队列中的消息分别输出至与各所述存储队列相对应的消费者。
可选地,所述装置还包括:销毁模块,用于确认与所述消费标识相对应的存储队列没有消费者连接时,销毁所述存储队列。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种消息传输方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种消息传输方法。
上述发明中的一个实施例具有如下优点或有益效果:通过由消费者向消息队列发送消费标识,将消息存入依据该消费标识构建的存储队列中,实现了生产者、消息队列和消费者的消息传输,无需预先确定消息模式,增加了用户使用的灵活性;通过确认消费标识的异同将消息存入各消费标识对应的存储队列,然后将各存储队列的消息输出至消费者,以此实现了消息队列在使用过程中消息模式的动态变更;消费者如果需要变更消费标识,可以先断开与消息队列的连接,之后重新与消息队列建立连接并向消息队列发送新的消费标识,该操作在实际工程实践中增加了消息队列的健壮性和可靠性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有技术中点对点模式的消息传输示意图;
图2是现有技术中发布-订阅模式的消息传输示意图;
图3是根据本发明实施例的消息传输方法的主要步骤的示意图;
图4是根据本发明实施例的消息传输方法的主要流程示意图;
图5是根据本发明实施例的消息传输方法的信息交互示意图;
图6是根据本发明实施例的消息传输方法的点对点模式的实现示意图;
图7是根据本发明实施例的消息传输方法的发布-订阅模式的实现示意图;
图8是根据本发明实施例的消息传输方法的由点对点模式变更为发布-订阅模式的信息交互示意图;
图9是根据本发明实施例的消息传输方法的由发布-订阅模式变更为点对点模式的信息交互示意图;
图10是根据本发明实施例的消息传输装置的主要模块的示意图;
图11是本发明实施例可以应用于其中的示例性***架构图;
图12是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面对本发明实施例涉及到的术语进行解释说明。
生产者:创建消息并发送至消息队列的应用程序。
消费者:接收消息的应用程序。
消息:在生产者和消费者之间传递的数据。
消息队列:是指在消息的传输过程中保存消息的应用程序,一个消息队列可以包括多个Queue和Topic。
队列:Queue,一个暂存等待被消费的消息的容器,支持将一条消息发送给多个消费者中的一个。
主题:Topic,一个暂存等待被消费的消息的容器,支持将一条消息发送给多个消费者。
图1是现有技术中点对点模式的消息传输示意图。如图1所示,生产者为3个(Producer_1、Producer_2和Producer_3),消费者为两个(Consumer_1和Consumer_2),消息队列中预先创建了一个Queue。Producer_1、Producer_2和Producer_3分别生产了消息1、消息2和消息3,各生产者分别与Queue建立连接,之后将各自生产的消息分别发送至Queue;各消费者分别与Queue建立连接,之后Consumer_1从Queue中取出消息2并且消费该消息,Consumer_2从Queue中取出消息1和消息3,并且消费这两个消息。该消息模式中,消息1仅被Consumer_2消费,消息2仅被Consumer_1消费,消息3仅被Consumer_2消费。
图2是现有技术中发布-订阅模式的消息传输示意图。如图2所示,生产者为3个(Producer_1、Producer_2和Producer_3),消费者为两个(Consumer_1和Consumer_2),消息队列中预先创建了一个Topic。Producer_1、Producer_2和Producer_3分别生产了消息1、消息2和消息3,各生产者分别与Topic建立连接,之后将各自生产的消息分别发送至Topic;各消费者分别与Topic建立连接,之后由Topic将这3个消息均分别发送至Consumer_1和Consumer_2。该消息模式使得消息1同时被Consumer_1和Consumer_2消费,消息2同时被Consumer_1和Consumer_2消费,消息3同时被Consumer_1和Consumer_2消费。
图3是根据本发明实施例的消息传输方法的主要步骤的示意图。如图3所示,本发明实施例的消息传输方法,主要包括如下步骤:
步骤S301:接收至少一个消费标识。消费者连接消息队列,之后向消息队列发送一个消费标识。该消费标识由消费者生成,包括消息类型和标识,具体结构可以是message-collection_1#ID_1、message-collection_1#ID_2、message-collection_1#ID_3等;其中message-collection_1为消费者想要获取消息的消息类型,ID_1为标识。消息队列接收到该消费标识之后,执行步骤S302和步骤S303的存入输出操作。
步骤S302:确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中。生产者生产消息,将消息发送至消息队列。消息队列在收到消费标识后,检查当前是否存在与所述消费标识相对应的存储队列,如果存在,则将生产者发送来的与所述消息类型相同的消息存入该存储队列中;如果不存在,则创建与所述消费标识相对应的存储队列,之后将生产者发送来的与所述消息类型相同的消息存入该存储队列中。其中,所述存储队列用来暂时存放将要发送至消费者的消息。
步骤S303:输出所述存储队列中的消息。消息队列将与所述消费标识相对应的存储队列中的消息输出至消费者。本发明实施例的技术方案,通过与消费标识相对应的存储队列进行消息传输,在进行消息传输前,不需要预先确定消息模式。
图4是根据本发明实施例的消息传输方法的主要流程示意图。如图4所示,本发明实施例的消息传输方法,需要由用户在消息队列的控制台创建一个用于缓存消息的消息收集队列(message-collection),该message-collection既可以实现现有技术中Queue的功能,也可以实现Topic的功能,该消息收集队列可以包括多个存储队列。该方法主要包括以下步骤:
步骤S401:生产者连接消息队列,之后将生产的消息发送至消息队列。生产者生产的每个消息中带有消息类型,该消息类型对应于消息队列在控制台创建的消息收集队列的名称。所述消息类型,比如可以是:message-collection_1、message-collection_2。实施例中生产者和消息队列之间基于TCP(Transmission Control Protocol,传输控制协议)长连接进行连接。在一优选的实施例中,生产者为Producer_1,Producer_1将消息类型为message-collection_1的消息发送至消息队列。
步骤S402:消息队列将消息持久化存放到存储器(比如磁盘)中。消息队列依据消息类型将收到的消息分别存放到存储器的各消息集合中。比如,消息类型为message-collection_1,则放在存储器中名称为message-collection_1的消息集合中;消息类型为message-collection_2,则放在存储器中名称为message-collection_2的消息集合中。另外,如果消息的数量少,可以跳过该步骤,直接存放入与消费标识相对应的存储队列;但是如果消息数量过大,消费者的消费速度慢,存储队列会被存满,当再有新的消息到来时,就不能再进行存储,只能丢弃该消息。因此,实际工程应用中消息队列会把收到的所有消息存放在磁盘中。
步骤S403:消费者连接消息队列,之后向消息队列发送消费标识。实施例中消费者和消息队列之间基于TCP长连接进行连接。在一实施例中,消费者为Consumer_1,消费标识为message-collection_1#ID_1,Consumer_1向消息队列发送message-collection_1#ID_1。
步骤S404:消息队列接收到消费标识后,判断是否存在与所述消费标识相对应的存储队列,如果不存在,则执行步骤S405;如果存在,则执行步骤S406。在一优选的实施例中,判断是否存在名称为message-collection_1#ID_1的存储队列,如果不存在,则创建名称为message-collection_1#ID_1的存储队列。
步骤S405:消息队列创建与所述消费标识相对应的存储队列,执行步骤S406。
步骤S406:消息队列根据消费标识中的消息类型从存储器中读取消息,之后把消息放入所述存储队列中。在一优选的实施例中,收到的消费标识中消息类型为message-collection_1,消息队列从存储器中名称为message-collection_1的消息集合读取消息,之后将消息放入名称为message-collection_1#ID_1的存储队列中。如果收到的消费标识中消息类型message-collection_2,则从存储器中名称为message-collection_2的消息集合读取消息,之后将消息放入名称为message-collection_2#ID_1的存储队列中。
步骤S407:消息队列将所述存储队列中的消息发送至消费者。在一优选的实施例中,消息队列将名称为message-collection_1#ID_1的存储队列中的消息发送至Consumer_1。上述步骤中,步骤S401和步骤S403均为准备工作,本发明并不限定这两个步骤的实现顺序。但是,步骤S401执行完毕后需执行步骤S402;步骤S403执行完毕后,需执行步骤S404;步骤S402和步骤S404均执行完毕后,执行步骤S405-步骤S407。
图5是根据本发明实施例的消息传输方法的信息交互示意图。如图5所示,Producer_1通过P1与消息队列建立连接,通过P2将消息发送至消息队列;Consumer_1通过C1与消息队列建立连接,以及发送message-collection_1#ID_1至消息队列;消息队列通过P3将来自Producer_1的消息存储到磁盘,通过C2创建名称为message-collection_1#ID_1的存储队列,通过C3从磁盘读取消息,通过C4将读取到的消息放入名称为message-collection_1#ID_1的存储队列,通过C5将消息发送至Consumer_1。
上述实施例以一个消费者为例对消息传输过程进行了说明。由上述可知,名称为message-collection_1#ID_1的存储队列中的每一条消息,只会发送给消费标识为message-collection_1#ID_1的所有消费者中的一个,此时处于点对点模式。假设接下来另一个消费者(Consumer_2)连接消息队列,然后向消息队列发送消费标识(该消费标识的消息类型与Consumer_1向消息队列发送的消息类型相同),以两个消费者为例对本发明实施例的消息传输方法做进一步说明,具体见实施例一和
实施例二。实施例一和实施例二中消费标识分别为message-collection_1#ID_1和message-collection_1#ID_2,由于消息队列与Consumer_1的处理过程与步骤S403至步骤S407相同,因此这两个实施例中仅描述了消息队列与Consumer_2的处理过程。
图6是根据本发明实施例的消息传输方法的点对点模式的实现示意图。如图6所示,假设接下来Consumer_2连接消息队列并发送了一个与Consumer_1相同的消费标识(message-collection_1#ID_1),此时消息队列与Consumer_2的处理过程如下:
实施例一:
(1)Consumer_2连接消息队列,之后向消息队列发送message-collection_1#ID_1;
(2)消息队列接收到message-collection_1#ID_1后,经比较确认两个消费标识相同且名称为message-collection_1#ID_1的存储队列仍旧存在;
(3)消息队列从存储器中读取消息类型为message-collection_1的所有消息,之后把消息放入名称为message-collection_1#ID_1的存储队列中。假设向名称为message-collection_1#ID_1的存储队列中放入三条消息,分别是消息1、2和3。
(4)消息队列将名称为message-collection_1#ID_1的存储队列中的消息随机发送至与所述存储队列相对应的消费者中的一个消费者。其中,与所述存储队列相对应的消费者是指消费标识与存储队列的名称相同的消费者。比如,将消息1和消息2发送至Consumer_1,把消息3发送至Consumer_2。
由上述可知,相同消费标识的消费者之间,每一条消息只会发送至所有消费者中的其中一个,此过程正是点对点的消息模式。
图7是根据本发明实施例的消息传输方法的发布-订阅模式的实现示意图。如图7所示,假设接下来Consumer_2连接消息队列并发送了一个与Consumer_1不同的消费标识(message-collection_1#ID_2),此时消息队列与Consumer_2的处理过程如下:
实施例二:
(1)Consumer_2连接消息队列,之后向消息队列发送message-collection_1#ID_2;
(2)消息队列接收到message-collection_1#ID_2后,判断是否存在名称为message-collection_1#ID_2的存储队列,如果不存在,则创建所述存储队列,执行(3);如果存在,则直接执行(3);
(3)消息队列从存储器中读取消息类型为message-collection_1的所有消息,之后把消息放入名称为message-collection_1#ID_2的存储队列中;
(4)消息队列将名称为message-collection_1#ID_2的存储队列中的消息发送至Consumer_2。
由上述可知,对于消费者发送来的每一个消费标识,消息队列都会创建一个与消费标识相对应的存储队列;生产者生产的每一条消息类型与消费标识的消息类型相同的消息,会被分别放入前缀名为该消息类型的存储队列中。通过上述操作可以确保,对于每一条属于某个消息类型的消息,不同消费标识的消费者之间是发布-订阅模式。比如,由于消费标识不同,一条消息会分别被添加到名称为message-collection_1#ID_1的存储队列和名称为message-collection_1#ID_2的存储队列中,然后名称为message-collection_1#ID_1的存储队列中的消息被发送给Consumer_1,名称为message-collection_1#ID_2的存储队列中的消息被发送给Consumer_2,此过程正是发布-订阅的消息模式。
在本发明的另一个优选的实施例中,假设有4个消费者(消费者1-消费者4)均连接了消息队列,消费者1和消费者2向消息队列发送的消费标识为message-collection_1#ID_1,消费者3和消费者4向消息队列发送的消费标识为message-collection_1#ID_2。当生产者生产了一条消息并将该消息发送至消息队列后,该消息会被分别存储在名称为message-collection_1#ID_1和message-collection_1#ID_2的存储队列。消息队列将名称为message-collection_1#ID_1的存储队列中的消息随机发送至消费者1和消费者2中的其中一个进行消费;消息队列将名称为message-collection_1#ID_2的存储队列中的消息随机发送至消费者3和消费者4中的其中一个进行消费。
消息队列在使用过程中,如果想要把点对点模式变更为发布-订阅模式,让消费者使用不同消费标识(即让各消费者的消费标识中消息类型相同,标识不同)即可。当消息队列发现消费者的消费标识不同之后,自动变更为发布-订阅模式。下面用实施例三说明如何将实施例一的点对点模式变更为发布-订阅模式。由于消息队列与Consumer_1的连接关系未发生改变,所以消息队列与Consumer_1的处理过程不变,故实施例三中仅描述了消息队列与Consumer_2的处理过程。
实施例三:假设接下来Consumer_2关闭与消息队列的连接,之后重新与消息队列建立连接并发送与Consumer_1不同的消费标识(message-collection_1#ID_2),此时消息队列与Consumer_2的处理过程如下:
(1)Consumer_2关闭与消息队列的连接。将Consumer_2的应用程序关闭,Consumer_2就会自动断开与消息队列的连接。
(2)消息队列发现Consumer_2关闭与其的连接后,检查当前存在的所有存储队列,发现名称为message-collection_1#ID_1的存储队列仍旧有消费者在使用,不对该存储队列进行任何处理。
(3)Consumer_2重新连接消息队列,之后向消息队列发送与Consumer_1不同的消费标识,比如发送的消费标识为message-collection_1#ID_2。Consumer_2不关闭与消息队列的连接,直接向消息队列发送message-collection_1#ID_2也是可以的,但是实际工程实践中,这样处理会有健壮性、可靠性和复杂性的问题。
(4)消息队列接收到message-collection_1#ID_2后,判断是否存在名称为message-collection_1#ID_2的存储队列,如果不存在,则创建所述存储队列,执行(5);如果存在,则直接执行(5)。
(5)消息队列从存储器中读取消息类型为message-collection_1的所有消息,之后把消息放入名称为message-collection_1#ID_2的存储队列中。
(6)消息队列将名称为message-collection_1#ID_2的存储队列中的消息发送至Consumer_2。
图8是根据本发明实施例的消息传输方法的由点对点模式变更为发布-订阅模式的信息交互示意图。如图8所示,在点对点模式时,Consumer_1首先通过C1_1与消息队列建立连接,以及发送message-collection_1#ID_1至消息队列;之后消息队列通过C2-1创建名称为message-collection_1#ID_1的存储队列,其次通过C1_3从磁盘读取消息类型为message-collection_1的所有消息,然后将通过C1_3读取的消息通过C1-4放入名称为message-collection_1#ID_1的存储队列,最后通过C1_5将消息发送至Consumer_1。
由点模式变更为发布-订阅模式时,首先Consumer_2通过C2_0关闭与消息队列的连接;之后Consumer_2通过C2_1重新与消息队列建立连接,以及发送message-collection_1#ID_2至消息队列;之后消息队列通过C2-2创建名称为message-collection_1#ID_2的存储队列;其次消息队列通过C2_3从磁盘读取消息类型为message-collection_1的所有消息,然后将通过C2_3读取的消息通过C2-4放入名称为message-collection_1#ID_2的存储队列;最后消息队列通过C2_5将消息发送至Consumer_2。
消息队列在使用过程中,如果想要把发布-订阅模式变更为点对点模式,让所有消费者使用相同消费标识即可。当消息队列发现消费者的消费标识相同之后,自动变更为点对点模式。下面用实施例四说明如何将实施例二的发布-订阅模式变更为点对点模式。由于消息队列与Consumer_1的连接关系未发生改变,所以消息队列与Consumer_1的处理过程不变,故实施例四中仅描述了消息队列与Consumer_2的处理过程。
实施例四:假设接下来Consumer_2关闭与消息队列的连接,之后重新与消息队列建立连接并发送与Consumer_1相同的消费标识(message-collection_1#ID_1),此时消息队列与Consumer_2的处理过程如下:
(1)Consumer_2关闭与消息队列的连接。
(2)消息队列发现Consumer_2关闭与其的连接后,检查当前存在的所有存储队列,发现名称为message-collection_1#ID_2的存储队列没有任何消费者在使用了,则销毁称为message-collection_1#ID_2的存储队列。实施例中通过将存储队列的名称与当前连接的各消费者的消费标识相比较,如果该存储队列的名称与所有消费者的消费标识均不相同,则该存储队列已经不被任何消费者使用了。
(3)Consumer_2重新连接消息队列,之后向消息队列发送message-collection_1#ID_1。
(4)消息队列接收到message-collection_1#ID_1后,经比较确认两个消费标识相同且名称为message-collection_1#ID_1的存储队列仍旧存在。
(5)消息队列从存储器中读取消息类型为message-collection_1的所有消息,之后把消息放入名称为message-collection_1#ID_1的存储队列中。假设向名称为message-collection_1#ID_1的存储队列中放入三条消息,分别是消息1、2和3。
(6)消息队列将名称为message-collection_1#ID_1的存储队列中的消息随机发送至各消费者中的一个消费者。比如,将消息1和消息2发送至Consumer_1,把消息3发送至Consumer_2。
图9是根据本发明实施例的消息传输方法的由发布-订阅模式变更为点对点模式的信息交互示意图。如图9所示,由点对点模式变更为发布-订阅模式时,首先Consumer_2通过D1关闭与消息队列的连接;之后消息队列通过D2发现名称为message-collection_1#ID_2的存储队列没有消费者使用,销毁该存储队列;之后Consumer_2通过D3重新与消息队列建立连接,以及发送message-collection_1#ID_1至消息队列;之后消息队列通过D4从磁盘读取消息类型为message-collection_1的所有消息,然后通过D5将读取的消息放入名称为message-collection_1#ID_1的存储队列;最后消息队列通过D6将消息1发送至Consumer_1,通过D7将消息1发送至Consumer_1,通过D8将消息3发送至Consumer_2。
通过本发明实施例的消息传输方法可以看出,通过由消费者向消息队列发送消费标识,将消息存入依据该消费标识构建的存储队列中,实现了生产者、消息队列和消费者的消息传输,无需预先确定消息模式,增加了用户使用的灵活性;通过确认消费标识的异同将消息存入各消费标识对应的存储队列,然后将各存储队列的消息输出至消费者,以此实现了消息队列在使用过程中消息模式的动态变更;消费者如果需要变更消费标识,可以先断开与消息队列的连接,之后重新与消息队列建立连接并向消息队列发送新的消费标识,该操作在实际工程实践中增加了消息队列的健壮性和可靠性。
图10是根据本发明实施例的消息传输装置的主要模块的示意图。如图10所示,本发明实施例的消息传输装置100,主要包括:
接收模块101,用于接收至少一个消费标识。消费者连接消息队列,之后向消息队列发送一个消费标识。该消费标识由消费者生成,具体结构可以是message-collection_1#ID_1、message-collection_1#ID_2、message-collection_1#ID_3等。
存储模块102,用于确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中。生产者生产消息,将消息发送至消息队列。消息队列在收到消费标识后,检查当前是否存在与所述消费标识相对应的存储队列,如果存在,则将生产者发送来的与所述消息类型相同的消息存入该存储队列中;如果不存在,则创建与所述消费标识相对应的存储队列,之后将生产者发送来的与所述消息类型相同的消息存入该存储队列中。
输出模块103,用于输出所述存储队列中的消息。消息队列中的与所述消费标识相对应的存储队列把消息输出至消费者。本发明实施例的技术方案,通过与消费标识相对应的存储队列进行消息传输,在进行消息传输前,不需要预先确定消息模式。
另外,本发明实施例的消息传输装置100还可以包括:销毁模块(图中未示出),该模块用于确认与所述消费标识相对应的存储队列没有消费者连接时,销毁所述存储队列。
从以上描述可以看出,通过由消费者向消息队列发送消费标识,将消息存入依据该消费标识构建的存储队列中,实现了生产者、消息队列和消费者的消息传输,无需预先确定消息模式,增加了用户使用的灵活性;通过确认消费标识的异同将消息存入各消费标识对应的存储队列,然后将各存储队列的消息输出至消费者,以此实现了消息队列在使用过程中消息模式的动态变更;消费者如果需要变更消费标识,可以先断开与消息队列的连接,之后重新与消息队列建立连接并向消息队列发送新的消费标识,该操作在实际工程实践中增加了消息队列的健壮性和可靠性。
图11示出了可以应用本发明实施例的消息传输方法或消息传输装置的示例性***架构110。
如图11所示,***架构110可以包括终端设备111、112、113,网络114和服务器115。网络114用以在终端设备111、112、113和服务器115之间提供通信链路的介质。网络114可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备111、112、113通过网络114与服务器115交互,以接收或发送消息等。终端设备111、112、113上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备111、112、113可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器115可以是提供各种服务的服务器,例如对用户利用终端设备111、112、113所产生的点击事件提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的点击数据、文本内容等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本申请实施例所提供的消息传输方法一般由服务器115执行,相应地,消息传输装置一般设置于服务器115中。
应该理解,图11中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种消息传输方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种消息传输方法。
下面参考图12,其示出了适用于来实现本发明实施例的电子设备的计算机***120的结构示意图。图12示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算机***120包括中央处理单元(CPU)121,其可以根据存储在只读存储器(ROM)122中的程序或者从存储部分128加载到随机访问存储器(RAM)123中的程序而执行各种适当的动作和处理。在RAM 123中,还存储有计算机***120操作所需的各种程序和数据。CPU 121、ROM 122以及RAM 123通过总线124彼此相连。输入/输出(I/O)接口125也连接至总线124。
以下部件连接至I/O接口125:包括键盘、鼠标等的输入部分126;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分127;包括硬盘等的存储部分128;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分129。通信部分129经由诸如因特网的网络执行通信处理。驱动器130也根据需要连接至I/O接口125。可拆卸介质131,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器130上,以便于从其上读出的计算机程序根据需要被安装入存储部分128。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分129从网络上被下载和安装,和/或从可拆卸介质131被安装。在该计算机程序被中央处理单元(CPU)121执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、存储模块和输出模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块还可以被描述为“接收至少一个消费标识的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收至少一个消费标识;其中,所述消费标识包括消息类型;确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;输出所述存储队列中的消息。
从以上描述可以看出,通过由消费者向消息队列发送消费标识,将消息存入依据该消费标识构建的存储队列中,实现了生产者、消息队列和消费者的消息传输,无需预先确定消息模式,增加了用户使用的灵活性;通过确认消费标识的异同将消息存入各消费标识对应的存储队列,然后将各存储队列的消息输出至消费者,以此实现了消息队列在使用过程中消息模式的动态变更;消费者如果需要变更消费标识,可以先断开与消息队列的连接,之后重新与消息队列建立连接并向消息队列发送新的消费标识,该操作在实际工程实践中增加了消息队列的健壮性和可靠性。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种消息传输方法,其特征在于,包括:
接收至少一个消费标识;其中,所述消费标识包括消息类型;
确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;
输出所述存储队列中的消息。
2.根据权利要求1所述的方法,其特征在于,所述消费标识为多个;
所述确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中,包括:
确认各所述消费标识均相同并且存在与所述消费标识相对应的存储队列时,从存储器获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;
确认各所述消费标识存在不同并且存在与各所述消费标识相对应的存储队列时,从存储器分别获取与各所述消息类型相同的消息,然后将所述消息分别存入各所述存储队列中。
3.根据权利要求2所述的方法,其特征在于,当各所述消费标识均相同时,所述输出所述存储队列中的消息,包括:将所述消息随机输出至与所述存储队列相对应的消费者中的一个;
当各所述消费标识存在不同时,所述输出所述存储队列中的消息,包括:将各所述存储队列中的消息分别输出至与各所述存储队列相对应的消费者。
4.根据权利要求1或3所述的方法,其特征在于,所述输出所述存储队列中的消息的步骤之后,还包括:确认与所述消费标识相对应的存储队列没有消费者连接时,销毁所述存储队列。
5.一种消息传输装置,其特征在于,包括:
接收模块,用于接收至少一个消费标识;其中,所述消费标识包括消息类型;
存储模块,用于确认存在与所述消费标识相对应的存储队列时,获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;
输出模块,用于输出所述存储队列中的消息。
6.根据权利要求5所述的装置,其特征在于,所述消费标识为多个;所述存储模块,还用于:
确认各所述消费标识均相同并且存在与所述消费标识相对应的存储队列时,从存储器获取与所述消息类型相同的消息,然后将所述消息存入所述存储队列中;以及
确认各所述消费标识存在不同并且存在与各所述消费标识相对应的存储队列时,从存储器分别获取与各所述消息类型相同的消息,然后将所述消息分别存入各所述存储队列中。
7.根据权利要求6所述的装置,其特征在于,所述输出模块,还用于:
将所述消息随机输出至与所述存储队列相对应的消费者中的一个;以及
将各所述存储队列中的消息分别输出至与各所述存储队列相对应的消费者。
8.根据权利要求5或7所述的装置,其特征在于,所述装置还包括:销毁模块,用于确认与所述消费标识相对应的存储队列没有消费者连接时,销毁所述存储队列。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711472720.8A CN109995801B (zh) | 2017-12-29 | 2017-12-29 | 一种消息传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711472720.8A CN109995801B (zh) | 2017-12-29 | 2017-12-29 | 一种消息传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109995801A true CN109995801A (zh) | 2019-07-09 |
CN109995801B CN109995801B (zh) | 2022-11-08 |
Family
ID=67108946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711472720.8A Active CN109995801B (zh) | 2017-12-29 | 2017-12-29 | 一种消息传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995801B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365802A (zh) * | 2019-08-26 | 2019-10-22 | 北京奇艺世纪科技有限公司 | 一种消息传输方法、消息转发设备及存储介质 |
CN110505162A (zh) * | 2019-08-08 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 消息传输方法、装置及电子设备 |
CN110674004A (zh) * | 2019-08-28 | 2020-01-10 | 北京奇艺世纪科技有限公司 | 一种队列消息记录方法、***、电子设备及存储介质 |
CN111401819A (zh) * | 2020-04-08 | 2020-07-10 | 上海东普信息科技有限公司 | ***间数据推送方法及*** |
CN112711485A (zh) * | 2019-10-25 | 2021-04-27 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN113296977A (zh) * | 2021-02-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种消息处理方法及装置 |
CN113961379A (zh) * | 2021-12-22 | 2022-01-21 | 零犀(北京)科技有限公司 | 基于人机对话的消息处理方法及装置 |
CN115379012A (zh) * | 2022-10-25 | 2022-11-22 | 航天云网数据研究院(广东)有限公司 | 基于标识解析的工业互联平台消息队列部署方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064619A (zh) * | 2007-05-25 | 2007-10-31 | 上海众恒信息产业有限公司 | 一种具有主题分发功能的资源管理平台及其方法 |
CN101466109A (zh) * | 2009-01-14 | 2009-06-24 | 北京邮电大学 | 一种WiMAX网络管理的通信***和方法 |
CN101510857A (zh) * | 2009-03-27 | 2009-08-19 | 腾讯科技(深圳)有限公司 | 一种im消息的处理方法和装置 |
CN102215177A (zh) * | 2011-05-31 | 2011-10-12 | 广州华多网络科技有限公司 | 一种即时通讯软件的***消息的处理方法与装置 |
CN103051521A (zh) * | 2013-01-09 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种云环境下消息的转发方法 |
CN106021315A (zh) * | 2016-05-05 | 2016-10-12 | 智者四海(北京)技术有限公司 | 一种应用程序的日志管理方法及*** |
-
2017
- 2017-12-29 CN CN201711472720.8A patent/CN109995801B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064619A (zh) * | 2007-05-25 | 2007-10-31 | 上海众恒信息产业有限公司 | 一种具有主题分发功能的资源管理平台及其方法 |
CN101466109A (zh) * | 2009-01-14 | 2009-06-24 | 北京邮电大学 | 一种WiMAX网络管理的通信***和方法 |
CN101510857A (zh) * | 2009-03-27 | 2009-08-19 | 腾讯科技(深圳)有限公司 | 一种im消息的处理方法和装置 |
CN102215177A (zh) * | 2011-05-31 | 2011-10-12 | 广州华多网络科技有限公司 | 一种即时通讯软件的***消息的处理方法与装置 |
CN103051521A (zh) * | 2013-01-09 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种云环境下消息的转发方法 |
CN106021315A (zh) * | 2016-05-05 | 2016-10-12 | 智者四海(北京)技术有限公司 | 一种应用程序的日志管理方法及*** |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505162A (zh) * | 2019-08-08 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 消息传输方法、装置及电子设备 |
CN110505162B (zh) * | 2019-08-08 | 2022-07-26 | 腾讯科技(深圳)有限公司 | 消息传输方法、装置及电子设备 |
CN110365802A (zh) * | 2019-08-26 | 2019-10-22 | 北京奇艺世纪科技有限公司 | 一种消息传输方法、消息转发设备及存储介质 |
CN110365802B (zh) * | 2019-08-26 | 2022-11-15 | 北京奇艺世纪科技有限公司 | 一种消息传输方法、消息转发设备及存储介质 |
CN110674004A (zh) * | 2019-08-28 | 2020-01-10 | 北京奇艺世纪科技有限公司 | 一种队列消息记录方法、***、电子设备及存储介质 |
CN112711485A (zh) * | 2019-10-25 | 2021-04-27 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN111401819A (zh) * | 2020-04-08 | 2020-07-10 | 上海东普信息科技有限公司 | ***间数据推送方法及*** |
CN113296977A (zh) * | 2021-02-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种消息处理方法及装置 |
CN113296977B (zh) * | 2021-02-24 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种消息处理方法及装置 |
CN113961379A (zh) * | 2021-12-22 | 2022-01-21 | 零犀(北京)科技有限公司 | 基于人机对话的消息处理方法及装置 |
CN113961379B (zh) * | 2021-12-22 | 2022-04-12 | 零犀(北京)科技有限公司 | 基于人机对话的消息处理方法及装置 |
CN115379012A (zh) * | 2022-10-25 | 2022-11-22 | 航天云网数据研究院(广东)有限公司 | 基于标识解析的工业互联平台消息队列部署方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109995801B (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109995801A (zh) | 一种消息传输方法和装置 | |
CN109274731A (zh) | 基于多租户技术的web服务的部署、调用方法和装置 | |
CN109257320A (zh) | 消息存储方法和装置 | |
CN110019125A (zh) | 数据库管理的方法和装置 | |
CN110245011A (zh) | 一种任务调度方法和装置 | |
CN107844324A (zh) | 客户端页面跳转处理方法和装置 | |
CN110427304A (zh) | 用于银行***的运维方法、装置、电子设备以及介质 | |
CN109032796A (zh) | 一种数据处理方法和装置 | |
CN109981322A (zh) | 基于标签的云资源管理的方法和装置 | |
CN110019539A (zh) | 一种数据仓库的数据同步的方法和装置 | |
CN109710905A (zh) | 文档协同编辑方法、装置、存储介质及电子设备 | |
CN110070394A (zh) | 数据处理方法、***、介质和计算设备 | |
CN109981719A (zh) | 信息处理方法及其***、计算机***和计算机可读介质 | |
CN110515741A (zh) | 一种基于本地任务队列的降级处理方法和装置 | |
CN109976919A (zh) | 一种消息请求的传输方法和装置 | |
CN109271259A (zh) | 企业服务总线***、数据处理方法、终端及存储介质 | |
CN109814957A (zh) | 一种用于ios***的标签添加方法和装置 | |
CN108805379A (zh) | 支持多模式履约流程的***和方法 | |
CN108875355A (zh) | 一种访问权限的控制方法和装置 | |
CN108989157A (zh) | 用于智能设备控制的方法、装置 | |
CN109981546A (zh) | 获取应用模块间的远程调用关系的方法和装置 | |
CN109413212A (zh) | 用于处理请求的方法和装置 | |
CN109005250A (zh) | 用于访问服务端的方法和装置 | |
CN110098921A (zh) | 验证码生成方法、装置、应用服务端和*** | |
CN108092858B (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 |