CN115250267B - 微服务会话管理方法、装置、计算机设备及存储介质 - Google Patents

微服务会话管理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN115250267B
CN115250267B CN202210868101.5A CN202210868101A CN115250267B CN 115250267 B CN115250267 B CN 115250267B CN 202210868101 A CN202210868101 A CN 202210868101A CN 115250267 B CN115250267 B CN 115250267B
Authority
CN
China
Prior art keywords
session
service
micro
target
tracking
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
Application number
CN202210868101.5A
Other languages
English (en)
Other versions
CN115250267A (zh
Inventor
冯丽琼
文彬
贺德涛
章林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202210868101.5A priority Critical patent/CN115250267B/zh
Publication of CN115250267A publication Critical patent/CN115250267A/zh
Application granted granted Critical
Publication of CN115250267B publication Critical patent/CN115250267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及应用开发管理技术领域,公开了一种微服务会话管理方法、装置、计算机设备及存储介质,该微服务会话管理方法,包括:对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值;以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布;接收目标终端发送的再次访问请求,根据会话ID和浏览器Cookie值将再次访问请求分配至目标微服务的目标进程。本申请能够对访问微服务的会话进行有效的会话管理。

Description

微服务会话管理方法、装置、计算机设备及存储介质
技术领域
本发明涉及应用开发管理技术领域,尤其涉及一种微服务会话管理方法、装置、计算机设备及存储介质。
背景技术
Istio是一种微服务框架,是由谷歌、IBM与Lyft共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式,且作为下一代微服务的基础架构在实际项目中得到越来越多的应用。
在Istio应用过程中我们发现,无论是将传统应用还是现有的微服务迁移到Istio,或者重新构建微服务,通常采用会话跟踪技术来跟踪用户的整个会话。常用的会话跟踪技术有cookie和session,cookie通过在客户端记录信息确定用户身份,session通过服务器端记录信息确定用户身份。无论是cookie还是session,对微服务会话的管理和追踪都是必不可少的,而Istio既没有提供会话管理和追踪的相关解决方案,现有技术也没有足够的案例可以参考。
因此,如何为运行在Istio的微服务,提供便利有效的会话管理方案,是一个亟待解决的问题。
发明内容
本发明提供一种微服务会话管理方法、装置、计算机设备及存储介质,能够对访问微服务的会话进行有效的会话管理。
第一方面,提供了一种微服务会话管理方法,包括:
对于首次访问目标微服务的目标终端,建立所述目标终端访问所述目标微服务的会话,并生成所述会话对应的会话ID和浏览器Cookie值;
以所述会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布;
接收所述目标终端发送的再次访问请求,根据所述会话ID和所述浏览器Cookie值将所述再次访问请求分配至所述目标微服务的目标进程。
第二方面,提供了一种微服务会话管理系统,包括:
会话管理模块,用于对于首次访问目标微服务的目标终端,建立所述目标终端访问所述目标微服务的会话,并生成所述会话对应的会话ID和浏览器Cookie值;
会话追踪模块,用于以所述会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布;
负载均衡模块,用于接收所述目标终端发送的再次访问请求,根据所述会话ID和所述浏览器Cookie值将所述再次访问请求分配至所述目标微服务的目标进程。
第三方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述微服务会话管理方法的步骤。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述微服务会话管理方法的步骤。
上述微服务会话管理方法、装置、计算机设备及存储介质所实现的方案中,对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值。若接收到目标终端发送的再次访问请求,可根据会话ID和浏览器Cookie值将再次访问请求分配至与目标终端建立会话连接的目标微服务,并选择之前处理过同类访问请求的目标进程,使该目标进程对访问请求进行处理,可以根据需求将同类请求分配给相同的微服务进程,使得用户终端访问微服务的会话处理更加系统和简洁,效率更高。本发明还以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布,可用于后续进行用户行为分析,从而实现了对访问微服务的会话进行有效的会话管理和链路追踪等,且操作简单方便,实用性强。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中微服务会话管理方法的一应用环境示意图;
图2是本发明一实施例中微服务会话管理方法的一流程示意图;
图3是本发明一实施例中微服务会话管理方法的原理流程示意图;
图4是本发明一实施例中微服务会话管理系统的一结构示意图;
图5是本发明一实施例中计算机设备的一结构示意图;
图6是本发明一实施例中计算机设备的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的微服务会话管理方法,可应用在如图1的应用环境中,其中,用户终端通过网络与微服务会话管理系统进行通信。该微服务会话管理系系统,对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值。若接收到目标终端发送的再次访问请求,可根据会话ID和浏览器Cookie值将再次访问请求分配至与目标终端建立会话连接的目标微服务,并选择之前处理过同类访问请求的目标进程,使该目标进程对访问请求进行处理,可以根据需求将同类请求分配给相同的微服务进程,使得用户终端访问微服务的会话处理更加系统和简洁,效率更高。本发明还以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布,可用于后续进行用户行为分析。从而实现了对访问微服务的会话进行有效的会话管理和链路追踪,且操作简单方便,实用性强。
下面通过具体的实施例对本发明进行详细的描述。
请参阅图2所示,图2为本发明实施例提供的微服务会话管理方法的一个流程示意图,包括如下步骤:
步骤S1,对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值。
其中,目标终端可以为任意用户终端。目标微服务可以是任意微服务,例如但不限于任意基于Istio微服务框架的微服务。Istio为一微服务基础框架,是由谷歌、IBM与Lyft共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。例如K8s(Kubernetes,一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化)Deployment(K8s中用来管理发布的控制器)的各种app。
会话,即session(也称为会话控制),Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。Session通常保持(用户会话与服务器连接)一定时间后,若长时间没有动作,或者是连接超过了有效时间,则Session会过期。当session过期或被放弃后,服务器将终止该会话。用户会话的session数据会被清空或回收。其中,session过期时间一般设置为几十分钟,例如但不限于30分钟。通常,会话状态仅在支持cookie的浏览器中保留。
会话ID是一种唯一标识当前访问服务器的用户终端的只读值。会话ID通常以加密(也可以不加密)的、非持久存在的cookie形式保存在用户终端上。客户终端发出的访问请求,均包含加密会话ID和浏览器Cookie值,若Cookie值已存在的情况下,即被发送给相应的服务器。服务器随后确定cooki e所关联的会话ID并恢复关联该客户终端的所有会话变量。如果cookie不存在就会生成一个新的会话ID,同时加密的会话ID cookie则被发送给客户终端。
浏览器Cookie,也叫Web Cookie或http cookie,是服务器发送到用户终端浏览器,并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带,发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态成为了可能。Cookie主要用于以下三个方面:1)会话状态管理,如用户登录状态、购物车、游戏分数或其它需要记录的信息;2)个性化设置,如用户自定义设置、主题等;3)浏览器行为跟踪(如跟踪分析用户行为等。
在实际应用中,微服务会话管理系系统接收到用户终端发送的访问请求,根据接收到的访问请求可确定用户终端欲访问的目标微服务。在用户终端首次访问目标微服务(记作app1)时,可以建立目标终端访问目标微服务的会话,并生成该会话对应的会话ID和浏览器Cookie值。
具体地,微服务会话管理系统可包括会话(session)管理模块,该ses sion管理模块为首次访问微服务的用户终端分配JWT token,WT token中通常记录sessionID,JWT可理解为一个加密的字符串,作为验证信息在计算机之间传递,只有可以访问加密密钥的计算机才能对其进行解密,从而验证携带这个令牌(Token)的请求是否合法。
针对基于Istio微服务框架的微服务,微服务会话管理系统可包括Isti o微服务框架的Istio-proxy(Istio代理,是可在用户终端和服务器端使用的微服务代理,并形成微服务网格)。Istio-proxy可根据consistentHash一致性哈希算法策略返回固定的httpcookie。
用户终端随后的访问请求中都携带固定的上述http cookie值和JWT to ken,微服务会话管理系统的均衡负载模块(Istio-ingressgateway),根据固定的http cookie值将后续访问请求分配同一个微服务进程,并验证JWT token是否合法及会话是否过期等认证。
进一步地,基于访问请求和目标微服务生成会话对应的会话ID和浏览器Cookie值之后,session管理模块还可以将访问请求对应的会话信息及时存储至数据库中,以便于从redis取得session的最新信息。会话信息至少包括会话ID和浏览器Cookie值。
其中,存储会话信息的数据库可以是redis数据库,也可以是其它Key-Value数据库等,本实施例对此不做具体限定。
步骤S2,以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布。
其中,埋点可理解为在应用中特定的流程收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑。埋点信息包括但不限于访问数(Visits),访客数(Visitor),停留时长(Time On Sit e),页面浏览数(Page Views)和跳出率(Bounce Rate)。这样的信息收集可以大致分为两种:页面统计(track this virtualpage view),统计操作行为(track this button by an event)。
用户行为分析,是指在app访问量基本数据的情况下,对有关数据进行统计、分析,从中发现用户终端访问app的规律,并可将这些规律与行为策略(如网络营销策略)等相结合,从而发现行为策略活动中可能存在的问题,并为进一步修正或重新制定行为策略提供依据。
在一些实施方式中,上述步骤S2可以包括以下处理:基于开放分布式追踪的Span模型,采用调整http头干预微服务代理,或者直接调用追踪接口的方式,将会话过程中的追踪链路信息、埋点信息及用户行为信息,发布至分布式链路追踪库中。
其中,开放分布式追踪可以但不限于是opentracing。Span模型是追踪链路中的基本组成要素,一个span表示一个独立的工作单元,比如可以表示一次函数调用,一次http请求等等。
本实施例中,微服务会话管理系统还可包括会话追踪模块,该会话追踪模块可以但不限于分布式链路追踪模块。可以采用调整http头干预Istio-pro xy,或者直接调用开放分布式追踪接口的方式,将会话过程中的追踪链路信息、埋点信息及用户行为信息,发布至zipkin中。在zipkin分布式跟踪系统中,可以形成每个session按时间顺序整理的树状结构图,可有助于收集解决服务体系结构中的延迟问题所需的时序数据。
在实际应用中,可以将sessionID作为traceID,将session过程中的http/grpc/kafka/MySQL/redis等链路调用信息,埋点信息,以及用户的行为,均发布zipkin,则在zipkin的UI中,可以看到每个session按时间顺序整理的树状结构图,通过该树状结构图可对后续会话进行追踪管理。如此,可最大限度利用了Istio自带的功能和工具,无需加入另外一套埋点系统,巧妙地利用分布式链路的设计原理,复用了opentracing同时解决了session埋点问题,简单适用。
需要说明的是,本实施例不限定采用上述两种方式,将信息发布zipkin,只要能能够将上述session信息发布至分布式链路追踪系统即可。
在另一些实施方式中,如图3所示,在步骤S2之后,该微服务会话管理方法还包括以下处理:将发布至分布式链路追踪库中的埋点信息落盘至MySQ L数据库中;通过canal监听会话相关信息的更新,并将更新后的信息发送至消息队列中,以供会话日志进行用户行为分析。
其中,MySQL是一个数据库管理系统,也是一个关系数据库。将埋点信息落盘至MySQL数据库中,可理解为将埋点信息从缓冲池刷新到磁盘的MySQL数据库中。canal,译意为水道/管道/沟渠,主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费。
本实施例通过,通过canal对会话进行监听和更新,并可以但不限于将相关信息发送至kafka消息队列,由session日志模块根据应用特点,做进一步的结合session的用户行为分析。
步骤S3,接收目标终端发送的再次访问请求,根据会话ID和浏览器Coo kie值将再次访问请求分配至目标微服务的目标进程。
在实际应用中,微服务会话管理系统在接收到用户终端访问app1的请求之后,可根据访问请求携带的信息确定用户终端是否首次访问app1,若不是首次访问,则可直接获取访问请求对应的会话ID和浏览器Cookie值。在获取访问请求对应的会话ID和浏览器Cookie值之后,微服务会话管理系统可启动其负载均衡模块,负载均衡模块则根据浏览器Cookie值确定访问请求对应的目标微服务的目标进程,以及对JWT token进行验证,验证JWT token中的会话ID是否合法,以及会话是否过期等,并在会话ID验证成功后,将访问请求分配给目标进程。
上述对会话ID进行信息验证,通常包括验证会话ID是否合法,以及对应的会话是否过期等。
在实际应用中,通常会对微服务进行不断改进,所以同一个微服务的进程可能有多个版本。而在同一个会话持续(未过期)期间,也可能原来和用户终端进行会话到的进程已经更新版本。所以,本实施例还基于目标微服务的发布次数,为对应会话的浏览器Cookie值添加响应头,该响应头用于表示目标微服务的版本号,以便于浏览器Cookie值便可确定对应会话访问的目标微服务版本号,以便将用户终端的访问请求分配给最合适的目标进程。例如,可以将同一个session的请求持续交给同一个app1 version1进程,更有利于后续进行会话管理。
相应地,上述根据浏览器Cookie值确定再次访问请求对应的目标微服务的目标进程,可以包括以下处理:根据浏览器Cookie值,确定再次访问请求对应的目标微服务,以及目标微服务当前的版本号;根据目标微服务当前的版本号,确定目标微服务的目标进程。
例如,为金丝雀版本升级(金丝雀发布一般先发1台,或者一个小比例,例如2%的服务器,主要做流量验证用,也称为金丝雀测试或灰度测试)作准备过程中,可利用Istio自动加入响应头的功能,为所有app1版本1正在处理的所有响应加入头set-cookie:version(版本)=v1,并利用Istio的vi rtualservice(虚拟服务)将所有带有头cookie:version=v1的请求分配给app1 version1(版本1)。此种配置下,一致性哈希策略仍然有效,同一个session的请求能持续交给同一个app1 version1进程。
在另一些实施方式中,根据浏览器Cookie值确定与访问请求对应的目标微服务的目标进程,可以包括以下处理:浏览器Cookie值确定访问请求对应的目标微服务,并确定浏览器Cookie值是否存在表示目标微服务的版本号的响应头;若是,则将与响应头对应的目标微服务的进程作为目标进程;若不存在,将目标微服务最新版本的进程作为目标进程。
同理,在部署app1版本2时,为正在处理的所有访问请求的响应加入头set-cookie:version=v2,并利用Istio的virtualservice将所有带有头cookie:version=v2的请求分配给app1 version2(版本2)。
在确定相应的目标微服务的进程更新后,可将目标微服务更新后的进程作为目标进程,session管理模块从redis获取session的最新信息,目标进程基于该最新信息处理用户终端的访问请求。
另外,若第一次访问某app,则该访问请求携带的浏览器Cookie值中通常没有响应头,相应地,确定浏览器Cookie值对应的目标微服务的目标进程,还可以包括以下处理:若浏览器Cookie值中没有响应头Cookie值,则将浏览器Cookie值对应的目标微服务进程的最新版本作为目标进程。
具体地,可利用Istio traffic control(追踪控制)功能,将部分无cookieversion的新流量导给app1 version2;测试无问题之后,将所有无cookie version的新流量导给app1 version2。
直至app1 version1处理完所有的session,即可将旧版本的微服务解除部署;自此,支持session的金丝雀版本升级已完成。
本实施例提供的微服务会话管理方法,对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值。若接收到目标终端发送的再次访问请求,可根据会话ID和浏览器Cookie值将再次访问请求分配至与目标终端建立会话连接的目标微服务,并选择之前处理过同类访问请求的目标进程,使该目标进程对访问请求进行处理,可以根据需求将同类请求分配给相同的微服务进程,使得用户终端访问微服务的会话处理更加系统和简洁,效率更高。本发明还以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布,可用于后续进行用户行为分析,从而实现了对访问微服务的会话进行有效的会话管理和链路追踪等,且操作简单方便,实用性强。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种微服务会话管理系统,该微服务会话管理系统用于实现上述微服务会话管理方法。如图4所示,该微服务会话管理系统包括:
会话管理模块,用于对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值;
会话追踪模块,用于以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布;
负载均衡模块,用于接收目标终端发送的再次访问请求,根据会话ID和浏览器Cookie值将再次访问请求分配至目标微服务的目标进程。
在一些实施例中,负载均衡模块,具体用于:
对会话ID进行信息验证,以及根据浏览器Cookie值确定再次访问请求对应的目标微服务的目标进程;
若会话ID验证成功,将访问请求分配给目标进程。
在另一些实施例中,负载均衡模块,进一步用于:
根据浏览器Cookie值,确定再次访问请求对应的目标微服务,以及目标微服务当前的版本号;
根据目标微服务当前的版本号,确定目标微服务的目标进程。
在另一些实施例中,会话管理模块,还用于:
基于目标微服务的发布次数,为对应会话的浏览器Cookie值添加响应头;响应头用于表示目标微服务的版本号。
在另一些实施例中,负载均衡模块,进一步用于:
根据浏览器Cookie值确定访问请求对应的目标微服务,并确定浏览器Cookie值是否存在表示目标微服务的版本号的响应头;
若是,则将与响应头对应的目标微服务的进程作为目标进程;
若不存在,将目标微服务最新版本的进程作为目标进程。
在另一些实施例中,会话追踪模块,具体用于:
基于开放分布式追踪的Span模型,采用调整http头干预微服务代理,或者直接调用追踪接口的方式,将会话过程中的追踪链路信息、埋点信息及用户行为信息,发布至分布式链路追踪库中。
在另一些实施例中,该微服务会话管理系统还包括:
落盘模块,用于将埋点信息落盘至MySQL数据库中;
更新模块,通过canal监听会话相关信息的更新,并将更新后的信息发送至消息队列中,以供会话日志进行用户行为分析。
本发明提供了一种微服务会话管理系统,包括会话管理模块、会话追踪模块及负载均衡模块。会话管理模块,用于对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值。负载均衡模块,用于若接收到目标终端发送的再次访问请求,可根据会话ID和浏览器Cookie值将再次访问请求分配至与目标终端建立会话连接的目标微服务,并选择之前处理过同类访问请求的目标进程,使该目标进程对访问请求进行处理。如此,可以根据需求将同类请求分配给相同的微服务进程,使得用户终端访问微服务的会话处理更加系统和简洁,效率更高。负载均衡模块用于以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布,可用于后续进行用户行为分析,从而实现了对访问微服务的会话进行有效的会话管理和链路追踪等,且操作简单方便,实用性强。
关于微服务会话管理系统的具体限定可以参见上文中对于微服务会话管理方法的限定,在此不再赘述。上述微服务会话管理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在另一个实施例中,提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性和/或易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的客户端通过网络连接通信。该计算机程序被处理器执行时以实现一种微服务会话管理方法服务端侧的功能或步骤。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种微服务会话管理方法客户端侧的功能或步骤。
在另一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值;
以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布;
接收目标终端发送的再次访问请求,根据会话ID和浏览器Cookie值将再次访问请求分配至目标微服务的目标进程。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
对于首次访问目标微服务的目标终端,建立目标终端访问目标微服务的会话,并生成会话对应的会话ID和浏览器Cookie值;
以会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布;
接收目标终端发送的再次访问请求,根据会话ID和浏览器Cookie值将再次访问请求分配至目标微服务的目标进程。
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及客户端侧的相关描述,为避免重复,这里不再一一描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRA M)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种微服务会话管理方法,其特征在于,应用于Istio微服务框架,包括:
对于首次访问目标微服务的目标终端,建立所述目标终端访问所述目标微服务的会话,并生成所述会话对应的会话ID和浏览器Cookie值;所述目标微服务是基于所述Istio微服务框架的微服务,所述Istio微服务框架根据一致性哈希算法策略向所述目标终端返回固定的浏览器Cookie值,以使所述目标终端随后的访问请求中都携带固定的所述浏览器Cookie值;
以所述会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布,用于进行用户行为分析;
接收所述目标终端发送的再次访问请求,根据所述会话ID和所述浏览器Cookie值将所述再次访问请求分配至所述目标微服务的目标进程。
2.如权利要求1所述的微服务会话管理方法,其特征在于,根据所述会话ID和所述浏览器Cookie值将所述再次访问请求分配至所述目标微服务的目标进程,包括:
对所述会话ID进行信息验证,以及根据所述浏览器Cookie值确定所述再次访问请求对应的目标微服务的目标进程;
若所述会话ID验证成功,将所述访问请求分配给所述目标进程。
3.如权利要求2所述的微服务会话管理方法,其特征在于,根据所述浏览器Cookie值确定所述再次访问请求对应的目标微服务的目标进程,包括:
根据所述浏览器Cookie值,确定所述再次访问请求对应的目标微服务,以及所述目标微服务当前的版本号;
根据所述目标微服务当前的版本号,确定所述目标微服务的目标进程。
4.如权利要求3所述的微服务会话管理方法,其特征在于,生成所述会话对应的会话ID和浏览器Cookie值之后,所述方法还包括:
基于所述目标微服务的发布次数,为对应会话的浏览器Cookie值添加响应头;所述响应头用于表示所述目标微服务的版本号。
5.如权利要求4所述的微服务会话管理方法,其特征在于,所述根据所述浏览器Cookie值确定与所述访问请求对应的目标微服务的目标进程,包括:
根据所述浏览器Cookie值确定所述访问请求对应的目标微服务,并确定所述浏览器Cookie值是否存在表示所述目标微服务的版本号的响应头;
若是,则将与所述响应头对应的目标微服务的进程作为所述目标进程;
若不存在,将所述目标微服务最新版本的进程作为所述目标进程。
6.如权利要求1所述的微服务会话管理方法,其特征在于,将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布,包括:
基于开放分布式追踪的Span模型,采用调整http头干预微服务代理,或者直接调用追踪接口的方式,将会话过程中的追踪链路信息、埋点信息及用户行为信息,发布至分布式链路追踪库中。
7.如权利要求1所述的微服务会话管理方法,其特征在于,所述将会话过程中的追踪链路信息、埋点信息及用户行为信息,发布至分布式链路追踪库中之后,所述方法还包括:
将发布至所述分布式链路追踪库中的埋点信息落盘至MySQL数据库中;
通过canal监听所述会话相关信息的更新,并将更新后的信息发送至消息队列中,以供会话日志进行用户行为分析。
8.一种微服务会话管理系统,其特征在于,包括:
会话管理模块,用于对于首次访问目标微服务的目标终端,建立所述目标终端访问所述目标微服务的会话,并生成所述会话对应的会话ID和浏览器Cookie值;所述目标微服务是基于Istio微服务框架的微服务,所述Istio微服务框架根据一致性哈希算法策略向所述目标终端返回固定的浏览器Cook ie值,以使所述目标终端随后的访问请求中都携带固定的所述浏览器Cookie值;
会话追踪模块,用于以所述会话ID作为追踪ID,对会话ID相同的所有会话进行链路追踪,并将会话过程中的追踪链路信息、埋点信息及用户行为信息进行发布;
负载均衡模块,用于接收所述目标终端发送的再次访问请求,根据所述会话ID和所述浏览器Cookie值将所述再次访问请求分配至所述目标微服务的目标进程。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述微服务会话管理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述微服务会话管理方法的步骤。
CN202210868101.5A 2022-07-21 2022-07-21 微服务会话管理方法、装置、计算机设备及存储介质 Active CN115250267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210868101.5A CN115250267B (zh) 2022-07-21 2022-07-21 微服务会话管理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210868101.5A CN115250267B (zh) 2022-07-21 2022-07-21 微服务会话管理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN115250267A CN115250267A (zh) 2022-10-28
CN115250267B true CN115250267B (zh) 2024-03-01

