CN114285699B - 一种实现终端在分布式网关session唯一的方法及装置 - Google Patents
一种实现终端在分布式网关session唯一的方法及装置 Download PDFInfo
- Publication number
- CN114285699B CN114285699B CN202111559646.XA CN202111559646A CN114285699B CN 114285699 B CN114285699 B CN 114285699B CN 202111559646 A CN202111559646 A CN 202111559646A CN 114285699 B CN114285699 B CN 114285699B
- Authority
- CN
- China
- Prior art keywords
- gateway
- terminal
- authentication
- kafka
- gateways
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种实现终端在分布式网关session唯一的方法及装置,所述方法包括终端登入网关;利用网关进行数据库认证,认证成功后更新其自身的数据库信息;当网关完成设备认证后,则将终端的登录信息发布到kafka组件;利用其余各网关订阅kafka组件的kafka消息,当接收到终端的登录信息后,各网关根据预设的规则更新终端在其内部的本地缓存数据。本发明使用kafka作为分布式网关间的消息传递组件,具有低时延、高并发的特点,能够充分利用kafka的发布订阅机制,将网关切换消息发布到所有网关,从而实现分布式网关session唯一的目的。
Description
技术领域
本发明具体涉及一种实现终端在分布式网关session唯一的方法及装置。
背景技术
网关是设备连网极为重要的一环,它承担着接受设备连接、设备认证、协议转换、指令下发等功能。网关的健康与否决定了设备能否正常连接平台,一旦设备无法健康地连接平台,可能会产生巨大的损失。例如需要持续运转的混凝土搅拌车,当无法健康连接平台可能出现停转的情况,导致混弄土凝固从而造成损失。所以网关模块必须具备高并发、高稳定性的特点。如图1所示为现有技术中设备接入网关的结构示意图。如图2所示,现有技术中的指令下发流程包括:设备初次登录到网关以后,网关会对设备进行认证,这时网关会查询数据库数据确认登入的设备是否正确,认证完成后网关会将设备信息一份缓存在本地缓存中,一份更新到数据库中。当需要执行设备指令下发时,下发模块从数据库中找到网关的连接信息,从而找到对应的网关传递相关指令,网关再从自己的本地缓存中找到连接信息进行指令下发。缓存的目的就是减少设备认证与数据库的交互,当本地缓存存在时,直接与缓存完成认证,从而保证网关的高并发性。而网关本地缓存的数据有一定的时间期限。在某些场景下,例如网关程序更新导致的网关重启过程中,由于负载均衡的机制,在网关重启过程中会发生大量的设备切换网关,有时切换不止一次,而在切换过程中,会发生新旧网关的本地缓存同时存在设备的登录信息,当网关本地缓存存在相应设备信息时,此时设备再连接网关则不会更新数据库,多份缓存的存在叠加重启过程中的频繁切换导致数据库中的设备连接信息与实际不符,最终导致在指令下发过程中,设备明明在线,下发指令却无法下发到设备的问题。
发明内容
针对上述问题,本发明提出一种实现终端在分布式网关session唯一的方法及装置,使用kafka作为分布式网关间的消息传递组件,具有低时延、高并发的特点,能够充分利用kafka的发布订阅机制,将网关切换消息发布到所有网关,从而实现分布式网关session唯一的目的。
为了实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
第一方面,本发明提供了一种实现终端在分布式网关session唯一的方法,包括:终端登入网关;
利用网关进行数据库认证,认证成功后更新其自身的数据库信息;
当网关完成设备认证后,则将终端的登录信息发布到kafka组件;
利用其余各网关订阅kafka组件的kafka消息,当接收到终端的登录信息后,各网关根据预设的规则更新终端在其内部的本地缓存数据。
可选地,所述各网关根据预设的规则更新终端在其内部的本地缓存数据,具体包括:
如果是本网关则不做处理;
如果是其他网关,则需要清除该终端在其内部的本地缓存数据。
可选地,在利用网关进行数据库认证,认证成功后更新其自身的数据库信息步骤之后还包括:
更新设备管理库中与该终端对应的数据。
第二方面,本发明提供了一种实现终端在分布式网关session唯一的装置,包括:kafka组件和若干个独立设置的网关,各网关均与所述kafka组件分别相连;
当终端登入某网关后,利用该网关进行数据库认证,认证成功后更新其自身的数据库信息;当该网关完成设备认证后,则将终端的登录信息发布到kafka组件;
利用其余各网关订阅kafka组件的kafka消息,当接收到终端的登录信息后,各网关根据预设的规则更新终端在其内部的本地缓存数据。
可选地,所述各网关根据预设的规则更新终端在其内部的本地缓存数据,具体包括:
如果是本网关则不做处理;
如果是其他网关,则需要清除该终端在其内部的本地缓存数据。
可选地,所述装置还包括设备管理库;所述设备管理库用于存储与终端对应的数据。
与现有技术相比,本发明的有益效果:
本发明提出的一种实现终端在分布式网关session唯一的方法及装置,使用kafka作为分布式网关间的消息传递组件,具有低时延、高并发的特点,能够充分利用kafka的发布订阅机制,将网关切换消息发布到所有网关,从而实现分布式网关session唯一的目的。
附图说明
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1为现有技术中设备连接的结构示意图;
图2为现有技术中指令下发的流程示意图;
图3为本发明一种实施例的实现终端在分布式网关session唯一的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明的保护范围。
下面结合附图对本发明的应用原理作详细的描述。
由于原有的方案更新数据库信息的关键在于网关的本地缓存:有本地缓存则不会更新数据库,为此,本发明切入点就在于如何保证在分布式网关中中终端连接的缓存信息唯一,也就是保证session唯一。只要session唯一,当再出现终端切换网关的情况时,都会及时更新数据库。本发明中提出使用kafka组件作为消息中间件,当网关登入时,登入消息会通过kafka组件通知到其他网关,此时其他网关会检测本地缓存是否存在本终端的信息,存在则删除,这样就可以保证session唯一,这样终端下次再切换时,由于其他网关不存在终端的缓存信息,所以每次切换都会及时更新数据库。
实施例1
本发明实施例中提供了一种实现终端在分布式网关session唯一的方法,包括:
终端登入网关;
利用网关进行数据库认证,认证成功后更新其自身的数据库信息;
当网关完成设备认证后,则将终端的登录信息发布到kafka组件;
利用其余各网关订阅kafka组件的kafka消息,当接收到终端的登录信息后,各网关根据预设的规则更新终端在其内部的本地缓存数据。
在本发明实施例的一种具体实施方式中,所述各网关根据预设的规则更新终端在其内部的本地缓存数据,具体包括:
如果是本网关则不做处理;
如果是其他网关,则需要清除该终端在其内部的本地缓存数据。
在本发明实施例的一种具体实施方式中,在利用网关进行数据库认证,认证成功后更新其自身的数据库信息步骤之后还包括:
更新设备管理库中与该终端对应的数据。
实施例2
本发明实施例中提供了一种实现终端在分布式网关session唯一的装置,如图3所示,包括:kafka组件和若干个独立设置的网关,各网关均与所述kafka组件分别相连;
当终端登入某网关后,利用该网关进行数据库认证,认证成功后更新其自身的数据库信息;当该网关完成设备认证后,则将终端的登录信息发布到kafka组件;
利用其余各网关订阅kafka组件的kafka消息,当接收到终端的登录信息后,各网关根据预设的规则更新终端在其内部的本地缓存数据。
在本发明实施例的一种具体实施方式中,所述各网关根据预设的规则更新终端在其内部的本地缓存数据,具体包括:
如果是本网关则不做处理;
如果是其他网关,则需要清除该终端在其内部的本地缓存数据。
在本发明实施例的一种具体实施方式中,所述装置还包括设备管理库;所述设备管理库用于存储与终端对应的数据。
综上可见,本发明能够实现:
1.保留缓存机制保证网关的高并发特性;
2.使用kafka组件作为消息中间件,项目中本就存在,减少技术难度减少网关项目复杂度。
3.发布到kafka组件中的登录信息携带相关网关的ip和端口作为终端登录某网关的唯一识别码。
4.kafka组件作为消息中间件可实现毫秒级响应,足够满足网关频繁切换的场景。
5.session唯一即可保证数据库信息及时更新。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (2)
1.一种实现终端在分布式网关session唯一的方法,其特征在于,包括:
终端登入网关;
利用网关进行数据库认证,认证成功后更新其自身的数据库信息;
当网关完成设备认证后,则将终端的登录信息发布到kafka组件;
利用其余各网关订阅kafka组件的kafka消息,当接收到终端的登录信息后,各网关根据预设的规则更新终端在其内部的本地缓存数据;
所述各网关根据预设的规则更新终端在其内部的本地缓存数据,具体包括:
如果是本网关则不做处理;
如果是其他网关,则需要清除该终端在其内部的本地缓存数据;
在利用网关进行数据库认证,认证成功后更新其自身的数据库信息步骤之后还包括:
更新设备管理库中与该终端对应的数据。
2.一种实现终端在分布式网关session唯一的装置,其特征在于,包括:kafka组件和若干个独立设置的网关,各网关均与所述kafka组件分别相连;
当终端登入某网关后,利用该网关进行数据库认证,认证成功后更新其自身的数据库信息;当该网关完成设备认证后,则将终端的登录信息发布到kafka组件;
利用其余各网关订阅kafka组件的kafka消息,当接收到终端的登录信息后,各网关根据预设的规则更新终端在其内部的本地缓存数据;
所述各网关根据预设的规则更新终端在其内部的本地缓存数据,具体包括:
如果是本网关则不做处理;
如果是其他网关,则需要清除该终端在其内部的本地缓存数据;
所述装置还包括设备管理库;所述设备管理库用于在利用网关进行数据库认证,认证成功后更新其自身的数据库信息之后更新与终端对应的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111559646.XA CN114285699B (zh) | 2021-12-20 | 2021-12-20 | 一种实现终端在分布式网关session唯一的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111559646.XA CN114285699B (zh) | 2021-12-20 | 2021-12-20 | 一种实现终端在分布式网关session唯一的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114285699A CN114285699A (zh) | 2022-04-05 |
CN114285699B true CN114285699B (zh) | 2023-06-06 |
Family
ID=80873391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111559646.XA Active CN114285699B (zh) | 2021-12-20 | 2021-12-20 | 一种实现终端在分布式网关session唯一的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114285699B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205126A (zh) * | 2015-09-11 | 2015-12-30 | 武汉云空间地理信息技术有限公司 | 一种地图瓦片的存储方法及其存储系统 |
CN105827446A (zh) * | 2016-03-31 | 2016-08-03 | 深圳市金溢科技股份有限公司 | 一种智能交通api网关及智能交通业务系统 |
CN111666490A (zh) * | 2020-04-28 | 2020-09-15 | 中国平安财产保险股份有限公司 | 基于kafka的信息推送方法、装置、设备及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10404635B2 (en) * | 2017-03-21 | 2019-09-03 | Bank Of America Corporation | Optimizing data replication across multiple data centers |
US10599495B2 (en) * | 2017-05-12 | 2020-03-24 | American Express Travel Related Services Company, Inc. | Triggering of distributed data deletion |
CN109391500B (zh) * | 2017-08-11 | 2021-08-31 | 华为技术有限公司 | 一种配置管理方法、装置及设备 |
CN110569638B (zh) * | 2018-06-06 | 2021-08-06 | 中移(苏州)软件技术有限公司 | 一种api认证的方法、装置、存储介质及计算设备 |
TWI678087B (zh) * | 2018-11-22 | 2019-11-21 | 財團法人工業技術研究院 | 訊息佇列發佈與訂閱之同步方法及其系統 |
CN111327680B (zh) * | 2020-01-21 | 2023-01-03 | 数字广东网络建设有限公司 | 认证数据同步方法、装置、系统、计算机设备和存储介质 |
CN111651747B (zh) * | 2020-05-11 | 2024-05-24 | 腾讯科技(深圳)有限公司 | 登录票据同步系统及方法、相关设备 |
CN113741273A (zh) * | 2021-09-01 | 2021-12-03 | 珠海太川云社区技术股份有限公司 | 一种多网关场景联动的控制方法及系统 |
-
2021
- 2021-12-20 CN CN202111559646.XA patent/CN114285699B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205126A (zh) * | 2015-09-11 | 2015-12-30 | 武汉云空间地理信息技术有限公司 | 一种地图瓦片的存储方法及其存储系统 |
CN105827446A (zh) * | 2016-03-31 | 2016-08-03 | 深圳市金溢科技股份有限公司 | 一种智能交通api网关及智能交通业务系统 |
CN111666490A (zh) * | 2020-04-28 | 2020-09-15 | 中国平安财产保险股份有限公司 | 基于kafka的信息推送方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114285699A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9578081B2 (en) | System and method for providing an actively invalidated client-side network resource cache | |
CN103780679A (zh) | 基于http协议的长延时远程调用方法 | |
CN101090371B (zh) | 一种即时通讯系统中用户信息管理的方法及系统 | |
CN103167017A (zh) | Web轮询方法、装置及系统 | |
CA2482952A1 (en) | Method for implementing content delivery network (cdn) internetworking, respective networks and interface component | |
CN104604189A (zh) | 大型企业的高效状态发布机制 | |
CN113595806B (zh) | 一种基于opcua与mqtt协议的配网物联网通讯架构方法 | |
CN110062004A (zh) | 一种基于物联网协议的报文处理系统及方法 | |
CN106713497A (zh) | 一种服务器端消息推送装置、方法及消息推送系统 | |
US11589213B2 (en) | Presence server message handling | |
CN105991698A (zh) | 移动终端远程管理智能路由器文件的方法、系统及设备 | |
CN103546528A (zh) | 分布式消息推送方法及系统 | |
CN114285699B (zh) | 一种实现终端在分布式网关session唯一的方法及装置 | |
CN101019373A (zh) | 一种远程设备配置参数集的配置控制方法及装置 | |
CN101087263B (zh) | 一种通过搜索引擎获取用户状态信息的方法及系统 | |
CN104660664A (zh) | 用来管理储存系统的方法与装置 | |
CN107231433B (zh) | 一种分布式控制系统dcs通信松耦合管理方法 | |
CN112491614B (zh) | 一种用于嵌入式设备的配置信息在线自动生效方法及系统 | |
CN2929830Y (zh) | 一种搜索引擎服务器和搜索系统 | |
CN100421493C (zh) | 在设备连接会话过程中延时等待的实现方法 | |
CN114095508A (zh) | 一种同交换机下p2p传输的方法 | |
CN114172973B (zh) | 一种基于mqtt协议和698协议的数据转换处理方法及电子设备 | |
CN112804343A (zh) | 分布式服务治理方法及其系统、计算机可读介质 | |
CN111782322A (zh) | 基于云桌面服务器的内外网消息通讯服务器及系统 | |
Zhai et al. | An improved DDS publish/subscribe automatic discovery algorithm |
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 |