dubbo-go 白话文 | 配置文件内容太多怎么简化
目录
本文介绍如何减少 dubbogo 的配置文件内容,未完待续
一、前言
请注意,本文基于 dubbogo1.5.1,目前最新的1.5.4不是稳定版本,部分包已经挪到 gost
dubbogo 是 dubbo 这个 RPC 框架在 go 语言下的延伸,也是各位 Java 开发人员上手 go 的一个优秀开源项目。启动 dubbogo 经常需要配置环境变量,如 CONF_PROVIDER_FILE_PATH
,CONF_CONSUMER_FILE_PATH
两个最典型的例子。在 idea 中启动的时候,每次都需要加这个还是比较麻烦的,其实大部分跑例子的时候只需要关心注册中心的相关信息。
欢迎━(`∀´)ノ亻!点 star dubbogo
二、实战分析
2.1 去掉 client 端的配置文件
2.1.1 泛化调用 consumer 端
应用配置
你可以定义一个默认的应用配置,如下:
1defaultApplication = &dg.ApplicationConfig{
2 Organization: "dubbo-go-proxy",
3 Name: "Dubbogo Proxy",
4 Module: "dubbogo proxy",
5 Version: "0.1.0",
6 Owner: "Dubbogo Proxy",
7 Environment: "dev",
8}
实际使用的时候,应用会有系统环境变量指明应用名称和环境等,上述的几个标准参数应该从业务约定的系统环境变量读取。
构建 ConsumerConfig
1// dubbogo comsumer config
2dgCfg = dg.ConsumerConfig{
3 Check: new(bool),
4 Registries: make(map[string]*dg.RegistryConfig, 4),
5}
自定义系统变量获取 registry,比如:-REGISTRY=dubbo:127.0.0.1:2181。
1r := os.Getenv("REGISTRY")
2ss := strings.SplitN(s, ":", 2)
3if len(ss) == 2 {
4 dgCfg.Registries[1] = &dg.RegistryConfig{
5 Protocol: ss[0],
6 Address: ss[1],
7 TimeoutStr: "3s",
8 }
9}
把参数设置到 ConsumerConfig 就行。
设置默认 ClientConfig
1dubbo.SetClientConf(dubbo.GetDefaultClientConfig())
调用 dubbogo 加载
1dg.Load()