System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Dubbo-go服务端的启动器及启动方法技术_技高网

一种基于Dubbo-go服务端的启动器及启动方法技术

技术编号:41320741 阅读:2 留言:0更新日期:2024-05-13 15:00
本发明专利技术公开了一种基于Dubbo‑go服务端的启动器及启动方法,涉及Dubbo‑go服务技术领域,包括:配置读取器,用于分别读取key‑value配置文件和读取yaml配置文件,并标定为键值对表key‑value;键值对表key‑value,用于存储键值数据;DubboConfig结构体,用于适配yaml配置文件的结构体;代码配置api,用于接入配置中心提供自定义配置结构体服务。本发明专利技术支持yaml配置文件和代码配置同步使用,而且支持yaml配置文件带占位符,同时支持自定义的配置中心,适配性更高。

【技术实现步骤摘要】

本专利技术涉及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”,如果采用dubbogo的配置中心方案,那每个项目的address的值都要重复写一次,后期如果要改变这个值时,就要同时改所有的yaml文件。

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服务端的启动方法,其特征在于,步骤...

【专利技术属性】
技术研发人员:李宝君何玉华
申请(专利权)人:全通金信控股广东有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1