本发明涉及计算机网络通信,尤其涉及一种名字解析方法、装置、电子设备及可读存储介质。
背景技术:
1、服务发现是在服务调用方和服务提供方信息的注册、发布和协调后,使服务调用方通过名字就能够找到服务提供方的服务发布与查找的协调机制。伴随着业务规模地不断增长,服务发现模块的数量也随之增加,服务之间的调用关系不断复杂。而传统的解决思路是以服务发现作为基础设施,提供各类语言实现的sdk或api接口,但是对于部分老旧的服务,服务间调用或受限与底层库,比如php使用数据库服务mysql或者内存缓存服务redis等,几乎无法低成本集成服务发现的sdk,而原来的服务进程内调用关系被拆分成多个服务,服务本身已经比较老,改造到sdk的成本较高,并且跨语言的场景,维护成本也比较高。
技术实现思路
1、有鉴于此,本发明实施例提供了一种名字解析方法,以解决服务发现解析受限、改造成本高的问题。
2、根据本发明的一方面,提供了一种名字解析方法,包括:
3、接收第一输入,所述第一输入为服务调用方发出的服务发现请求;
4、响应于所述第一输入,与名字服务开关的动态链接库设置实例环境变量;
5、接收第二输入,所述第二输入为服务发现请求中服务提供方的名字;
6、响应于所述第二输入,所述名字服务开关根据所述服务调用方当前的所述实例环境变量和所述服务提供方的名字解析输出所述服务提供方的目标ip。
7、可选地,所述响应于所述第二输入,所述名字服务开关根据所述服务调用方当前的所述实例环境变量和所述服务提供方的名字解析输出所述服务提供方的目标实例对应的ip,包括:
8、接收第三输入,所述第三输入为所述名字服务开关进行名字解析后返回的ip列表;
9、响应于所述第三输入,利用伪随机函数从所述ip列表中选择出所述目标ip。
10、可选地,所述响应于所述第二输入,所述名字服务开关根据所述服务调用方当前的所述实例环境变量和所述服务提供方的名字解析输出所述服务提供方的目标实例对应的ip前,还包括:
11、接收第四输入,所述第四输入为所述名字服务开关的目标函数;
12、响应于所述第四输入,将所述服务提供方的名字返回至实例列表;
13、接收第五输入,所述第五输入为更新后的所述实例列表;
14、响应于所述第五输入,编译所述动态链接库。
15、可选地,所述响应于所述第一输入,名字服务开关的动态链接库设置实例环境变量后,还包括:
16、接收第六输入,所述第六输入为实例环境变量;
17、响应于所述第六输入,加载所述动态链接库;
18、接收第七输入,所述第七输入为更新后的所述动态链接库;
19、响应于所述第七输入,确定所述服务发现与所述服务调用方对应的数据中心并与之交互,按照映射关系进行流量调度。
20、根据本发明的第二方面,提供了一种名字解析装置,包括:
21、第一接收模块,用于接收第一输入,所述第一输入为服务调用方发出的服务发现请求;
22、设置模块,响应于所述第一输入,与名字服务开关的动态链接库设置实例环境变量;
23、第二接收模块,用于接收第二输入,所述第二输入为服务发现请求中服务提供方的名字;
24、解析模块,响应于所述第二输入,所述名字服务开关根据所述服务调用方当前的所述实例环境变量和所述服务提供方的名字解析输出所述服务提供方的目标ip。
25、可选地,所述解析模块包括:
26、第三接收模块,用于接收第三输入,所述第三输入为所述名字服务开关进行名字解析后返回的ip列表;
27、选择模块,响应于所述第三输入,利用伪随机函数从所述ip列表中选择出所述目标ip。
28、可选地,所述名字解析装置还包括:
29、第四接收模块,用于接收第四输入,所述第四输入为所述名字服务开关的目标函数;
30、分析反馈模块,响应于所述第四输入,将所述服务提供方的名字返回至实例列表;
31、第五接收模块,用于接收第五输入,所述第五输入为更新后的所述实例列表;
32、编译模块,响应于所述第五输入,编译所述动态链接库。
33、可选地,所述名字解析装置还包括:
34、第六接收模块,用于接收第六输入,所述第六输入为实例环境变量;
35、更新模块,响应于所述第六输入,加载所述动态链接库;
36、第七接收模块,用于接收第七输入,所述第七输入为更新后的所述动态链接库;
37、调度模块,响应于所述第七输入,确定所述服务发现与所述服务调用方对应的数据中心并与之交互,按照映射关系进行流量调度。
38、根据本发明的第三方面,提供了一种电子设备,包括:
39、处理器;以及
40、存储程序的存储器,
41、其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据本发明第一方面中任一项所述的方法。
42、根据本发明的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据本发明第一方面中任一项所述的方法。
43、本申请实施例中提供的一个或多个技术方案,结合服务发现的功能和名字服务开关的可扩展性,实现系统层面的动态链接库,结合服务发现的相关特性,实现系统内部服务间互访,避免老旧服务间高成本的改造sdk并接入,保障了服务间互访的零改造成本。本实施例结合名字服务开关提供的服务发现,实现操作系统层面的名字解析能力,具有一定的普适性,业务迭代接入接近零成本。
1.一种名字解析方法,其特征在于,包括:
2.根据权利要求1所述的名字解析方法,其特征在于,所述响应于所述第二输入,所述名字服务开关根据所述服务调用方当前的所述实例环境变量和所述服务提供方的名字解析输出所述服务提供方的目标实例对应的ip,包括:
3.根据权利要求1所述的名字解析方法,其特征在于,所述响应于所述第二输入,所述名字服务开关根据所述服务调用方当前的所述实例环境变量和所述服务提供方的名字解析输出所述服务提供方的目标实例对应的ip前,还包括:
4.根据权利要求1所述的名字解析方法,其特征在于,所述响应于所述第一输入,名字服务开关的动态链接库设置实例环境变量后,还包括:
5.一种名字解析装置,其特征在于,包括:
6.根据权利要求5所述的名字解析装置,其特征在于,所述解析模块包括:
7.根据权利要求5所述的名字解析装置,其特征在于,所述名字解析装置还包括:
8.根据权利要求5所述的名字解析装置,其特征在于,所述名字解析装置还包括:
9.一种电子设备,包括:
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-4中任一项所述的方法。