System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及dubbo-go服务,具体来说,涉及一种基于dubbo-go服务端的启动器及启动方法。
技术介绍
1、dubbo是阿里巴巴开源的基于java的高性能rpc(远程调用)分布式服务框架,致力于提供高性能和透明化的rpc远程服务调用方案,以及soa服务治理方案。用户可以基于该框架轻松的实现微服务。目前该开源项目也提供了go语言版本的实现,但go语言没有像java语言那么富丰的生态,对比java版,在使用上会有一些问题。首先,dubbogo对配置的支持yaml文件配置和代码配置只能二选一,不能同时两种配置混合使用(一般文件配是项目中直接使用的,代码配置一般是架构师统一加的配置)。java版因为有spring框架的存在,所以java版的配置文件可以有占位符(这样有些值,可以从其它配置中取),但go版的yaml文件配置不支持占位符(就是所有配置)。
2、目前,如图1中的“address:127.0.0.1:2181”,其中“127.0.0.1:2181”这个值往往是在项目启动时才确定。所以更好的作法如图2所示,address和port的值写对应的占位符,然后在项目启动时再从启动环境中读取dubbo.address和dubbo.port的值作为address和port的值。最后dubbogo支持配置中心,但它只支持nacos作为它的配置中心,而且nacos中放的也是yaml文件格式的配置(如图1)。这样带来的问题是,在多个项目中有些配置的值是相同的,比如图1中的“address:127.0.0.1:2181”,如果采
3、因此,亟需一种基于dubbo-go服务端的启动器及启动方法。
4、针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现思路
1、针对相关技术中的问题,本专利技术提出一种基于dubbo-go服务端的启动器及启动方法,以克服现有相关技术所存在的上述技术问题。
2、本专利技术的技术方案是这样实现的:
3、本专利技术一方面:
4、一种基于dubbo-go服务端的启动器,包括:
5、配置读取器,用于分别读取key-value配置文件和读取yaml配置文件,并标定为键值对表key-value;
6、键值对表key-value,用于存储键值数据;
7、dubboconfig结构体,用于适配yaml配置文件的结构体;
8、代码配置api,用于接入配置中心提供自定义配置结构体服务。
9、进一步的,所述配置读取器,包括:存储预先设定key-value配置文件路径和yaml配置文件路径。
10、本专利技术另一方面:
11、一种基于dubbo-go服务端的启动方法,包括以下步骤:
12、步骤s1,配置读取器预先读取key-value配置文件,并标定为键值对表key-value;
13、步骤s2,配置读取器读取yaml配置文件;
14、步骤s3,进行将yaml配置文件的占位符,用键值对表key-value的配置替换,其中,key字符为占位符的标识,value字符为替换成的值;
15、步骤s4,将替换后的yaml配置文件,标定为dubboconfig结构体;
16、步骤s5,将dubboconfig结构体转成yaml配置文件的格式内容;
17、步骤s6,将格式内容转入dubbo-go服务端的加载配置中,并启动dubbo-go服务。
18、其中,步骤所述配置读取器预先读取key-value配置文件,包括以下步骤:
19、步骤s101,预先分别设定key-value配置文件路径和yaml配置文件路径,并存储于配置读取器内。
20、其中,步骤所述标定为键值对表key-value,包括以下步骤:
21、步骤s102,查看configgetapi接口是否有实现configsetapi接口的结构体,其中,包括以下步骤:
22、步骤s103,若configgetapi接口有实现configsetapi接口的结构体,则调用configgetapi接口,获取该结构体,并将该结构体与键值对表key-value合并;
23、步骤s104,若configgetapi接口无实现configsetapi接口的结构体,则配置读取器读取yaml配置文件。
24、其中,步骤所述标定为dubboconfig结构体,包括以下步骤:
25、步骤s401,查看configsetapi接口是否有实现configsetapi接口的结构体,其中,包括以下步骤:
26、步骤s402,若configsetapi接口有实现configsetapi接口的结构体,则调用configsetapi接口,获取该结构体与dubboconfig结构体合并,形成新的dubboconfig结构体;
27、步骤s403,若configsetapi接口无实现configsetapi接口的结构体,则将dubboconfig结构体转成yaml配置文件的格式内容。
28、其中,步骤所述形成新的dubboconfig结构体,包括以下步骤:
29、将新的dubboconfig结构体转成yaml配置文件的格式内容;
30、将格式内容转入dubbo-go服务端的加载配置中,并启动dubbo-go服务。
31、本专利技术的有益效果:
32、本专利技术基于dubbo-go服务端的启动器和启动方法,通过配置读取器预先读取key-value配置文件,并标定为键值对表key-value,将配置读取器读取yaml配置文件,并进行将yaml配置文件的占位符,用键值对表key-value的配置替换,同时将替换后的yaml配置文件,标定为dubboconfig结构体,并将dubboconfig结构体转成yaml配置文件的格式内容,在将格式内容转入dubbo-go服务端的加载配置中,并启动dubbo-go服务,该启动器不仅支持yaml配置文件和代码配置同步使用,而且支持yaml配置文件带占位符,同时支持自定义的配置中心,适配性更高。
本文档来自技高网...【技术保护点】
1.一种基于Dubbo-go服务端的启动器,其特征在于,包括:
2.根据权利要求1所述的基于Dubbo-go服务端的启动器,其特征在于,所述配置读取器(1),包括:存储预先设定key-value配置文件路径和yaml配置文件路径。
3.一种基于Dubbo-go服务端的启动方法,其特征在于,用于权利要求1-2中的任意一项所述的基于Dubbo-go服务端的启动器的启动方法,包括以下步骤:
4.根据权利要求3所述的基于Dubbo-go服务端的启动方法,其特征在于,步骤所述配置读取器预先读取key-value配置文件,包括以下步骤:
5.根据权利要求3所述的基于Dubbo-go服务端的启动方法,其特征在于,步骤所述标定为键值对表key-value,包括以下步骤:
6.根据权利要求5所述的基于Dubbo-go服务端的启动方法,其特征在于,步骤所述标定为DubboConfig结构体,包括以下步骤:
7.根据权利要求6所述的基于Dubbo-go服务端的启动方法,其特征在于,步骤所述形成新的DubboConfig结构体,包括
...【技术特征摘要】
1.一种基于dubbo-go服务端的启动器,其特征在于,包括:
2.根据权利要求1所述的基于dubbo-go服务端的启动器,其特征在于,所述配置读取器(1),包括:存储预先设定key-value配置文件路径和yaml配置文件路径。
3.一种基于dubbo-go服务端的启动方法,其特征在于,用于权利要求1-2中的任意一项所述的基于dubbo-go服务端的启动器的启动方法,包括以下步骤:
4.根据权利要求3所述的基于dubbo-go服务端的启动方法,其特征在于,步骤...
【专利技术属性】
技术研发人员:李宝君,何玉华,
申请(专利权)人:全通金信控股广东有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。