Basic Service Configuration

Basic Service Configuration

Service Overview

ServiceConf This configuration is used to represent a configuration of our independent service.He is quoted by our rest,zrpc and so on. Of course, we can simply define our services.

Example:

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
}

As above, we defined a JobConfig, and initially set MustSetup at startup, so that we can start a service service, which automatically integrates Metrics, Prometheus, Trace , DevServer, Log and other capabilities.

Definition of parameters

ServiceConf configuration defined as follows:

// 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"` } Params| DataType| Default value| Note| Enum Values
---|---|---|---|---
Name| string| -| Define the name of the service, which will appear in log and tracer|
Log| logx.LogConf| -| Refer to log|
Mode| string| pro| Service environment. Dev is currently defined.In dev environment we will turn on reflection| dev,test,rt,pre, pro
MetricsUrl| string| 空| Tap to report and we’ll report some metrics to the corresponding address, if empty, not an orphan|
Prometheus| prometheus.Config| -| References Prometheus.md|
Telemetry| trace.Config| -| References trace.md|
DevServer| devserver.Config| -| go-Zero version v1.4.3 and above|