Family

ID=83699245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210868101.5A Active CN115250267B (zh) 2022-07-21 2022-07-21 微服务会话管理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN115250267B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116743418B (zh) * 2023-03-21 2024-09-24 云盾智慧安全科技有限公司 一种网站安全防护方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131377A (zh) * 2019-10-30 2020-05-08 苏州浪潮智能科技有限公司 一种http重试的方法和设备
CN112149079A (zh) * 2020-10-22 2020-12-29 国网冀北电力有限公司经济技术研究院 基于微服务架构的规划评审管理平台及用户访问授权方法
CN112235203A (zh) * 2020-10-17 2021-01-15 苏州佩秋信息科技有限公司 流量分配方法和装置
CN112256542A (zh) * 2020-10-19 2021-01-22 中山大学 基于eBPF的微服务系统性能检测方法、装置和系统
CN112738339A (zh) * 2020-12-29 2021-04-30 杭州东信北邮信息技术有限公司 一种电信域微服务架构下的服务实例无损扩缩容方法
US11080410B1 (en) * 2018-08-24 2021-08-03 Styra, Inc. Partial policy evaluation
WO2022011055A2 (en) * 2020-07-07 2022-01-13 Fp Complete Corporation A System and Method for Simplifying User Authentication and Authorization Workflows

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10511589B2 (en) * 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10938923B2 (en) * 2019-04-17 2021-03-02 Home Depot Product Authority, Llc Customizable router for managing traffic between application programming interfaces

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080410B1 (en) * 2018-08-24 2021-08-03 Styra, Inc. Partial policy evaluation
CN111131377A (zh) * 2019-10-30 2020-05-08 苏州浪潮智能科技有限公司 一种http重试的方法和设备
WO2022011055A2 (en) * 2020-07-07 2022-01-13 Fp Complete Corporation A System and Method for Simplifying User Authentication and Authorization Workflows
CN112235203A (zh) * 2020-10-17 2021-01-15 苏州佩秋信息科技有限公司 流量分配方法和装置
CN112256542A (zh) * 2020-10-19 2021-01-22 中山大学 基于eBPF的微服务系统性能检测方法、装置和系统
CN112149079A (zh) * 2020-10-22 2020-12-29 国网冀北电力有限公司经济技术研究院 基于微服务架构的规划评审管理平台及用户访问授权方法
CN112738339A (zh) * 2020-12-29 2021-04-30 杭州东信北邮信息技术有限公司 一种电信域微服务架构下的服务实例无损扩缩容方法

