From 9c682c9bbe3cb7de6e3aa699fdcced696123ea7b Mon Sep 17 00:00:00 2001 From: seeflood Date: Mon, 4 Jul 2022 16:22:15 +0800 Subject: [PATCH 1/4] integrate with istio Signed-off-by: seeflood --- cmd/layotto/cmd.go | 302 ++++++++++++++++++++++++++++++++++++++++++++ cmd/layotto/main.go | 157 ++++++----------------- go.mod | 1 + go.sum | 25 ++++ 4 files changed, 369 insertions(+), 116 deletions(-) create mode 100644 cmd/layotto/cmd.go diff --git a/cmd/layotto/cmd.go b/cmd/layotto/cmd.go new file mode 100644 index 0000000000..39bb6e9f00 --- /dev/null +++ b/cmd/layotto/cmd.go @@ -0,0 +1,302 @@ +package main + +import ( + "os" + "runtime" + "time" + + "mosn.io/api" + "mosn.io/mosn/istio/istio1106" + v2 "mosn.io/mosn/pkg/config/v2" + "mosn.io/mosn/pkg/configmanager" + "mosn.io/mosn/pkg/log" + "mosn.io/mosn/pkg/metrics" + "mosn.io/mosn/pkg/mosn" + "mosn.io/mosn/pkg/protocol" + "mosn.io/mosn/pkg/protocol/xprotocol" + "mosn.io/mosn/pkg/protocol/xprotocol/bolt" + "mosn.io/mosn/pkg/protocol/xprotocol/dubbo" + "mosn.io/mosn/pkg/server" + "mosn.io/mosn/pkg/stagemanager" + xstream "mosn.io/mosn/pkg/stream/xprotocol" + "mosn.io/mosn/pkg/trace" + mosn_jaeger "mosn.io/mosn/pkg/trace/jaeger" + "mosn.io/mosn/pkg/trace/skywalking" + tracehttp "mosn.io/mosn/pkg/trace/sofa/http" + xtrace "mosn.io/mosn/pkg/trace/sofa/xprotocol" + tracebolt "mosn.io/mosn/pkg/trace/sofa/xprotocol/bolt" + mosn_zipkin "mosn.io/mosn/pkg/trace/zipkin" + "mosn.io/pkg/buffer" + + component_actuators "mosn.io/layotto/components/pkg/actuators" + "mosn.io/layotto/diagnostics" + "mosn.io/layotto/diagnostics/jaeger" + lprotocol "mosn.io/layotto/diagnostics/protocol" + lsky "mosn.io/layotto/diagnostics/skywalking" + "mosn.io/layotto/diagnostics/zipkin" + + // Actuator + "mosn.io/layotto/pkg/actuator/health" + "mosn.io/layotto/pkg/integrate/actuator" + + "github.com/urfave/cli" + "mosn.io/mosn/pkg/featuregate" +) + +var ( + flagToMosnLogLevel = map[string]string{ + "trace": "TRACE", + "debug": "DEBUG", + "info": "INFO", + "warning": "WARN", + "error": "ERROR", + "critical": "FATAL", + "off": "OFF", + } + + cmdStart = cli.Command{ + Name: "start", + Usage: "start runtime. For example: ./layotto start -c configs/config_standalone.json", + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "config, c", + Usage: "Load configuration from `FILE`", + EnvVar: "RUNTIME_CONFIG", + Value: "configs/config.json", + }, cli.StringFlag{ + Name: "service-cluster, s", + Usage: "sidecar service cluster", + EnvVar: "SERVICE_CLUSTER", + }, cli.StringFlag{ + Name: "service-node, n", + Usage: "sidecar service node", + EnvVar: "SERVICE_NODE", + }, cli.StringFlag{ + Name: "service-type, p", + Usage: "sidecar service type", + EnvVar: "SERVICE_TYPE", + }, cli.StringSliceFlag{ + Name: "service-meta, sm", + Usage: "sidecar service metadata", + EnvVar: "SERVICE_META", + }, cli.StringSliceFlag{ + Name: "service-lables, sl", + Usage: "sidecar service metadata labels", + EnvVar: "SERVICE_LAB", + }, cli.StringSliceFlag{ + Name: "cluster-domain, domain", + Usage: "sidecar service metadata labels", + EnvVar: "CLUSTER_DOMAIN", + }, cli.StringFlag{ + Name: "feature-gates, f", + Usage: "config feature gates", + EnvVar: "FEATURE_GATES", + }, cli.StringFlag{ + Name: "pod-namespace, pns", + Usage: "mosn pod namespaces", + EnvVar: "POD_NAMESPACE", + }, cli.StringFlag{ + Name: "pod-name, pn", + Usage: "mosn pod name", + EnvVar: "POD_NAME", + }, cli.StringFlag{ + Name: "pod-ip, pi", + Usage: "mosn pod ip", + EnvVar: "POD_IP", + }, cli.StringFlag{ + Name: "log-level, l", + Usage: "mosn log level, trace|debug|info|warning|error|critical|off", + EnvVar: "LOG_LEVEL", + }, cli.StringFlag{ + Name: "log-format, lf", + Usage: "mosn log format, currently useless", + }, cli.StringSliceFlag{ + Name: "component-log-level, lc", + Usage: "mosn component format, currently useless", + }, cli.StringFlag{ + Name: "local-address-ip-version", + Usage: "ip version, v4 or v6, currently useless", + }, cli.IntFlag{ + Name: "restart-epoch", + Usage: "epoch to restart, align to Istio startup params, currently useless", + }, cli.IntFlag{ + Name: "drain-time-s", + Usage: "seconds to drain connections, default 600 seconds", + Value: 600, + }, cli.StringFlag{ + Name: "parent-shutdown-time-s", + Usage: "parent shutdown time seconds, align to Istio startup params, currently useless", + }, cli.IntFlag{ + Name: "max-obj-name-len", + Usage: "object name limit, align to Istio startup params, currently useless", + }, cli.IntFlag{ + Name: "concurrency", + Usage: "concurrency, align to Istio startup params, currently useless", + }, cli.IntFlag{ + Name: "log-format-prefix-with-location", + Usage: "log-format-prefix-with-location, align to Istio startup params, currently useless", + }, cli.IntFlag{ + Name: "bootstrap-version", + Usage: "API version to parse the bootstrap config as (e.g. 3). If unset, all known versions will be attempted", + }, cli.StringFlag{ + Name: "drain-strategy", + Usage: "immediate", + }, cli.BoolTFlag{ + Name: "disable-hot-restart", + Usage: "disable-hot-restart", + }, + }, + Action: func(c *cli.Context) error { + app := mosn.NewMosn() + stm := stagemanager.InitStageManager(c, c.String("config"), app) + + // if needs featuregate init in parameter stage or init stage + // append a new stage and called featuregate.ExecuteInitFunc(keys...) + // parameter parsed registered + stm.AppendParamsParsedStage(ExtensionsRegister) + + stm.AppendParamsParsedStage(DefaultParamsParsed) + + // init Stage + stm.AppendInitStage(func(cfg *v2.MOSNConfig) { + drainTime := c.Int("drain-time-s") + server.SetDrainTime(time.Duration(drainTime) * time.Second) + // istio parameters + serviceCluster := c.String("service-cluster") + serviceNode := c.String("service-node") + serviceType := c.String("service-type") + serviceMeta := c.StringSlice("service-meta") + metaLabels := c.StringSlice("service-lables") + clusterDomain := c.String("cluster-domain") + podName := c.String("pod-name") + podNamespace := c.String("pod-namespace") + podIp := c.String("pod-ip") + + if serviceNode != "" { + istio1106.InitXdsInfo(cfg, serviceCluster, serviceNode, serviceMeta, metaLabels) + } else { + if istio1106.IsApplicationNodeType(serviceType) { + sn := podName + "." + podNamespace + serviceNode = serviceType + "~" + podIp + "~" + sn + "~" + clusterDomain + istio1106.InitXdsInfo(cfg, serviceCluster, serviceNode, serviceMeta, metaLabels) + } else { + log.StartLogger.Infof("[mosn] [start] xds service type is not router/sidecar, use config only") + istio1106.InitXdsInfo(cfg, "", "", nil, nil) + } + } + }) + stm.AppendInitStage(mosn.DefaultInitStage) + stm.AppendInitStage(func(_ *v2.MOSNConfig) { + // set version and go version + metrics.SetVersion(GitVersion) + metrics.SetGoVersion(runtime.Version()) + }) + // pre-startup + stm.AppendPreStartStage(mosn.DefaultPreStartStage) // called finally stage by default + // startup + stm.AppendStartStage(mosn.DefaultStartStage) + // after-startup + stm.AppendAfterStartStage(SetActuatorAfterStart) + // execute all stages + stm.RunAll() + return nil + }, + } + + cmdStop = cli.Command{ + Name: "stop", + Usage: "stop mosn proxy", + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "config, c", + Usage: "load configuration from `FILE`", + EnvVar: "MOSN_CONFIG", + Value: "configs/mosn_config.json", + }, + }, + Action: func(c *cli.Context) (err error) { + app := mosn.NewMosn() + stm := stagemanager.InitStageManager(c, c.String("config"), app) + stm.AppendInitStage(mosn.InitDefaultPath) + return stm.StopMosnProcess() + }, + } + + cmdReload = cli.Command{ + Name: "reload", + Usage: "reconfiguration", + Action: func(c *cli.Context) error { + return nil + }, + } +) + +func SetActuatorAfterStart(_ stagemanager.Application) { + // register component actuator + component_actuators.RangeAllIndicators( + func(name string, v *component_actuators.ComponentsIndicator) bool { + if v != nil { + health.AddLivenessIndicator(name, v.LivenessIndicator) + health.AddReadinessIndicator(name, v.ReadinessIndicator) + } + return true + }) + // set started + actuator.GetRuntimeReadinessIndicator().SetStarted() + actuator.GetRuntimeLivenessIndicator().SetStarted() +} + +func DefaultParamsParsed(c *cli.Context) { + // log level control + flagLogLevel := c.String("log-level") + if mosnLogLevel, ok := flagToMosnLogLevel[flagLogLevel]; ok { + if mosnLogLevel == "OFF" { + log.GetErrorLoggerManagerInstance().Disable() + } else { + log.GetErrorLoggerManagerInstance().SetLogLevelControl(configmanager.ParseLogLevel(mosnLogLevel)) + } + } + // set feature gates + err := featuregate.Set(c.String("feature-gates")) + if err != nil { + log.StartLogger.Infof("[mosn] [start] parse feature-gates flag fail : %+v", err) + os.Exit(1) + } +} + +// ExtensionsRegister for register mosn rpc extensions +func ExtensionsRegister(_ *cli.Context) { + // 1. tracer driver register + // Q: What is a tracer driver ? + // A: MOSN implement a group of trace drivers, but only a configured driver will be loaded. + // A tracer driver can create different tracer by different protocol. + // When MOSN receive a request stream, MOSN will try to start a tracer according to the request protocol. + // For more details,see https://mosn.io/blog/posts/skywalking-support/ + trace.RegisterDriver("SOFATracer", trace.NewDefaultDriverImpl()) + + // 2. xprotocol action register + // ResgisterXProtocolAction is MOSN's xprotocol framework's extensions. + // when a xprotocol implementation (defined by api.XProtocolCodec) registered, the registered action will be called. + xprotocol.ResgisterXProtocolAction(xstream.NewConnPool, xstream.NewStreamFactory, func(codec api.XProtocolCodec) { + name := codec.ProtocolName() + trace.RegisterTracerBuilder("SOFATracer", name, xtrace.NewTracer) + }) + + // 3. register protocols that are used by layotto. + // RegisterXProtocolCodec add a new xprotocol implementation, which is a wrapper for protocol register + _ = xprotocol.RegisterXProtocolCodec(&bolt.XCodec{}) + _ = xprotocol.RegisterXProtocolCodec(&dubbo.XCodec{}) + + // 4. register tracer + xtrace.RegisterDelegate(bolt.ProtocolName, tracebolt.Boltv1Delegate) + trace.RegisterTracerBuilder("SOFATracer", protocol.HTTP1, tracehttp.NewTracer) + trace.RegisterTracerBuilder("SOFATracer", lprotocol.Layotto, diagnostics.NewTracer) + trace.RegisterTracerBuilder(skywalking.SkyDriverName, lprotocol.Layotto, lsky.NewGrpcSkyTracer) + trace.RegisterTracerBuilder(mosn_jaeger.DriverName, lprotocol.Layotto, jaeger.NewGrpcJaegerTracer) + trace.RegisterTracerBuilder(mosn_zipkin.DriverName, lprotocol.Layotto, zipkin.NewGrpcZipTracer) + + // register buffer logger + buffer.SetLogFunc(func(msg string) { + log.DefaultLogger.Errorf("[iobuffer] iobuffer error log info: %s", msg) + }) +} diff --git a/cmd/layotto/main.go b/cmd/layotto/main.go index b71606be4c..d4ccb41b6d 100644 --- a/cmd/layotto/main.go +++ b/cmd/layotto/main.go @@ -22,12 +22,6 @@ import ( "strconv" "time" - mosn_zipkin "mosn.io/mosn/pkg/trace/zipkin" - - "mosn.io/layotto/diagnostics/zipkin" - - mosn_jaeger "mosn.io/mosn/pkg/trace/jaeger" - "github.com/dapr/components-contrib/secretstores" "github.com/dapr/components-contrib/secretstores/aws/parameterstore" "github.com/dapr/components-contrib/secretstores/aws/secretmanager" @@ -37,12 +31,7 @@ import ( sercetstores_kubernetes "github.com/dapr/components-contrib/secretstores/kubernetes" secretstore_env "github.com/dapr/components-contrib/secretstores/local/env" secretstore_file "github.com/dapr/components-contrib/secretstores/local/file" - "mosn.io/api" - "mosn.io/mosn/pkg/stagemanager" - "mosn.io/mosn/pkg/trace/skywalking" - component_actuators "mosn.io/layotto/components/pkg/actuators" - "mosn.io/layotto/diagnostics" "mosn.io/layotto/pkg/grpc/default_api" secretstores_loader "mosn.io/layotto/pkg/runtime/secretstores" @@ -147,7 +136,6 @@ import ( "github.com/urfave/cli" "google.golang.org/grpc" - "mosn.io/mosn/pkg/featuregate" _ "mosn.io/mosn/pkg/filter/network/grpc" mgrpc "mosn.io/mosn/pkg/filter/network/grpc" _ "mosn.io/mosn/pkg/filter/network/proxy" @@ -155,18 +143,8 @@ import ( _ "mosn.io/mosn/pkg/filter/stream/grpcmetric" _ "mosn.io/mosn/pkg/metrics/sink" _ "mosn.io/mosn/pkg/metrics/sink/prometheus" - "mosn.io/mosn/pkg/mosn" _ "mosn.io/mosn/pkg/network" - "mosn.io/mosn/pkg/protocol" - "mosn.io/mosn/pkg/protocol/xprotocol" - "mosn.io/mosn/pkg/protocol/xprotocol/bolt" - "mosn.io/mosn/pkg/protocol/xprotocol/dubbo" _ "mosn.io/mosn/pkg/stream/http" - xstream "mosn.io/mosn/pkg/stream/xprotocol" - "mosn.io/mosn/pkg/trace" - tracehttp "mosn.io/mosn/pkg/trace/sofa/http" - xtrace "mosn.io/mosn/pkg/trace/sofa/xprotocol" - tracebolt "mosn.io/mosn/pkg/trace/sofa/xprotocol/bolt" _ "mosn.io/mosn/pkg/wasm/runtime/wasmer" _ "mosn.io/pkg/buffer" @@ -175,10 +153,46 @@ import ( "mosn.io/layotto/pkg/runtime" _ "mosn.io/layotto/pkg/wasm" + _ "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/router/v3" + _ "mosn.io/mosn/istio/istio1106" + _ "mosn.io/mosn/istio/istio1106/filter/stream/jwtauthn" + _ "mosn.io/mosn/istio/istio1106/filter/stream/mixer" + _ "mosn.io/mosn/istio/istio1106/filter/stream/stats" + _ "mosn.io/mosn/istio/istio1106/sds" + _ "mosn.io/mosn/istio/istio1106/xds" + _ "mosn.io/mosn/pkg/filter/listener/originaldst" + _ "mosn.io/mosn/pkg/filter/network/connectionmanager" + _ "mosn.io/mosn/pkg/filter/network/streamproxy" + _ "mosn.io/mosn/pkg/filter/network/tunnel" + _ "mosn.io/mosn/pkg/filter/stream/dsl" + _ "mosn.io/mosn/pkg/filter/stream/dubbo" + _ "mosn.io/mosn/pkg/filter/stream/faultinject" + _ "mosn.io/mosn/pkg/filter/stream/faulttolerance" + _ "mosn.io/mosn/pkg/filter/stream/gzip" + _ "mosn.io/mosn/pkg/filter/stream/headertometadata" + _ "mosn.io/mosn/pkg/filter/stream/ipaccess" + _ "mosn.io/mosn/pkg/filter/stream/mirror" + _ "mosn.io/mosn/pkg/filter/stream/payloadlimit" + _ "mosn.io/mosn/pkg/filter/stream/proxywasm" + _ "mosn.io/mosn/pkg/filter/stream/seata" + _ "mosn.io/mosn/pkg/filter/stream/transcoder/http2bolt" + _ "mosn.io/mosn/pkg/filter/stream/transcoder/httpconv" + _ "mosn.io/mosn/pkg/protocol" + _ "mosn.io/mosn/pkg/protocol/xprotocol" + _ "mosn.io/mosn/pkg/router" + _ "mosn.io/mosn/pkg/server/keeper" + _ "mosn.io/mosn/pkg/stream/http2" + _ "mosn.io/mosn/pkg/stream/xprotocol" + _ "mosn.io/mosn/pkg/trace/jaeger" + _ "mosn.io/mosn/pkg/trace/skywalking" + _ "mosn.io/mosn/pkg/trace/skywalking/http" + _ "mosn.io/mosn/pkg/trace/sofa/http" + _ "mosn.io/mosn/pkg/trace/sofa/xprotocol" + _ "mosn.io/mosn/pkg/trace/sofa/xprotocol/bolt" + _ "mosn.io/mosn/pkg/upstream/healthcheck" + _ "mosn.io/mosn/pkg/upstream/servicediscovery/dubbod" + _ "mosn.io/layotto/diagnostics/exporter_iml" - "mosn.io/layotto/diagnostics/jaeger" - lprotocol "mosn.io/layotto/diagnostics/protocol" - lsky "mosn.io/layotto/diagnostics/skywalking" ) // loggerForDaprComp is constructed for reusing dapr's components. @@ -435,97 +449,6 @@ func NewRuntimeGrpcServer(data json.RawMessage, opts ...grpc.ServerOption) (mgrp return server, err } -var cmdStart = cli.Command{ - Name: "start", - Usage: "start runtime. For example: ./layotto start -c configs/config_standalone.json", - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "config, c", - Usage: "Load configuration from `FILE`", - EnvVar: "RUNTIME_CONFIG", - Value: "configs/config.json", - }, cli.StringFlag{ - Name: "feature-gates, f", - Usage: "config feature gates", - EnvVar: "FEATURE_GATES", - }, - }, - Action: func(c *cli.Context) error { - app := mosn.NewMosn() - stm := stagemanager.InitStageManager(c, c.String("config"), app) - - stm.AppendParamsParsedStage(ExtensionsRegister) - - stm.AppendParamsParsedStage(func(c *cli.Context) { - err := featuregate.Set(c.String("feature-gates")) - if err != nil { - os.Exit(1) - } - }) - - stm.AppendInitStage(mosn.DefaultInitStage) - - stm.AppendPreStartStage(mosn.DefaultPreStartStage) // called finally stage by default - - stm.AppendStartStage(mosn.DefaultStartStage) - - stm.AppendAfterStartStage(SetActuatorAfterStart) - - stm.Run() - - // wait mosn finished - stm.WaitFinish() - return nil - }, -} - -func SetActuatorAfterStart(_ stagemanager.Application) { - // register component actuator - component_actuators.RangeAllIndicators( - func(name string, v *component_actuators.ComponentsIndicator) bool { - if v != nil { - health.AddLivenessIndicator(name, v.LivenessIndicator) - health.AddReadinessIndicator(name, v.ReadinessIndicator) - } - return true - }) - // set started - actuator.GetRuntimeReadinessIndicator().SetStarted() - actuator.GetRuntimeLivenessIndicator().SetStarted() -} - -// ExtensionsRegister for register mosn rpc extensions -func ExtensionsRegister(_ *cli.Context) { - // 1. tracer driver register - // Q: What is a tracer driver ? - // A: MOSN implement a group of trace drivers, but only a configured driver will be loaded. - // A tracer driver can create different tracer by different protocol. - // When MOSN receive a request stream, MOSN will try to start a tracer according to the request protocol. - // For more details,see https://mosn.io/blog/posts/skywalking-support/ - trace.RegisterDriver("SOFATracer", trace.NewDefaultDriverImpl()) - - // 2. xprotocol action register - // ResgisterXProtocolAction is MOSN's xprotocol framework's extensions. - // when a xprotocol implementation (defined by api.XProtocolCodec) registered, the registered action will be called. - xprotocol.ResgisterXProtocolAction(xstream.NewConnPool, xstream.NewStreamFactory, func(codec api.XProtocolCodec) { - name := codec.ProtocolName() - trace.RegisterTracerBuilder("SOFATracer", name, xtrace.NewTracer) - }) - - // 3. register protocols that are used by layotto. - // RegisterXProtocolCodec add a new xprotocol implementation, which is a wrapper for protocol register - _ = xprotocol.RegisterXProtocolCodec(&bolt.XCodec{}) - _ = xprotocol.RegisterXProtocolCodec(&dubbo.XCodec{}) - - // 4. register tracer - xtrace.RegisterDelegate(bolt.ProtocolName, tracebolt.Boltv1Delegate) - trace.RegisterTracerBuilder("SOFATracer", protocol.HTTP1, tracehttp.NewTracer) - trace.RegisterTracerBuilder("SOFATracer", lprotocol.Layotto, diagnostics.NewTracer) - trace.RegisterTracerBuilder(skywalking.SkyDriverName, lprotocol.Layotto, lsky.NewGrpcSkyTracer) - trace.RegisterTracerBuilder(mosn_jaeger.DriverName, lprotocol.Layotto, jaeger.NewGrpcJaegerTracer) - trace.RegisterTracerBuilder(mosn_zipkin.DriverName, lprotocol.Layotto, zipkin.NewGrpcZipTracer) -} - func main() { app := newRuntimeApp(&cmdStart) registerAppInfo(app) @@ -552,6 +475,8 @@ func newRuntimeApp(startCmd *cli.Command) *cli.App { // commands app.Commands = []cli.Command{ cmdStart, + cmdStop, + cmdReload, } // action app.Action = func(c *cli.Context) error { diff --git a/go.mod b/go.mod index 514a5cf35d..89c9ca2d3a 100644 --- a/go.mod +++ b/go.mod @@ -13,6 +13,7 @@ require ( github.com/dapr/components-contrib v1.5.1-rc.1 github.com/dapr/kit v0.0.2-0.20210614175626-b9074b64d233 github.com/dimchansky/utfbom v1.1.1 // indirect + github.com/envoyproxy/go-control-plane v0.10.0 github.com/fsnotify/fsnotify v1.4.9 github.com/gammazero/workerpool v1.1.2 github.com/golang/mock v1.6.0 diff --git a/go.sum b/go.sum index abda52604f..4b62aa1400 100644 --- a/go.sum +++ b/go.sum @@ -279,6 +279,7 @@ github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEe github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.1.1 h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI= @@ -296,8 +297,10 @@ github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe h1:QJDJubh0OEcpeGjC7/8uF9tt4e39U/Ya1uyK+itnNPQ= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= @@ -388,7 +391,9 @@ github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dubbogo/getty v1.3.4 h1:5TvH213pnSIKYzY7IK8TT/r6yr5uPTB/U6YNLT+GsU0= github.com/dubbogo/getty v1.3.4/go.mod h1:36f+gH/ekaqcDWKbxNBQk9b9HXcGtaI6YHxp4YTntX8= +github.com/dubbogo/go-zookeeper v1.0.3 h1:UkuY+rBsxdT7Bs63QAzp9z7XqQ53W1j8E5rwl83me8g= github.com/dubbogo/go-zookeeper v1.0.3/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c= github.com/dubbogo/gost v1.5.2/go.mod h1:pPTjVyoJan3aPxBPNUX0ADkXjPibLo+/Ib0/fADXSG8= github.com/dubbogo/gost v1.9.0/go.mod h1:pPTjVyoJan3aPxBPNUX0ADkXjPibLo+/Ib0/fADXSG8= @@ -423,7 +428,9 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.10.0 h1:WVt4HEPbdRbRD/PKKPbPnIVavO6gk/h673jWyIJ016k= github.com/envoyproxy/go-control-plane v0.10.0/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= +github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= @@ -461,6 +468,7 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi v4.1.0+incompatible h1:ETj3cggsVIY2Xao5ExCu6YhEh5MD6JTfcBzS37R260w= github.com/go-chi/chi v4.1.0+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= @@ -507,6 +515,7 @@ github.com/go-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGK github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-redis/redis/v8 v8.8.0 h1:fDZP58UN/1RD3DjtTXP/fFZ04TFohSYhjZDkcDe2dnw= github.com/go-redis/redis/v8 v8.8.0/go.mod h1:F7resOH5Kdug49Otu24RjHWwgK7u9AmtqWMnCV1iP5Y= +github.com/go-resty/resty/v2 v2.6.0 h1:joIR5PNLM2EFqqESUjCMGXrWmXNHEU9CEiK813oKYS4= github.com/go-resty/resty/v2 v2.6.0/go.mod h1:PwvJS6hvaPkjtjNg9ph+VrSD92bi5Zq73w/BIH7cC3Q= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -568,6 +577,7 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= +github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= @@ -827,6 +837,7 @@ github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxy github.com/jcmturner/gokrb5/v8 v8.4.1/go.mod h1:T1hnNppQsBtxW0tCHMHTkAt8n/sABdzZgZdoFrZaZNM= github.com/jcmturner/rpc/v2 v2.0.2/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869/go.mod h1:cJ6Cj7dQo+O6GJNiMx+Pa94qKj+TG8ONdKHgMNIyyag= +github.com/jinzhu/copier v0.3.2 h1:QdBOCbaouLDYaIPFfi1bKv5F5tPpeTwXe4sD0jqtz5w= github.com/jinzhu/copier v0.3.2/go.mod h1:24xnZezI2Yqac9J61UC6/dG/k76ttpq0DdJI3QmUvro= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= @@ -863,17 +874,21 @@ github.com/juju/cmd v0.0.0-20171107070456-e74f39857ca0/go.mod h1:yWJQHl73rdSX4DH github.com/juju/collections v0.0.0-20200605021417-0d0ec82b7271/go.mod h1:5XgO71dV1JClcOJE+4dzdn4HrI5LiyKd7PlVG6eZYhY= github.com/juju/errors v0.0.0-20150916125642-1b5e39b83d18/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/errors v0.0.0-20190930114154-d42613fe1ab9/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/errors v0.0.0-20200330140219-3fe23663418f h1:MCOvExGLpaSIzLYB4iQXEHP4jYVU6vmzLNQPdMVrxnM= github.com/juju/errors v0.0.0-20200330140219-3fe23663418f/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= github.com/juju/httpprof v0.0.0-20141217160036-14bf14c30767/go.mod h1:+MaLYz4PumRkkyHYeXJ2G5g5cIW0sli2bOfpmbaMV/g= github.com/juju/loggo v0.0.0-20170605014607-8232ab8918d9/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/loggo v0.0.0-20200526014432-9ce3a2e09b5e h1:FdDd7bdI6cjq5vaoYlK1mfQYfF9sF2VZw8VEZMsl5t8= github.com/juju/loggo v0.0.0-20200526014432-9ce3a2e09b5e/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/mgo/v2 v2.0.0-20210302023703-70d5d206e208 h1:/WiCm+Vpj87e4QWuWwPD/bNE9kDrWCLvPBHOQNcG2+A= github.com/juju/mgo/v2 v2.0.0-20210302023703-70d5d206e208/go.mod h1:0OChplkvPTZ174D2FYZXg4IB9hbEwyHkD+zT+/eK+Fg= github.com/juju/mutex v0.0.0-20171110020013-1fe2a4bf0a3a/go.mod h1:Y3oOzHH8CQ0Ppt0oCKJ2JFO81/EsWenH5AEqigLH+yY= github.com/juju/retry v0.0.0-20151029024821-62c620325291/go.mod h1:OohPQGsr4pnxwD5YljhQ+TZnuVRYpa5irjugL1Yuif4= github.com/juju/retry v0.0.0-20180821225755-9058e192b216/go.mod h1:OohPQGsr4pnxwD5YljhQ+TZnuVRYpa5irjugL1Yuif4= github.com/juju/testing v0.0.0-20180402130637-44801989f0f7/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= github.com/juju/testing v0.0.0-20190723135506-ce30eb24acd2/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= +github.com/juju/testing v0.0.0-20210324180055-18c50b0c2098 h1:yrhek184cGp0IRyHg0uV1khLaorNg6GtDLkry4oNNjE= github.com/juju/testing v0.0.0-20210324180055-18c50b0c2098/go.mod h1:7lxZW0B50+xdGFkvhAb8bwAGt6IU87JB1H9w4t8MNVM= github.com/juju/utils v0.0.0-20180424094159-2000ea4ff043/go.mod h1:6/KLg8Wz/y2KVGWEpkK9vMNGkOnu4k/cqs8Z1fKjTOk= github.com/juju/utils v0.0.0-20200116185830-d40c2fe10647/go.mod h1:6/KLg8Wz/y2KVGWEpkK9vMNGkOnu4k/cqs8Z1fKjTOk= @@ -884,7 +899,9 @@ github.com/juju/version v0.0.0-20191219164919-81c1be00b9a6/go.mod h1:kE8gK5X0CIm github.com/julienschmidt/httprouter v1.1.1-0.20151013225520-77a895ad01eb/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/k0kubun/pp v3.0.1+incompatible h1:3tqvf7QgUnZ5tXO6pNAZlrvHgl6DvifjDrd9g2S9Z40= github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= @@ -927,7 +944,9 @@ github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lestrrat/go-envload v0.0.0-20180220120943-6ed08b54a570/go.mod h1:BLt8L9ld7wVsvEWQbuLrUZnCMnUmLZ+CGDzKtclrTlE= github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f/go.mod h1:UGmTpUd3rjbtfIpwAPrcfmGf/Z1HS95TATB+m57TPB8= +github.com/lestrrat/go-jwx v0.0.0-20180221005942-b7d4802280ae h1:XoMPFIGibcPKgLrgIxzif36Zs/2yOEeGYc/7nitjzNM= github.com/lestrrat/go-jwx v0.0.0-20180221005942-b7d4802280ae/go.mod h1:T+yHdCP6MJKtzoVQMHvVCeam5VFwX1+rWzn5zZgKYMI= +github.com/lestrrat/go-pdebug v0.0.0-20180220043741-569c97477ae8 h1:ttJD8hTqvrPEUBoAG5hJKbDOJ84u7zmbnZsUL4V9430= github.com/lestrrat/go-pdebug v0.0.0-20180220043741-569c97477ae8/go.mod h1:VXFH11P7fHn2iPBsfSW1JacR59rttTcafJnwYcI/IdY= github.com/lestrrat/go-strftime v0.0.0-20180220042222-ba3bf9c1d042/go.mod h1:TPpsiPUEh0zFL1Snz4crhMlBe60PYxRHr5oFF3rRYg0= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -1120,6 +1139,7 @@ github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFSt github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/opentrx/seata-golang/v2 v2.0.4 h1:WLzuIoZsVi6ZEJUoi0g891I74dlC6ENH7UlYmR9oQh8= github.com/opentrx/seata-golang/v2 v2.0.4/go.mod h1:uVMIDsvM4NBQXoZgtfHleBGrAqwkUry3jD3cf/JYi9k= github.com/openzipkin-contrib/zipkin-go-opentracing v0.3.5/go.mod h1:uVHyebswE1cCXr2A73cRM2frx5ld1RJUCJkFNZ90ZiI= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= @@ -1367,6 +1387,7 @@ github.com/valyala/fasthttp v1.28.0 h1:ruVmTmZaBR5i67NqnjvvH5gEv0zwHfWtbjoyW98ih github.com/valyala/fasthttp v1.28.0/go.mod h1:cmWIqlu99AO/RKcp1HWaViTqc57FswJOfYYdPJBl8BA= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= @@ -2066,7 +2087,9 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +istio.io/api v0.0.0-20211103171850-665ed2b92d52 h1:1mm1/2WIcHliAdhSa+FZaCHKkuGX2gZcjySCA47Gzcs= istio.io/api v0.0.0-20211103171850-665ed2b92d52/go.mod h1:lavaUNsnT7RGyMFNOGgV5XvOgP3fkTSZkxP/0H/ISt4= +istio.io/gogo-genproto v0.0.0-20210113155706-4daf5697332f h1:9710FpGLvIJ1GGEbpuTh1smVBv+r8cJfR3G82ouSxIQ= istio.io/gogo-genproto v0.0.0-20210113155706-4daf5697332f/go.mod h1:6BwTZRNbWS570wHX/uR1Wqk5e0157TofTAUMzT7N4+s= k8s.io/api v0.20.0/go.mod h1:HyLC5l5eoS/ygQYl1BXBgFzWNlkHiAuyNAbevIn+FKg= k8s.io/api v0.20.2 h1:y/HR22XDZY3pniu9hIFDLpUCPq2w5eQ6aV/VFQ7uJMw= @@ -2117,7 +2140,9 @@ sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= stathat.com/c/consistent v1.0.0/go.mod h1:QkzMWzcbB+yQBL2AttO6sgsQS/JSTapcDISJalmCDS0= +vimagination.zapto.org/byteio v0.0.0-20200222190125-d27cba0f0b10 h1:pxt6fVJP67Hxo1qk8JalUghLlk3abYByl+3e0JYfUlE= vimagination.zapto.org/byteio v0.0.0-20200222190125-d27cba0f0b10/go.mod h1:fl9OF22g6MTKgvHA1hqMXe/L7+ULWofVTwbC9loGu7A= +vimagination.zapto.org/memio v0.0.0-20200222190306-588ebc67b97d h1:Mp6WiHHuiwHaknxTdxJ8pvC9/B4pOgW1PamKGexG7Fs= vimagination.zapto.org/memio v0.0.0-20200222190306-588ebc67b97d/go.mod h1:zHGDKp2tyvF4IAfLti4pKYqCJucXYmmKMb3UMrCHK/4= xorm.io/builder v0.3.6/go.mod h1:LEFAPISnRzG+zxaxj2vPicRwz67BdhFreKg8yv8/TgU= xorm.io/builder v0.3.9/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= From bfdeb6a22cde107a6d3fd7e273d4483afaec3d6a Mon Sep 17 00:00:00 2001 From: seeflood Date: Mon, 4 Jul 2022 16:51:34 +0800 Subject: [PATCH 2/4] fix quickstart Signed-off-by: seeflood --- docs/en/start/wasm/start.md | 2 +- docs/zh/start/wasm/start.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/start/wasm/start.md b/docs/en/start/wasm/start.md index 56ce674da1..64d67b85c5 100644 --- a/docs/en/start/wasm/start.md +++ b/docs/en/start/wasm/start.md @@ -61,7 +61,7 @@ The result is: Build: ```shell @if.not.exist layotto_wasmer -go build -tags wasmer -o ./layotto_wasmer ./cmd/layotto/main.go +go build -tags wasmer -o ./layotto_wasmer ./cmd/layotto ``` Run it: diff --git a/docs/zh/start/wasm/start.md b/docs/zh/start/wasm/start.md index 1a20f1ccfe..06bebc407b 100644 --- a/docs/zh/start/wasm/start.md +++ b/docs/zh/start/wasm/start.md @@ -59,7 +59,7 @@ docker exec -i redis-test redis-cli get book1 构建: ```shell @if.not.exist layotto_wasmer -go build -tags wasmer -o ./layotto_wasmer ./cmd/layotto/main.go +go build -tags wasmer -o ./layotto_wasmer ./cmd/layotto ``` 运行: From 4c45a424493613a4f706d5b061748ce31d2997b7 Mon Sep 17 00:00:00 2001 From: seeflood Date: Mon, 4 Jul 2022 17:09:45 +0800 Subject: [PATCH 3/4] fix dubbo quickstart Signed-off-by: seeflood --- docs/en/start/rpc/dubbo_json_rpc.md | 2 +- docs/zh/start/rpc/dubbo_json_rpc.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/start/rpc/dubbo_json_rpc.md b/docs/en/start/rpc/dubbo_json_rpc.md index 35a7f07851..b934c1bd15 100644 --- a/docs/en/start/rpc/dubbo_json_rpc.md +++ b/docs/en/start/rpc/dubbo_json_rpc.md @@ -8,7 +8,7 @@ ### step 2. Compile and start layotto ```shell @if.not.exist layotto -go build -o layotto cmd/layotto/main.go +go build -o layotto ./cmd/layotto ``` ```shell @background diff --git a/docs/zh/start/rpc/dubbo_json_rpc.md b/docs/zh/start/rpc/dubbo_json_rpc.md index cc645ceaab..61d9f9c2b0 100644 --- a/docs/zh/start/rpc/dubbo_json_rpc.md +++ b/docs/zh/start/rpc/dubbo_json_rpc.md @@ -8,7 +8,7 @@ ### step 2. 编译运行layotto ```shell @if.not.exist layotto -go build -o layotto cmd/layotto/main.go +go build -o layotto ./cmd/layotto ``` ```shell @background From 37a6f450360ab7b428f35cbf20ce61473fee8ab2 Mon Sep 17 00:00:00 2001 From: seeflood Date: Mon, 4 Jul 2022 17:20:21 +0800 Subject: [PATCH 4/4] fix dubbo quickstart Signed-off-by: seeflood --- docs/en/start/rpc/dubbo_json_rpc.md | 2 +- docs/zh/start/rpc/dubbo_json_rpc.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/start/rpc/dubbo_json_rpc.md b/docs/en/start/rpc/dubbo_json_rpc.md index b934c1bd15..ba69391288 100644 --- a/docs/en/start/rpc/dubbo_json_rpc.md +++ b/docs/en/start/rpc/dubbo_json_rpc.md @@ -19,7 +19,7 @@ go build -o layotto ./cmd/layotto use `dubbo-go-samples` repo's example server. -```shell @catch +```shell @if.not.exist dubbo-go-samples git clone https://github.com/apache/dubbo-go-samples.git ``` diff --git a/docs/zh/start/rpc/dubbo_json_rpc.md b/docs/zh/start/rpc/dubbo_json_rpc.md index 61d9f9c2b0..820ddf9649 100644 --- a/docs/zh/start/rpc/dubbo_json_rpc.md +++ b/docs/zh/start/rpc/dubbo_json_rpc.md @@ -20,7 +20,7 @@ go build -o layotto ./cmd/layotto 这里使用了`dubbo-go-samples`提供的示例服务。 下载示例: -```shell @catch +```shell @if.not.exist dubbo-go-samples git clone https://github.com/apache/dubbo-go-samples.git ```