基础服务配置

service 概述

ServiceConf 这个配置是用来表示我们一个独立服务的配置。他被我们的 rest,zrpc 等引用,当然我们也可以自己简单定义自己的服务。

例如:

  1. package main
  2. import (
  3. "github.com/zeromicro/go-zero/core/conf"
  4. "github.com/zeromicro/go-zero/core/service"
  5. "github.com/zeromicro/go-zero/zrpc"
  6. )
  7. type JobConfig struct {
  8. service.ServiceConf
  9. UserRpc zrpc.RpcClientConf
  10. }
  11. func main() {
  12. var c JobConfig
  13. conf.MustLoad("config.yaml", &c)
  14. c.MustSetUp()
  15. // do your job
  16. }

如上,我们定义了一个 JobConfig,并且在启动的时候初始设置 MustSetup,这样我们就可以启动了一个服务 service,里面自动集成了 Metrics,Prometheus,Trace,DevServer,Log 等能力。

参数定义

ServiceConf 配置定义如下:

  1. // A ServiceConf is a service config.
  2. type ServiceConf struct {
  3. Name string
  4. Log logx.LogConf
  5. Mode string `json:",default=pro,options=dev|test|rt|pre|pro"`
  6. MetricsUrl string `json:",optional"`
  7. // Deprecated: please use DevServer
  8. Prometheus prometheus.Config `json:",optional"`
  9. Telemetry trace.Config `json:",optional"`
  10. DevServer devserver.Config `json:",optional"`
  11. }
参数类型默认值说明枚举值
Namestring-定义服务的名称,会出现在 log 和 tracer 中
Loglogx.LogConf-参考 log
Modestringpro服务的环境,目前我们预定义了 dev。在dev 环境我们会开启反射dev,test,rt,pre, pro
MetricsUrlstring打点上报,我们会将一些 metrics 上报到对应的地址,如果为空,则不上报
Prometheusprometheus.Config-参考 Prometheus.md
Telemetrytrace.Config-参考 trace.md
DevServerdevserver.Config-go-zero 版本 v1.4.3 及以上支持