服务配置
service 概述
Section titled “service 概述”ServiceConf 这个配置是用来表示我们一个独立服务的配置。他被我们的 rest,zrpc 等引用,当然我们也可以自己简单定义自己的服务。
例如:
package main
import ( "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/service" "github.com/zeromicro/go-zero/zrpc")
type JobConfig struct { service.ServiceConf UserRpc zrpc.RpcClientConf}
func main() { var c JobConfig conf.MustLoad("config.yaml", &c)
c.MustSetUp() // do your job}如上,我们定义了一个 JobConfig,并且在启动的时候初始设置 MustSetup,这样我们就可以启动了一个服务 service,里面自动集成了 Metrics,Prometheus,Trace,DevServer,Log 等能力。
ServiceConf 配置定义如下:
// A ServiceConf is a service config.type ServiceConf struct { Name string Log logx.LogConf Mode string `json:",default=pro,options=dev|test|rt|pre|pro"` MetricsUrl string `json:",optional"` // Deprecated: please use DevServer Prometheus prometheus.Config `json:",optional"` Telemetry trace.Config `json:",optional"` DevServer devserver.Config `json:",optional"`}| 参数 | 类型 | 默认值 | 说明 | 枚举值 |
|---|---|---|---|---|
| Name | string | - | 定义服务的名称,会出现在 log 和 tracer 中 | |
| Log | logx.LogConf | - | 参考 log | |
| Mode | string | pro | 服务的环境,目前我们预定义了 dev。在dev 环境我们会开启反射 | dev,test,rt,pre, pro |
| MetricsUrl | string | 空 | 打点上报,我们会将一些 metrics 上报到对应的地址,如果为空,则不上报 | |
| Prometheus | prometheus.Config | - | 参考 Prometheus | |
| Telemetry | trace.Config | - | 参考 链路追踪 | |
| DevServer | devserver.Config | - | go-zero 版本 v1.4.3 及以上支持 |