后端服务寻址方法、服务端、客户端及系统
文献发布时间:2023-06-19 12:16:29
技术领域
本发明涉及后端服务寻址技术领域,尤其涉及一种后端服务寻址方法、服务端、客户端及系统。
背景技术
当前网络中的服务寻址主要是基于域名(或主机名)快速找到对应的IP地址以实现通信的目的,现有的服务寻址方法主要有两种,一是采用域名系统(Domain NameSystem,DNS)进行统一解析寻址,二是采用修改本机的域名服务文件,例如Hosts文件进行解析寻址。由于DNS统一解析无法满足服务调用隔离,以及调用的区别对待,因此当存在不同客户端使用不同的域名服务,以及对于频繁改变地址的客户端或业务提供服务寻址服务时,例如多版本测试服务隔离、多个项目并存时的服务寻址等,现有的DNS无法满足服务寻址的需要。采用修改本机的域名服务文件,需要登陆每一台客户端进行人工配置,当存在多个域名服务不同的区域或数量较大的客户端时,人工配置过于费时费力,且不利于环境稳定和自动化要求。
发明内容
本发明提供一种后端服务寻址方法、服务端、客户端及系统,以解决现有技术中的服务寻址的隔离以及不能提供差异化和个性化寻址服务的问题。
为实现上述目的,本发明提供的后端服务寻址方法应用于服务端,具体地,所述后端服务寻址方法包括:
获取并解析客户端发送的心跳包以得到地址上报数据;所述地址上报数据包括客户端的地址信息、主机名和管理值;
根据所述地址上报数据及项目设置更新寻址数据表;所述寻址数据表包括地址信息、主机名、管理值和项目编码;
当所述寻址数据表中的任一项发生变动时,根据所述项目编码将所述寻址数据表中的变动数据在滤除所述项目编码的数据后发送给该变动数据对应的客户端。
进一步地,所述管理值用于对指定客户端进行服务区分,所述管理值包括更新时间、版本号和定义值中的任意一种或多种;所述客户端的管理值定义与所述服务端对应于该客户端的管理值定义一致。
进一步地,所述寻址数据表还包括服务端标签,所述服务端标签用于根据项目编码对服务端进行标签分组。
进一步地,所述后端服务寻址方法还包括:
所述服务端根据所述寻址数据表生成项目拓扑。
此外,本发明还提供一种应用于客户端的后端服务寻址方法,所述后端服务寻址方法包括:
按照预设的时间周期向指定的服务端发送心跳包;所述心跳包包括地址上报数据;所述地址上报数据包括客户端的地址信息、主机名和管理值;
收到所述服务端的心跳确认包或数据更新包;
解析所述心跳确认包以确认与所述服务端的连接状态;解析所述数据更新包并更新客户端的寻址数据表;所述寻址数据表包括地址信息、主机名和管理值;
根据所述寻址数据表进行服务寻址。
进一步地,所述管理值根据所述数据更新包中的管理值按照预设规则更新。
同时,本发明还提供一种服务端,所述服务端包括存储器和处理器,所述存储器上存储有可在所述处理器运行的后端服务寻址程序,所述后端服务寻址程序被所述处理器执行时实现如上所述的后端服务寻址方法的步骤。
本发明还提供一种客户端,所述客户端包括存储器和处理器,所述存储器上存储有可在所述处理器运行的后端服务寻址程序,所述后端服务寻址程序被所述处理器执行时实现如上所述的后端服务寻址方法的步骤。
本发明还提供一种后端服务寻址系统,所述后端服务寻址系统包括一个或多个如上所述的服务端、多个如上所述的客户端;所述服务端和客户端均通信连接;所述服务端用于根据项目编码提供多个项目的后端服务寻址服务;所述客户端用于接收所述服务端发送的寻址数据表以及更新本地存储的寻址数据表、并根据所述寻址数据表进行服务寻址。
本发明还提供一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有后端服务寻址程序,所述后端服务寻址程序可被一个或者多个处理器执行,以实现:如上所述的后端服务寻址方法的步骤。
与现有技术相比,本发明提供的后端服务寻址方法、服务端、客户端及系统,通过服务端根据客户端发送的心跳包获取地址上报数据,并结合项目设置更新寻址数据表,并将更新的寻址数据表按照项目编码发送给客户端,客户端根据服务端发送的寻址数据表的更新数据更新本地的寻址数据表,并根据该寻址数据表进行服务寻址;实现客户端的寻址数据表基于项目编码完成的更新,从而能够基于项目实现服务寻址的隔离;同时基于管理值实现服务端对管理端的服务寻址的差异化个性化服务,操作简单,能够满足不同客户端不同项目的服务寻址的自动化要求。
附图说明
图1为本发明实施例一提供的后端服务寻址系统的结构示意图;
图2为本发明实施例一提供的应用于客户端的后端服务寻址方法的流程示意图;
图3为本发明实施例一提供的应用于服务端的后端服务寻址方法的流程示意图;
图4为本发明实施例二提供的后端服务寻址系统的结构示意图;
图5为本发明实施例二提供的应用于服务端的后端服务寻址方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参阅图1,具体在本发明实施例一中,本发明提供一种后端服务寻址系统,具体地,所述后端服务寻址系统包括通过网络100相互通信连接的一个服务端10和多个客户端20。所述服务端10用于根据项目编码提供多个项目的后端服务寻址服务;所述客户端20用于接收所述服务端10发送的寻址数据表以及更新本地存储的寻址数据表、并根据所述寻址数据表进行服务寻址。
请参阅图2,具体在本发明实施例一中,本发明提供一种应用于客户端的后端服务寻址方法,所述后端服务寻址方法包括:
步骤S101:客户端按照预设的时间周期向指定的服务端发送心跳包;对客户端预先进行设置,所述设置包括客户端的主机名、地址信息、指定的服务端的IP地址和预设的时间周期;地址信息为客户端自己的IP地址;指定的服务端的IP地址可以设置为多个,首选的为第一个,当第一个失去连接时顺序选择第二个,依次类推;预设的时间周期根据业务应用或项目的需要进行设置,例如每隔5分钟发送一次心跳包,基于服务寻址的时延要求低,可设置时间周期间隔较长的时间才发送一次,但当发生改变或初次启动时,即刻触发心跳包的发送。这里项目是指该客户端的服务寻址的分组项目,在网络中组合多个客户端为一个项目使用,例如,为测试环境构建多套项目隔离环境,提供稳定和不同路由的项目测试解决方案,在同一项目中,使用统一的一套服务寻址数据,而不同项目中,服务寻址的数据不同,即主机名对应的IP地址不同。具体在本发明一实施例中,项目通过项目编码作为唯一识别编码,以区分不同的项目,优选地,在服务端可单独设置或在寻址数据表中增加项目信息,所述项目信息包括项目名称、项目描述、启动时间、结束时间、项目编码、客户端名称及数量等。
客户端在启动时首先发送心跳包给指定的服务端,所述心跳包用于发送地址上报数据,同时心跳包还用于检查与服务端的连接,例如当超过3倍预设的时间周期未收到服务端的心跳包回应则认为失去了与服务端的连接。所述地址上报数据包括客户端的地址信息、主机名和管理值;所述管理值用于服务端对指定客户端进行服务区分,所述管理值包括更新时间、版本号和定义值中的任意一种或多种;其中,版本号为更新次数,每次客户端的地址信息或主机名变得则将版本号+1,当经过一定的时间(例如1天)、或者当客户端重新启动、或收到服务端的重置指令等,将版本号进行重置,根据版本号判断该客户端地址或主机名的变更频繁度,当该版本号值较大,则表示该客户端地址或主机名变更频繁,对应地,服务端提升该客户端的服务优先级,例如,针对该客户端的数据包优先快速处理。在本发明的另外一些实施例中,管理值也可以为更新时间,根据更新时间的排序来确认每个客户端的地址或主机名的更新状态。在本发明的另外一些实施例中,通过自定义设置管理值为定义值,例如,将管理值设置为允许或拒绝,只有带有允许管理值的客户端才能够自服务端获取更新的寻址数据,而带有拒绝管理值的客户端不能接收服务端的寻址数据,该客户端在指定项目中处于禁止服务寻址的状态。因此,通过管理值的灵活定义,实现服务端通过管理值实现客户端的服务寻址的策略控制。相应地,所述客户端的管理值定义与所述服务端对应于该客户端的管理值定义一致;所述管理值根据所述数据更新包中的管理值按照预设规则更新。预设的规则是根据管理值定义在客户端更新该管理值时按照设定的规则进行更新。
步骤S102:客户端收到所述服务端的心跳确认包或数据更新包;服务端的心跳确认包为响应客户的心跳包的确认,以保持客户端与服务端的连接;当服务端的寻址数据发生改变时,则服务端发送数据更新包给客户端以更新客户端上的寻址数据。
步骤S103:解析所述心跳确认包以确认与所述服务端的连接状态;解析所述数据更新包并更新客户端的寻址数据表;所述寻址数据表包括地址信息、主机名和管理值。
步骤S104:根据所述寻址数据表进行服务寻址。
请参阅图3,具体在本发明实施例一中,本发明提供一种应用于服务端的后端服务寻址方法,所述后端服务寻址方法包括:
步骤S201:获取并解析客户端发送的心跳包以得到地址上报数据;所述地址上报数据包括客户端的地址信息、主机名和管理值;具体地,当服务端首次收到一客户端发送的心跳包时,立即发送心跳包回应,该心跳包回应包括该客户端配置信息,所述客户端配置信息包括该客户端的管理值定义及预设规则设置;同时,服务端解析客户端发送的心跳包以得到地址上报数据。当服务端非首次收到客户端发送的心跳包时,则仅对该心跳包进行回应。进一步地,当客户端数量较多或项目较多时,服务端基于管理值的定义实现对不同的客户端进行服务区分。
步骤S202:根据所述地址上报数据及项目设置更新寻址数据表;所述寻址数据表包括地址信息、主机名、管理值和项目编码;具体地,在服务端预设项目设置,项目设置包括项目编码以及该项目编码对应的每一客户端,通过客户端的主机名或地址信息与项目编码一一对应。
步骤S203:当所述寻址数据表中的任一项发生变动时,根据所述项目编码将所述寻址数据表中的变动数据在滤除所述项目编码的数据后发送给该变动数据对应的客户端。
具体在本发明一实施例中,所述后端服务寻址方法还包括:所述服务端根据所述寻址数据表生成项目拓扑。通过服务端可视化界面对项目拓扑进行调用和查看,方便用户管理。
具体地,在本发明提供的后端服务寻址系统中,所述服务端包括存储器和处理器,所述存储器上存储有可在所述处理器运行的后端服务寻址程序,所述后端服务寻址程序被所述处理器执行时实现前述应用于服务端的后端服务寻址方法的步骤。所述客户端包括存储器和处理器,所述存储器上存储有可在所述处理器运行的后端服务寻址程序,所述后端服务寻址程序被所述处理器执行时实现前述应用于客户端的后端服务寻址方法的步骤。
实施例二
请参阅图4,具体在本发明实施例二中,本发明提供一种后端服务寻址系统,具体地,所述后端服务寻址系统包括通过网络100相互通信连接的多个服务端10和多个客户端20。所述服务端10用于根据项目编码提供多个项目的后端服务寻址服务;所述客户端20用于接收所述服务端10发送的寻址数据表以及更新本地存储的寻址数据表、并根据所述寻址数据表进行服务寻址。与上述实施例一相比,实施例二中通过多台服务端10为不同项目不同客户端提供后端服务寻址方法的步骤。
当存在多台服务端10时,在服务端的寻址数据表中增加服务端标签,所述服务端标签用于根据项目编码对服务端进行标签分组。此时,每一服务端采用二元信息管理,例如:[项目,服务端标签],将同一项目的多台服务端设定服务端标签分组,同一个服务端可以设定为多个不同的服务端标签分组中。通过服务端的标签分组,方便项目中服务端的批量管理,每一服务端同时只能配置一个有效的服务端标签分组。通过二元信息管理,方便进行自动化绘制项目拓扑。
请参阅图5,具体在本发明实施例二中,本发明提供一种应用于服务端的后端服务寻址方法,所述后端服务寻址方法包括:
步骤S301:获取并解析客户端发送的心跳包以得到地址上报数据;所述地址上报数据包括客户端的地址信息、主机名和管理值;具体地,当服务端首次收到一客户端发送的心跳包时,立即发送心跳包回应,该心跳包回应包括该客户端配置信息,所述客户端配置信息包括该客户端的管理值定义及预设规则设置;同时,服务端解析客户端发送的心跳包以得到地址上报数据。当服务端非首次收到客户端发送的心跳包时,则仅对该心跳包进行回应。进一步地,当客户端数量较多或项目较多时,服务端基于管理值的定义实现对不同的客户端进行服务区分。
步骤S302:获取并解析服务端发送的同步数据包,以得到同一项目中的其他服务端的同步数据;所述同步数据包括项目设置和寻址数据表。
步骤S303:根据所述地址上报数据、同步数据包及项目设置更新寻址数据表;所述寻址数据表包括地址信息、主机名、管理值和项目编码。
步骤S304:当所述寻址数据表中的任一项发生变动时,根据所述项目编码将所述寻址数据表中的变动数据在滤除所述项目编码的数据后发送给该变动数据对应的客户端。
具体在本发明一实施例中,所述后端服务寻址方法还包括:所述服务端根据所述寻址数据表生成项目拓扑。通过服务端可视化界面对项目拓扑进行调用和查看,方便用户管理。
具体在实施例二中,应用于客户端的后端服务寻址方法与实施例一相同,以及后端服务寻址系统中的服务端和客户端与实施例一相同,在此不作赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法,如:
一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有后端服务寻址程序,所述后端服务寻址程序可被一个或者多个处理器执行,以实现:前述的后端服务寻址方法的步骤。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
- 后端服务寻址方法、服务端、客户端及系统
- 客户端与服务端的连接方法及系统、客户端和服务端