Also Published As

Publication number Publication date
CN115250267A (zh) 2022-10-28

Similar Documents

Publication Publication Date Title
US11122067B2 (en) Methods for detecting and mitigating malicious network behavior and devices thereof
US10798101B2 (en) Managing security groups for data instances
EP3317998B1 (en) Resilient secret sharing cloud based architecture for data vault
Durrani et al. Volunteer computing: requirements, challenges, and solutions
US10097667B2 (en) Methods and systems for regulating database activity
US9864666B2 (en) Method and system for evaluating the resiliency of a distributed computing service by inducing latency
US20140019488A1 (en) Methods and systems for regulating database activity
US20130205009A1 (en) Overhead management for event tracing
CN103329113A (zh) 配置用于分级高速缓存的代理服务器以及动态站点加速和自定义对象和相关的方法
CN108379845B (zh) 信息处理方法、装置和存储介质
US20170353565A1 (en) Systems and methods for analyzing application usage on a user device
CN103795690A (zh) 一种云访问控制的方法、代理服务器和系统
US11226845B2 (en) Enhanced healing and scalability of cloud environment app instances through continuous instance regeneration
CN113572746B (zh) 数据处理方法、装置、电子设备及存储介质
CN113505354B (zh) 一种数据处理方法、装置及存储介质
CN115250267B (zh) 微服务会话管理方法、装置、计算机设备及存储介质
CN111885177B (zh) 一种基于云计算技术的生物信息分析云计算方法、系统
CN113259493B (zh) 基于Ukey机柜的Ukey信息获取方法、装置、设备和存储介质
CN105279034A (zh) 一致性缓存控制系统和方法
CN111092864B (zh) 一种会话保护方法、装置、设备及可读存储介质
JP5109901B2 (ja) セッションデータ共有方法
US9092397B1 (en) Development server with hot standby capabilities
CN106936643A (zh) 一种设备联动方法以及终端设备
WO2019220480A1 (ja) 監視装置、監視方法及びプログラム
Fabsich et al. Privacy-Preserving Storage in the Fog

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