feat: first version.

This commit is contained in:
tx7do
2023-05-21 10:04:15 +08:00
parent 3656de9753
commit 785443dd84
51 changed files with 15841 additions and 0 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,26 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
import "conf/v1/tracer.proto";
import "conf/v1/data.proto";
import "conf/v1/server.proto";
import "conf/v1/client.proto";
import "conf/v1/logger.proto";
import "conf/v1/registry.proto";
import "conf/v1/oss.proto";
import "conf/v1/config.proto";
// 引导信息
message Bootstrap {
Server server = 1;
Client client = 2;
Data data = 3;
Tracer trace = 4;
Logger logger = 5;
Registry registry = 6;
RemoteConfig config = 7;
OSS oss = 8;
}

26
api/conf/v1/client.proto Normal file
View File

@@ -0,0 +1,26 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
import "google/protobuf/duration.proto";
import "conf/v1/middleware.proto";
// 客户端
message Client {
// REST
message REST {
google.protobuf.Duration timeout = 1; // 超时时间
Middleware middleware = 2;
}
// gPRC
message GRPC {
google.protobuf.Duration timeout = 1; // 超时时间
Middleware middleware = 2;
}
REST rest = 1; // REST服务
GRPC grpc = 2; // gRPC服务
}

53
api/conf/v1/config.proto Normal file
View File

@@ -0,0 +1,53 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
import "google/protobuf/duration.proto";
// 配置服务
message RemoteConfig {
message Nacos {
string address = 1; // 服务端地址
uint64 port = 2; // 服务端端口
string key = 3; //
}
message Etcd {
repeated string endpoints = 1;
google.protobuf.Duration timeout = 2;
string key = 3; //
}
message Consul {
string scheme = 1; // 网络样式
string address = 2; // 服务端地址
string key = 3; //
}
message Apollo {
string endpoint = 1;
string app_id = 2;
string cluster = 3;
string namespace = 4;
string secret = 5;
}
message Kubernetes {
string namespace = 1;
}
message Polaris {
}
string type = 1;
Etcd etcd = 2;
Consul consul = 3;
Nacos nacos = 4;
Apollo apollo = 6;
Kubernetes kubernetes = 7;
Polaris polaris = 8;
}

31
api/conf/v1/data.proto Normal file
View File

@@ -0,0 +1,31 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
import "google/protobuf/duration.proto";
// 数据
message Data {
// 数据库
message Database {
string driver = 1; // 驱动名mysql、postgresql、mongodb、sqlite……
string source = 2; // 数据源DSN字符串
bool migrate = 3; // 数据迁移开关
}
// redis
message Redis {
string network = 1; // 网络
string addr = 2; // 服务端地址
string password = 3; // 密码
int32 db = 4; // 数据库索引
google.protobuf.Duration dial_timeout = 5; // 连接超时时间
google.protobuf.Duration read_timeout = 6; // 读取超时时间
google.protobuf.Duration write_timeout = 7; // 写入超时时间
}
Database database = 1; // 数据库
Redis redis = 2; // Redis
}

55
api/conf/v1/logger.proto Normal file
View File

@@ -0,0 +1,55 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
// 日志
message Logger {
// Zap
message Zap {
string filename = 1; //
string level = 2; //
int32 max_size = 3; //
int32 max_age = 4; //
int32 max_backups = 5; //
}
// logrus
message Logrus {
string level = 1; // 日志等级
string formatter = 2; // 输出格式text, json.
string timestamp_format = 3; // 定义时间戳格式,例如:"2006-01-02 15:04:05"
bool disable_colors = 4; // 不需要彩色日志
bool disable_timestamp = 5; // 不需要时间戳
}
// Fluent
message Fluent {
string endpoint = 1; // 公网接入地址
}
// 阿里云
message Aliyun {
string endpoint = 1; // 公网接入地址
string project = 2; //
string access_key = 3; // 访问密钥ID
string access_secret = 4; // 访问密钥
}
// 腾讯
message Tencent {
string endpoint = 1; // 公网接入地址
string topic_id = 2; //
string access_key = 3; // 访问密钥ID
string access_secret = 4; // 访问密钥
}
string type = 1;
Zap zap = 2;
Logrus logrus = 3;
Fluent fluent = 4;
Aliyun aliyun = 5;
Tencent tencent = 6;
}

View File

@@ -0,0 +1,38 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
import "google/protobuf/duration.proto";
message Middleware {
// JWT校验
message Auth {
string method = 1; // JWT签名的算法支持算法HS256
string key = 2; // JWT 秘钥
}
// 限流器
message RateLimiter {
string name = 1; // 限流器名字支持bbr。
}
// 性能指标
message Metrics {
bool histogram = 1; // 直方图
bool counter = 2; // 计数器
bool gauge = 3; // 仪表盘
bool summary = 4; // 摘要
}
bool enable_logging = 1; // 日志开关
bool enable_recovery = 2; // 异常恢复
bool enable_tracing = 3; // 链路追踪开关
bool enable_validate = 4; // 参数校验开关
bool enable_circuit_breaker = 5; // 熔断器
RateLimiter limiter = 6;
Metrics metrics = 7;
Auth auth = 8;
}

20
api/conf/v1/oss.proto Normal file
View File

@@ -0,0 +1,20 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
message OSS {
// MinIO
message MinIO {
string endpoint = 1; // 对端端口
string access_key = 2; // 访问密钥
string secret_key = 3; // 密钥
string token = 4; // 令牌
bool use_ssl = 5; // 使用SSL
string upload_host = 6; // 上传链接的主机名
string download_host = 7; // 下载链接的主机名
}
MinIO minio = 1;
}

View File

@@ -0,0 +1,82 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
import "google/protobuf/duration.proto";
// 注册发现中心
message Registry {
// Consul
message Consul {
string scheme = 1; // 网络样式
string address = 2; // 服务端地址
bool health_check = 3; // 健康检查
}
// Etcd
message Etcd {
repeated string endpoints = 1;
}
// ZooKeeper
message ZooKeeper {
repeated string endpoints = 1;
google.protobuf.Duration timeout = 2;
}
// Nacos
message Nacos {
string address = 1; // 服务端地址
uint64 port = 2; // 服务端端口
string namespace_id = 3; //
string log_level = 4; // 日志等级
string cache_dir = 5; // 缓存目录
string log_dir = 6; // 日志目录
int32 update_thread_num = 7; // 更新服务的线程数
google.protobuf.Duration timeout = 8; // http请求超时时间单位: 毫秒
google.protobuf.Duration beat_interval = 9; // 心跳间隔时间,单位: 毫秒
bool not_load_cache_at_start = 10; // 在启动时不读取本地缓存数据true: 不读取false: 读取
bool update_cache_when_empty = 11; // 当服务列表为空时是否更新本地缓存true: 更新,false: 不更新
}
// Kubernetes
message Kubernetes {
}
// Eureka
message Eureka {
repeated string endpoints = 1;
google.protobuf.Duration heartbeat_interval = 2;
google.protobuf.Duration refresh_interval = 3;
string path = 4;
}
// Polaris
message Polaris {
string address = 1; // 服务端地址
int32 port = 2; // 服务端端口
int32 instance_count = 3;
string namespace = 4;
string service = 5;
string token = 6;
}
// Servicecomb
message Servicecomb {
repeated string endpoints = 1;
}
string type = 1;
Consul consul = 2; // Consul
Etcd etcd = 3; // Etcd
ZooKeeper zookeeper = 4; // ZooKeeper
Nacos nacos = 5; // Nacos
Kubernetes kubernetes = 6; // Kubernetes
Eureka eureka = 7; // Eureka
Polaris polaris = 8; // Polaris
Servicecomb servicecomb = 9; // Servicecomb
}

64
api/conf/v1/server.proto Normal file
View File

@@ -0,0 +1,64 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
import "google/protobuf/duration.proto";
import "conf/v1/middleware.proto";
// 服务器
message Server {
// REST
message REST {
message CORS {
repeated string headers = 1; //
repeated string methods = 2; //
repeated string origins = 3; //
}
string network = 1; // 网络
string addr = 2; // 服务监听地址
google.protobuf.Duration timeout = 3; // 超时时间
CORS cors = 4; // 服务监听地址
Middleware middleware = 5; // 中间件
}
// gPRC
message GRPC {
string network = 1; // 网络
string addr = 2; // 服务监听地址
google.protobuf.Duration timeout = 3; // 超时时间
Middleware middleware = 4;
}
// Websocket
message Websocket {
string network = 1; // 网络样式http、https
string addr = 2; // 服务监听地址
string path = 3; // 路径
google.protobuf.Duration timeout = 4; // 超时时间
}
// MQTT
message Mqtt {
string addr = 1; // 对端网络地址
}
// Kafka
message Kafka {
repeated string addrs = 1; // 对端网络地址
}
// RabbitMQ
message RabbitMQ {
repeated string addrs = 1; // 对端网络地址
}
REST rest = 1; // REST服务
GRPC grpc = 2; // gRPC服务
Websocket websocket = 3; // Websocket服务
Mqtt mqtt = 4; // MQTT服务
Kafka kafka = 5; // Kafka服务
RabbitMQ rabbitmq = 6; // RabbitMQ服务
}

13
api/conf/v1/tracer.proto Normal file
View File

@@ -0,0 +1,13 @@
syntax = "proto3";
package conf;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1;conf";
// 链路追踪
message Tracer {
string batcher = 1; // jaeger或者zipkin
string endpoint = 2; // 端口
double sampler = 3; // 采样率默认1.0
string env = 4; // 运行环境dev、debug、product
}

35
bootstrap.go Normal file
View File

@@ -0,0 +1,35 @@
package bootstrap
import (
"github.com/go-kratos/kratos/v2/log"
"github.com/go-kratos/kratos/v2/registry"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
// Bootstrap 应用引导启动
func Bootstrap(serviceInfo *ServiceInfo) (*conf.Bootstrap, log.Logger, registry.Registrar) {
// inject command flags
Flags := NewCommandFlags()
Flags.Init()
// load configs
cfg := LoadBootstrapConfig(Flags.Conf)
if cfg == nil {
panic("load config failed")
}
// init logger
ll := NewLoggerProvider(cfg.Logger, serviceInfo)
// init registrar
reg := NewRegistry(cfg.Registry)
// init tracer
err := NewTracerProvider(cfg.Trace, serviceInfo)
if err != nil {
panic(err)
}
return cfg, ll, reg
}

37
buf.gen.yaml Normal file
View File

@@ -0,0 +1,37 @@
# 配置protoc生成规则
version: v1
managed:
enabled: false
plugins:
# generate go struct code
#- plugin: buf.build/protocolbuffers/go
- name: go
out: gen/api/go
opt: paths=source_relative
# generate grpc service code
#- plugin: buf.build/grpc/go
- name: go-grpc
out: gen/api/go
opt:
- paths=source_relative
# generate rest service code
- name: go-http
out: gen/api/go
opt:
- paths=source_relative
# generate kratos errors code
- name: go-errors
out: gen/api/go
opt:
- paths=source_relative
# generate message validator code
#- plugin: buf.build/bufbuild/validate-go
- name: validate
out: gen/api/go
opt:
- paths=source_relative
- lang=go

2
buf.lock Normal file
View File

@@ -0,0 +1,2 @@
# Generated by buf. DO NOT EDIT.
version: v1

3
buf.work.yaml Normal file
View File

@@ -0,0 +1,3 @@
version: v1
directories:
- api

7
buf.yaml Normal file
View File

@@ -0,0 +1,7 @@
version: v1
breaking:
use:
- FILE
lint:
use:
- DEFAULT

14
cli.go Normal file
View File

@@ -0,0 +1,14 @@
package bootstrap
// FIX: missing go.sum entry for module providing package XXXXXXXXXXXXXXXXXXXXX
import (
// wire
_ "github.com/google/subcommands"
_ "golang.org/x/tools/go/ast/astutil"
_ "golang.org/x/tools/go/packages"
// ent
_ "github.com/olekukonko/tablewriter"
_ "github.com/spf13/cobra"
)

326
config.go Normal file
View File

@@ -0,0 +1,326 @@
package bootstrap
import (
"os"
"path/filepath"
"strings"
"google.golang.org/grpc"
"github.com/go-kratos/kratos/v2/config"
"github.com/go-kratos/kratos/v2/log"
// file
fileKratos "github.com/go-kratos/kratos/v2/config/file"
// etcd
etcdKratos "github.com/go-kratos/kratos/contrib/config/etcd/v2"
etcdClient "go.etcd.io/etcd/client/v3"
// consul
consulKratos "github.com/go-kratos/kratos/contrib/config/consul/v2"
consulApi "github.com/hashicorp/consul/api"
// nacos
nacosKratos "github.com/go-kratos/kratos/contrib/config/nacos/v2"
nacosClients "github.com/nacos-group/nacos-sdk-go/clients"
nacosConstant "github.com/nacos-group/nacos-sdk-go/common/constant"
nacosVo "github.com/nacos-group/nacos-sdk-go/vo"
// polaris
polarisKratos "github.com/go-kratos/kratos/contrib/config/polaris/v2"
polarisApi "github.com/polarismesh/polaris-go"
// apollo
apolloKratos "github.com/go-kratos/kratos/contrib/config/apollo/v2"
// kubernetes
k8sKratos "github.com/go-kratos/kratos/contrib/config/kubernetes/v2"
k8sUtil "k8s.io/client-go/util/homedir"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
const remoteConfigSourceConfigFile = "remote.yaml"
// NewConfigProvider 创建一个配置
func NewConfigProvider(configPath string) config.Config {
err, rc := LoadRemoteConfigSourceConfigs(configPath)
if err != nil {
log.Error("LoadRemoteConfigSourceConfigs: ", err.Error())
}
if rc != nil {
return config.New(
config.WithSource(
NewFileConfigSource(configPath),
NewRemoteConfigSource(rc),
),
)
} else {
return config.New(
config.WithSource(
NewFileConfigSource(configPath),
),
)
}
}
// LoadBootstrapConfig 加载程序引导配置
func LoadBootstrapConfig(configPath string) *conf.Bootstrap {
cfg := NewConfigProvider(configPath)
if err := cfg.Load(); err != nil {
panic(err)
}
var bc conf.Bootstrap
if err := cfg.Scan(&bc); err != nil {
panic(err)
}
if bc.Server == nil {
bc.Server = &conf.Server{}
_ = cfg.Scan(&bc.Server)
}
if bc.Client == nil {
bc.Client = &conf.Client{}
_ = cfg.Scan(&bc.Client)
}
if bc.Data == nil {
bc.Data = &conf.Data{}
_ = cfg.Scan(&bc.Data)
}
if bc.Trace == nil {
bc.Trace = &conf.Tracer{}
_ = cfg.Scan(&bc.Trace)
}
if bc.Logger == nil {
bc.Logger = &conf.Logger{}
_ = cfg.Scan(&bc.Logger)
}
if bc.Registry == nil {
bc.Registry = &conf.Registry{}
_ = cfg.Scan(&bc.Registry)
}
if bc.Oss == nil {
bc.Oss = &conf.OSS{}
_ = cfg.Scan(&bc.Oss)
}
return &bc
}
func pathExists(path string) bool {
_, err := os.Stat(path)
if err == nil {
return true
}
if os.IsNotExist(err) {
return false
}
return false
}
// LoadRemoteConfigSourceConfigs 加载远程配置源的本地配置
func LoadRemoteConfigSourceConfigs(configPath string) (error, *conf.RemoteConfig) {
configPath = configPath + "/" + remoteConfigSourceConfigFile
if !pathExists(configPath) {
return nil, nil
}
cfg := config.New(
config.WithSource(
NewFileConfigSource(configPath),
),
)
defer func(cfg config.Config) {
err := cfg.Close()
if err != nil {
panic(err)
}
}(cfg)
var err error
if err = cfg.Load(); err != nil {
return err, nil
}
var rc conf.Bootstrap
if err = cfg.Scan(&rc); err != nil {
return err, nil
}
return nil, rc.Config
}
type ConfigType string
const (
ConfigTypeLocalFile ConfigType = "file"
ConfigTypeNacos ConfigType = "nacos"
ConfigTypeConsul ConfigType = "consul"
ConfigTypeEtcd ConfigType = "etcd"
ConfigTypeApollo ConfigType = "apollo"
ConfigTypeKubernetes ConfigType = "kubernetes"
ConfigTypePolaris ConfigType = "polaris"
)
// NewRemoteConfigSource 创建一个远程配置源
func NewRemoteConfigSource(c *conf.RemoteConfig) config.Source {
switch ConfigType(c.Type) {
default:
fallthrough
case ConfigTypeLocalFile:
return nil
case ConfigTypeNacos:
return NewNacosConfigSource(c)
case ConfigTypeConsul:
return NewConsulConfigSource(c)
case ConfigTypeEtcd:
return NewEtcdConfigSource(c)
case ConfigTypeApollo:
return NewApolloConfigSource(c)
case ConfigTypeKubernetes:
return NewKubernetesConfigSource(c)
case ConfigTypePolaris:
return NewPolarisConfigSource(c)
}
}
// getConfigKey 获取合法的配置名
func getConfigKey(configKey string, useBackslash bool) string {
if useBackslash {
return strings.Replace(configKey, `.`, `/`, -1)
} else {
return configKey
}
}
// NewFileConfigSource 创建一个本地文件配置源
func NewFileConfigSource(filePath string) config.Source {
return fileKratos.NewSource(filePath)
}
// NewNacosConfigSource 创建一个远程配置源 - Nacos
func NewNacosConfigSource(c *conf.RemoteConfig) config.Source {
srvConf := []nacosConstant.ServerConfig{
*nacosConstant.NewServerConfig(c.Nacos.Address, c.Nacos.Port),
}
cliConf := nacosConstant.ClientConfig{
TimeoutMs: 10 * 1000, // http请求超时时间单位毫秒
BeatInterval: 5 * 1000, // 心跳间隔时间,单位毫秒
UpdateThreadNum: 20, // 更新服务的线程数
LogLevel: "debug",
CacheDir: "../../configs/cache", // 缓存目录
LogDir: "../../configs/log", // 日志目录
NotLoadCacheAtStart: true, // 在启动时不读取本地缓存数据true--不读取false--读取
UpdateCacheWhenEmpty: true, // 当服务列表为空时是否更新本地缓存true--更新,false--不更新
}
nacosClient, err := nacosClients.NewConfigClient(
nacosVo.NacosClientParam{
ClientConfig: &cliConf,
ServerConfigs: srvConf,
},
)
if err != nil {
log.Fatal(err)
}
return nacosKratos.NewConfigSource(nacosClient,
nacosKratos.WithGroup(getConfigKey(c.Nacos.Key, false)),
nacosKratos.WithDataID("bootstrap.yaml"),
)
}
// NewEtcdConfigSource 创建一个远程配置源 - Etcd
func NewEtcdConfigSource(c *conf.RemoteConfig) config.Source {
cfg := etcdClient.Config{
Endpoints: c.Etcd.Endpoints,
DialTimeout: c.Etcd.Timeout.AsDuration(),
DialOptions: []grpc.DialOption{grpc.WithBlock()},
}
cli, err := etcdClient.New(cfg)
if err != nil {
panic(err)
}
source, err := etcdKratos.New(cli, etcdKratos.WithPath(getConfigKey(c.Etcd.Key, true)))
if err != nil {
log.Fatal(err)
}
return source
}
// NewConsulConfigSource 创建一个远程配置源 - Consul
func NewConsulConfigSource(c *conf.RemoteConfig) config.Source {
cfg := consulApi.DefaultConfig()
cfg.Address = c.Consul.Address
cfg.Scheme = c.Consul.Scheme
cli, err := consulApi.NewClient(cfg)
if err != nil {
log.Fatal(err)
}
source, err := consulKratos.New(cli,
consulKratos.WithPath(getConfigKey(c.Consul.Key, true)),
)
if err != nil {
log.Fatal(err)
}
return source
}
// NewApolloConfigSource 创建一个远程配置源 - Apollo
func NewApolloConfigSource(c *conf.RemoteConfig) config.Source {
source := apolloKratos.NewSource(
apolloKratos.WithAppID(c.Apollo.AppId),
apolloKratos.WithCluster(c.Apollo.Cluster),
apolloKratos.WithEndpoint(c.Apollo.Endpoint),
apolloKratos.WithNamespace(c.Apollo.Namespace),
apolloKratos.WithSecret(c.Apollo.Secret),
apolloKratos.WithEnableBackup(),
)
return source
}
// NewKubernetesConfigSource 创建一个远程配置源 - Kubernetes
func NewKubernetesConfigSource(c *conf.RemoteConfig) config.Source {
source := k8sKratos.NewSource(
k8sKratos.Namespace(c.Kubernetes.Namespace),
k8sKratos.LabelSelector(""),
k8sKratos.KubeConfig(filepath.Join(k8sUtil.HomeDir(), ".kube", "config")),
)
return source
}
// NewPolarisConfigSource 创建一个远程配置源 - Polaris
func NewPolarisConfigSource(_ *conf.RemoteConfig) config.Source {
configApi, err := polarisApi.NewConfigAPI()
if err != nil {
log.Fatal(err)
}
var opts []polarisKratos.Option
opts = append(opts, polarisKratos.WithNamespace("default"))
opts = append(opts, polarisKratos.WithFileGroup("default"))
opts = append(opts, polarisKratos.WithFileName("default.yaml"))
source, err := polarisKratos.New(configApi, opts...)
if err != nil {
log.Fatal(err)
}
return source
}

39
daemon.go Normal file
View File

@@ -0,0 +1,39 @@
package bootstrap
import (
"fmt"
"os"
"os/exec"
)
func stripSlice(slice []string, element string) []string {
for i := 0; i < len(slice); {
if slice[i] == element && i != len(slice)-1 {
slice = append(slice[:i], slice[i+1:]...)
} else if slice[i] == element && i == len(slice)-1 {
slice = slice[:i]
} else {
i++
}
}
return slice
}
func subProcess(args []string) *exec.Cmd {
cmd := exec.Command(args[0], args[1:]...)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Start()
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "[-] Error: %s\n", err)
}
return cmd
}
// BeDaemon 将当前进程转为守护进程
func BeDaemon(arg string) {
subProcess(stripSlice(os.Args, arg))
fmt.Printf("[*] Daemon running in PID: %d PPID: %d\n", os.Getpid(), os.Getppid())
os.Exit(0)
}

35
flag.go Normal file
View File

@@ -0,0 +1,35 @@
package bootstrap
import "flag"
type CommandFlags struct {
Conf string // 引导配置文件路径,默认为:../../configs
Env string // 开发环境dev、debug……
ConfigHost string // 远程配置服务端地址
ConfigType string // 远程配置服务端类型
Daemon bool // 是否转为守护进程
}
func NewCommandFlags() *CommandFlags {
return &CommandFlags{
Conf: "",
Env: "",
ConfigHost: "",
ConfigType: "",
Daemon: false,
}
}
func (f *CommandFlags) Init() {
flag.StringVar(&f.Conf, "conf", "../../configs", "config path, eg: -conf ../../configs")
flag.StringVar(&f.Env, "env", "dev", "runtime environment, eg: -env dev")
flag.StringVar(&f.ConfigHost, "chost", "127.0.0.1:8500", "config server host, eg: -chost 127.0.0.1:8500")
flag.StringVar(&f.ConfigType, "ctype", "consul", "config server host, eg: -ctype consul")
flag.BoolVar(&f.Daemon, "d", false, "run app as a daemon with -d=true.")
if f.Daemon {
BeDaemon("-d")
}
flag.Parse()
}

View File

@@ -0,0 +1,253 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/bootstrap.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 引导信息
type Bootstrap struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Server *Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
Client *Client `protobuf:"bytes,2,opt,name=client,proto3" json:"client,omitempty"`
Data *Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
Trace *Tracer `protobuf:"bytes,4,opt,name=trace,proto3" json:"trace,omitempty"`
Logger *Logger `protobuf:"bytes,5,opt,name=logger,proto3" json:"logger,omitempty"`
Registry *Registry `protobuf:"bytes,6,opt,name=registry,proto3" json:"registry,omitempty"`
Config *RemoteConfig `protobuf:"bytes,7,opt,name=config,proto3" json:"config,omitempty"`
Oss *OSS `protobuf:"bytes,8,opt,name=oss,proto3" json:"oss,omitempty"`
}
func (x *Bootstrap) Reset() {
*x = Bootstrap{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_bootstrap_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Bootstrap) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Bootstrap) ProtoMessage() {}
func (x *Bootstrap) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_bootstrap_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Bootstrap.ProtoReflect.Descriptor instead.
func (*Bootstrap) Descriptor() ([]byte, []int) {
return file_conf_v1_bootstrap_proto_rawDescGZIP(), []int{0}
}
func (x *Bootstrap) GetServer() *Server {
if x != nil {
return x.Server
}
return nil
}
func (x *Bootstrap) GetClient() *Client {
if x != nil {
return x.Client
}
return nil
}
func (x *Bootstrap) GetData() *Data {
if x != nil {
return x.Data
}
return nil
}
func (x *Bootstrap) GetTrace() *Tracer {
if x != nil {
return x.Trace
}
return nil
}
func (x *Bootstrap) GetLogger() *Logger {
if x != nil {
return x.Logger
}
return nil
}
func (x *Bootstrap) GetRegistry() *Registry {
if x != nil {
return x.Registry
}
return nil
}
func (x *Bootstrap) GetConfig() *RemoteConfig {
if x != nil {
return x.Config
}
return nil
}
func (x *Bootstrap) GetOss() *OSS {
if x != nil {
return x.Oss
}
return nil
}
var File_conf_v1_bootstrap_proto protoreflect.FileDescriptor
var file_conf_v1_bootstrap_proto_rawDesc = []byte{
0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74,
0x72, 0x61, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x1a,
0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x64,
0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f,
0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x6c,
0x6f, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x63, 0x6f, 0x6e,
0x66, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x73, 0x73,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x02, 0x0a,
0x09, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x12, 0x24, 0x0a, 0x06, 0x73, 0x65,
0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6f, 0x6e,
0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x12, 0x24, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x44, 0x61, 0x74, 0x61,
0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x54, 0x72, 0x61,
0x63, 0x65, 0x72, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x06, 0x6c, 0x6f,
0x67, 0x67, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6f, 0x6e,
0x66, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72,
0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
0x72, 0x79, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x06,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63,
0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x03, 0x6f, 0x73, 0x73, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4f, 0x53, 0x53,
0x52, 0x03, 0x6f, 0x73, 0x73, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d,
0x62, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f,
0x6e, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_conf_v1_bootstrap_proto_rawDescOnce sync.Once
file_conf_v1_bootstrap_proto_rawDescData = file_conf_v1_bootstrap_proto_rawDesc
)
func file_conf_v1_bootstrap_proto_rawDescGZIP() []byte {
file_conf_v1_bootstrap_proto_rawDescOnce.Do(func() {
file_conf_v1_bootstrap_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_bootstrap_proto_rawDescData)
})
return file_conf_v1_bootstrap_proto_rawDescData
}
var file_conf_v1_bootstrap_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_conf_v1_bootstrap_proto_goTypes = []interface{}{
(*Bootstrap)(nil), // 0: conf.Bootstrap
(*Server)(nil), // 1: conf.Server
(*Client)(nil), // 2: conf.Client
(*Data)(nil), // 3: conf.Data
(*Tracer)(nil), // 4: conf.Tracer
(*Logger)(nil), // 5: conf.Logger
(*Registry)(nil), // 6: conf.Registry
(*RemoteConfig)(nil), // 7: conf.RemoteConfig
(*OSS)(nil), // 8: conf.OSS
}
var file_conf_v1_bootstrap_proto_depIdxs = []int32{
1, // 0: conf.Bootstrap.server:type_name -> conf.Server
2, // 1: conf.Bootstrap.client:type_name -> conf.Client
3, // 2: conf.Bootstrap.data:type_name -> conf.Data
4, // 3: conf.Bootstrap.trace:type_name -> conf.Tracer
5, // 4: conf.Bootstrap.logger:type_name -> conf.Logger
6, // 5: conf.Bootstrap.registry:type_name -> conf.Registry
7, // 6: conf.Bootstrap.config:type_name -> conf.RemoteConfig
8, // 7: conf.Bootstrap.oss:type_name -> conf.OSS
8, // [8:8] is the sub-list for method output_type
8, // [8:8] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
}
func init() { file_conf_v1_bootstrap_proto_init() }
func file_conf_v1_bootstrap_proto_init() {
if File_conf_v1_bootstrap_proto != nil {
return
}
file_conf_v1_tracer_proto_init()
file_conf_v1_data_proto_init()
file_conf_v1_server_proto_init()
file_conf_v1_client_proto_init()
file_conf_v1_logger_proto_init()
file_conf_v1_registry_proto_init()
file_conf_v1_oss_proto_init()
file_conf_v1_config_proto_init()
if !protoimpl.UnsafeEnabled {
file_conf_v1_bootstrap_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Bootstrap); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_bootstrap_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_bootstrap_proto_goTypes,
DependencyIndexes: file_conf_v1_bootstrap_proto_depIdxs,
MessageInfos: file_conf_v1_bootstrap_proto_msgTypes,
}.Build()
File_conf_v1_bootstrap_proto = out.File
file_conf_v1_bootstrap_proto_rawDesc = nil
file_conf_v1_bootstrap_proto_goTypes = nil
file_conf_v1_bootstrap_proto_depIdxs = nil
}

View File

@@ -0,0 +1,367 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/bootstrap.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on Bootstrap with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Bootstrap) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Bootstrap with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in BootstrapMultiError, or nil
// if none found.
func (m *Bootstrap) ValidateAll() error {
return m.validate(true)
}
func (m *Bootstrap) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if all {
switch v := interface{}(m.GetServer()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Server",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Server",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetServer()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Server",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetClient()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Client",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Client",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetClient()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Client",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetData()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Data",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Data",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetData()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Data",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetTrace()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Trace",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Trace",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetTrace()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Trace",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetLogger()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Logger",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Logger",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetLogger()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Logger",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetRegistry()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Registry",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Registry",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetRegistry()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Registry",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetConfig()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Config",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Config",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetConfig()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Config",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetOss()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Oss",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, BootstrapValidationError{
field: "Oss",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetOss()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return BootstrapValidationError{
field: "Oss",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return BootstrapMultiError(errors)
}
return nil
}
// BootstrapMultiError is an error wrapping multiple validation errors returned
// by Bootstrap.ValidateAll() if the designated constraints aren't met.
type BootstrapMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m BootstrapMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m BootstrapMultiError) AllErrors() []error { return m }
// BootstrapValidationError is the validation error returned by
// Bootstrap.Validate if the designated constraints aren't met.
type BootstrapValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e BootstrapValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e BootstrapValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e BootstrapValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e BootstrapValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e BootstrapValidationError) ErrorName() string { return "BootstrapValidationError" }
// Error satisfies the builtin error interface
func (e BootstrapValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sBootstrap.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = BootstrapValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = BootstrapValidationError{}

View File

@@ -0,0 +1,321 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/client.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 客户端
type Client struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rest *Client_REST `protobuf:"bytes,1,opt,name=rest,proto3" json:"rest,omitempty"` // REST服务
Grpc *Client_GRPC `protobuf:"bytes,2,opt,name=grpc,proto3" json:"grpc,omitempty"` // gRPC服务
}
func (x *Client) Reset() {
*x = Client{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_client_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Client) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Client) ProtoMessage() {}
func (x *Client) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_client_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Client.ProtoReflect.Descriptor instead.
func (*Client) Descriptor() ([]byte, []int) {
return file_conf_v1_client_proto_rawDescGZIP(), []int{0}
}
func (x *Client) GetRest() *Client_REST {
if x != nil {
return x.Rest
}
return nil
}
func (x *Client) GetGrpc() *Client_GRPC {
if x != nil {
return x.Grpc
}
return nil
}
// REST
type Client_REST struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Timeout *durationpb.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` // 超时时间
Middleware *Middleware `protobuf:"bytes,2,opt,name=middleware,proto3" json:"middleware,omitempty"`
}
func (x *Client_REST) Reset() {
*x = Client_REST{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_client_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Client_REST) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Client_REST) ProtoMessage() {}
func (x *Client_REST) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_client_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Client_REST.ProtoReflect.Descriptor instead.
func (*Client_REST) Descriptor() ([]byte, []int) {
return file_conf_v1_client_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Client_REST) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *Client_REST) GetMiddleware() *Middleware {
if x != nil {
return x.Middleware
}
return nil
}
// gPRC
type Client_GRPC struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Timeout *durationpb.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` // 超时时间
Middleware *Middleware `protobuf:"bytes,2,opt,name=middleware,proto3" json:"middleware,omitempty"`
}
func (x *Client_GRPC) Reset() {
*x = Client_GRPC{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_client_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Client_GRPC) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Client_GRPC) ProtoMessage() {}
func (x *Client_GRPC) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_client_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Client_GRPC.ProtoReflect.Descriptor instead.
func (*Client_GRPC) Descriptor() ([]byte, []int) {
return file_conf_v1_client_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Client_GRPC) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *Client_GRPC) GetMiddleware() *Middleware {
if x != nil {
return x.Middleware
}
return nil
}
var File_conf_v1_client_proto protoreflect.FileDescriptor
var file_conf_v1_client_proto_rawDesc = []byte{
0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x1a, 0x1e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x63, 0x6f,
0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x02, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e,
0x74, 0x12, 0x25, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x45,
0x53, 0x54, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x43, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x52, 0x50, 0x43, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63, 0x1a,
0x6d, 0x0a, 0x04, 0x52, 0x45, 0x53, 0x54, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f,
0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x30, 0x0a, 0x0a,
0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61,
0x72, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x1a, 0x6d,
0x0a, 0x04, 0x47, 0x52, 0x50, 0x43, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x30, 0x0a, 0x0a, 0x6d,
0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72,
0x65, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x42, 0x23, 0x5a,
0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x62, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61,
0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f,
0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_conf_v1_client_proto_rawDescOnce sync.Once
file_conf_v1_client_proto_rawDescData = file_conf_v1_client_proto_rawDesc
)
func file_conf_v1_client_proto_rawDescGZIP() []byte {
file_conf_v1_client_proto_rawDescOnce.Do(func() {
file_conf_v1_client_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_client_proto_rawDescData)
})
return file_conf_v1_client_proto_rawDescData
}
var file_conf_v1_client_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_conf_v1_client_proto_goTypes = []interface{}{
(*Client)(nil), // 0: conf.Client
(*Client_REST)(nil), // 1: conf.Client.REST
(*Client_GRPC)(nil), // 2: conf.Client.GRPC
(*durationpb.Duration)(nil), // 3: google.protobuf.Duration
(*Middleware)(nil), // 4: conf.Middleware
}
var file_conf_v1_client_proto_depIdxs = []int32{
1, // 0: conf.Client.rest:type_name -> conf.Client.REST
2, // 1: conf.Client.grpc:type_name -> conf.Client.GRPC
3, // 2: conf.Client.REST.timeout:type_name -> google.protobuf.Duration
4, // 3: conf.Client.REST.middleware:type_name -> conf.Middleware
3, // 4: conf.Client.GRPC.timeout:type_name -> google.protobuf.Duration
4, // 5: conf.Client.GRPC.middleware:type_name -> conf.Middleware
6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
}
func init() { file_conf_v1_client_proto_init() }
func file_conf_v1_client_proto_init() {
if File_conf_v1_client_proto != nil {
return
}
file_conf_v1_middleware_proto_init()
if !protoimpl.UnsafeEnabled {
file_conf_v1_client_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Client); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_client_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Client_REST); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_client_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Client_GRPC); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_client_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_client_proto_goTypes,
DependencyIndexes: file_conf_v1_client_proto_depIdxs,
MessageInfos: file_conf_v1_client_proto_msgTypes,
}.Build()
File_conf_v1_client_proto = out.File
file_conf_v1_client_proto_rawDesc = nil
file_conf_v1_client_proto_goTypes = nil
file_conf_v1_client_proto_depIdxs = nil
}

View File

@@ -0,0 +1,506 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/client.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on Client with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Client) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Client with the rules defined in the
// proto definition for this message. If any rules are violated, the result is
// a list of violation errors wrapped in ClientMultiError, or nil if none found.
func (m *Client) ValidateAll() error {
return m.validate(true)
}
func (m *Client) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if all {
switch v := interface{}(m.GetRest()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, ClientValidationError{
field: "Rest",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, ClientValidationError{
field: "Rest",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetRest()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return ClientValidationError{
field: "Rest",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetGrpc()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, ClientValidationError{
field: "Grpc",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, ClientValidationError{
field: "Grpc",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetGrpc()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return ClientValidationError{
field: "Grpc",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return ClientMultiError(errors)
}
return nil
}
// ClientMultiError is an error wrapping multiple validation errors returned by
// Client.ValidateAll() if the designated constraints aren't met.
type ClientMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m ClientMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m ClientMultiError) AllErrors() []error { return m }
// ClientValidationError is the validation error returned by Client.Validate if
// the designated constraints aren't met.
type ClientValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e ClientValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e ClientValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e ClientValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e ClientValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e ClientValidationError) ErrorName() string { return "ClientValidationError" }
// Error satisfies the builtin error interface
func (e ClientValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sClient.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = ClientValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = ClientValidationError{}
// Validate checks the field values on Client_REST with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Client_REST) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Client_REST with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Client_RESTMultiError, or
// nil if none found.
func (m *Client_REST) ValidateAll() error {
return m.validate(true)
}
func (m *Client_REST) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if all {
switch v := interface{}(m.GetTimeout()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, Client_RESTValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, Client_RESTValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return Client_RESTValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetMiddleware()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, Client_RESTValidationError{
field: "Middleware",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, Client_RESTValidationError{
field: "Middleware",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetMiddleware()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return Client_RESTValidationError{
field: "Middleware",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return Client_RESTMultiError(errors)
}
return nil
}
// Client_RESTMultiError is an error wrapping multiple validation errors
// returned by Client_REST.ValidateAll() if the designated constraints aren't met.
type Client_RESTMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Client_RESTMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Client_RESTMultiError) AllErrors() []error { return m }
// Client_RESTValidationError is the validation error returned by
// Client_REST.Validate if the designated constraints aren't met.
type Client_RESTValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Client_RESTValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Client_RESTValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Client_RESTValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Client_RESTValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Client_RESTValidationError) ErrorName() string { return "Client_RESTValidationError" }
// Error satisfies the builtin error interface
func (e Client_RESTValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sClient_REST.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Client_RESTValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Client_RESTValidationError{}
// Validate checks the field values on Client_GRPC with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Client_GRPC) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Client_GRPC with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Client_GRPCMultiError, or
// nil if none found.
func (m *Client_GRPC) ValidateAll() error {
return m.validate(true)
}
func (m *Client_GRPC) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if all {
switch v := interface{}(m.GetTimeout()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, Client_GRPCValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, Client_GRPCValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return Client_GRPCValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetMiddleware()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, Client_GRPCValidationError{
field: "Middleware",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, Client_GRPCValidationError{
field: "Middleware",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetMiddleware()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return Client_GRPCValidationError{
field: "Middleware",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return Client_GRPCMultiError(errors)
}
return nil
}
// Client_GRPCMultiError is an error wrapping multiple validation errors
// returned by Client_GRPC.ValidateAll() if the designated constraints aren't met.
type Client_GRPCMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Client_GRPCMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Client_GRPCMultiError) AllErrors() []error { return m }
// Client_GRPCValidationError is the validation error returned by
// Client_GRPC.Validate if the designated constraints aren't met.
type Client_GRPCValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Client_GRPCValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Client_GRPCValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Client_GRPCValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Client_GRPCValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Client_GRPCValidationError) ErrorName() string { return "Client_GRPCValidationError" }
// Error satisfies the builtin error interface
func (e Client_GRPCValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sClient_GRPC.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Client_GRPCValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Client_GRPCValidationError{}

View File

@@ -0,0 +1,682 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/config.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 配置服务
type RemoteConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Etcd *RemoteConfig_Etcd `protobuf:"bytes,2,opt,name=etcd,proto3" json:"etcd,omitempty"`
Consul *RemoteConfig_Consul `protobuf:"bytes,3,opt,name=consul,proto3" json:"consul,omitempty"`
Nacos *RemoteConfig_Nacos `protobuf:"bytes,4,opt,name=nacos,proto3" json:"nacos,omitempty"`
Apollo *RemoteConfig_Apollo `protobuf:"bytes,6,opt,name=apollo,proto3" json:"apollo,omitempty"`
Kubernetes *RemoteConfig_Kubernetes `protobuf:"bytes,7,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"`
Polaris *RemoteConfig_Polaris `protobuf:"bytes,8,opt,name=polaris,proto3" json:"polaris,omitempty"`
}
func (x *RemoteConfig) Reset() {
*x = RemoteConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteConfig) ProtoMessage() {}
func (x *RemoteConfig) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_config_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteConfig.ProtoReflect.Descriptor instead.
func (*RemoteConfig) Descriptor() ([]byte, []int) {
return file_conf_v1_config_proto_rawDescGZIP(), []int{0}
}
func (x *RemoteConfig) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *RemoteConfig) GetEtcd() *RemoteConfig_Etcd {
if x != nil {
return x.Etcd
}
return nil
}
func (x *RemoteConfig) GetConsul() *RemoteConfig_Consul {
if x != nil {
return x.Consul
}
return nil
}
func (x *RemoteConfig) GetNacos() *RemoteConfig_Nacos {
if x != nil {
return x.Nacos
}
return nil
}
func (x *RemoteConfig) GetApollo() *RemoteConfig_Apollo {
if x != nil {
return x.Apollo
}
return nil
}
func (x *RemoteConfig) GetKubernetes() *RemoteConfig_Kubernetes {
if x != nil {
return x.Kubernetes
}
return nil
}
func (x *RemoteConfig) GetPolaris() *RemoteConfig_Polaris {
if x != nil {
return x.Polaris
}
return nil
}
type RemoteConfig_Nacos struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // 服务端地址
Port uint64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` // 服务端端口
Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` //
}
func (x *RemoteConfig_Nacos) Reset() {
*x = RemoteConfig_Nacos{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteConfig_Nacos) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteConfig_Nacos) ProtoMessage() {}
func (x *RemoteConfig_Nacos) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_config_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteConfig_Nacos.ProtoReflect.Descriptor instead.
func (*RemoteConfig_Nacos) Descriptor() ([]byte, []int) {
return file_conf_v1_config_proto_rawDescGZIP(), []int{0, 0}
}
func (x *RemoteConfig_Nacos) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *RemoteConfig_Nacos) GetPort() uint64 {
if x != nil {
return x.Port
}
return 0
}
func (x *RemoteConfig_Nacos) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
type RemoteConfig_Etcd struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoints []string `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
Timeout *durationpb.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` //
}
func (x *RemoteConfig_Etcd) Reset() {
*x = RemoteConfig_Etcd{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteConfig_Etcd) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteConfig_Etcd) ProtoMessage() {}
func (x *RemoteConfig_Etcd) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_config_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteConfig_Etcd.ProtoReflect.Descriptor instead.
func (*RemoteConfig_Etcd) Descriptor() ([]byte, []int) {
return file_conf_v1_config_proto_rawDescGZIP(), []int{0, 1}
}
func (x *RemoteConfig_Etcd) GetEndpoints() []string {
if x != nil {
return x.Endpoints
}
return nil
}
func (x *RemoteConfig_Etcd) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *RemoteConfig_Etcd) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
type RemoteConfig_Consul struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Scheme string `protobuf:"bytes,1,opt,name=scheme,proto3" json:"scheme,omitempty"` // 网络样式
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // 服务端地址
Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` //
}
func (x *RemoteConfig_Consul) Reset() {
*x = RemoteConfig_Consul{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteConfig_Consul) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteConfig_Consul) ProtoMessage() {}
func (x *RemoteConfig_Consul) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_config_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteConfig_Consul.ProtoReflect.Descriptor instead.
func (*RemoteConfig_Consul) Descriptor() ([]byte, []int) {
return file_conf_v1_config_proto_rawDescGZIP(), []int{0, 2}
}
func (x *RemoteConfig_Consul) GetScheme() string {
if x != nil {
return x.Scheme
}
return ""
}
func (x *RemoteConfig_Consul) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *RemoteConfig_Consul) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
type RemoteConfig_Apollo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
AppId string `protobuf:"bytes,2,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
Cluster string `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"`
Secret string `protobuf:"bytes,5,opt,name=secret,proto3" json:"secret,omitempty"`
}
func (x *RemoteConfig_Apollo) Reset() {
*x = RemoteConfig_Apollo{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_config_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteConfig_Apollo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteConfig_Apollo) ProtoMessage() {}
func (x *RemoteConfig_Apollo) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_config_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteConfig_Apollo.ProtoReflect.Descriptor instead.
func (*RemoteConfig_Apollo) Descriptor() ([]byte, []int) {
return file_conf_v1_config_proto_rawDescGZIP(), []int{0, 3}
}
func (x *RemoteConfig_Apollo) GetEndpoint() string {
if x != nil {
return x.Endpoint
}
return ""
}
func (x *RemoteConfig_Apollo) GetAppId() string {
if x != nil {
return x.AppId
}
return ""
}
func (x *RemoteConfig_Apollo) GetCluster() string {
if x != nil {
return x.Cluster
}
return ""
}
func (x *RemoteConfig_Apollo) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
func (x *RemoteConfig_Apollo) GetSecret() string {
if x != nil {
return x.Secret
}
return ""
}
type RemoteConfig_Kubernetes struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
}
func (x *RemoteConfig_Kubernetes) Reset() {
*x = RemoteConfig_Kubernetes{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_config_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteConfig_Kubernetes) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteConfig_Kubernetes) ProtoMessage() {}
func (x *RemoteConfig_Kubernetes) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_config_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteConfig_Kubernetes.ProtoReflect.Descriptor instead.
func (*RemoteConfig_Kubernetes) Descriptor() ([]byte, []int) {
return file_conf_v1_config_proto_rawDescGZIP(), []int{0, 4}
}
func (x *RemoteConfig_Kubernetes) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
type RemoteConfig_Polaris struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *RemoteConfig_Polaris) Reset() {
*x = RemoteConfig_Polaris{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_config_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RemoteConfig_Polaris) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RemoteConfig_Polaris) ProtoMessage() {}
func (x *RemoteConfig_Polaris) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_config_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RemoteConfig_Polaris.ProtoReflect.Descriptor instead.
func (*RemoteConfig_Polaris) Descriptor() ([]byte, []int) {
return file_conf_v1_config_proto_rawDescGZIP(), []int{0, 5}
}
var File_conf_v1_config_proto protoreflect.FileDescriptor
var file_conf_v1_config_proto_rawDesc = []byte{
0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x1a, 0x1e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa3, 0x06, 0x0a,
0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a,
0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
0x65, 0x12, 0x2b, 0x0a, 0x04, 0x65, 0x74, 0x63, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x45, 0x74, 0x63, 0x64, 0x52, 0x04, 0x65, 0x74, 0x63, 0x64, 0x12, 0x31,
0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x75,
0x6c, 0x12, 0x2e, 0x0a, 0x05, 0x6e, 0x61, 0x63, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x61, 0x63, 0x6f, 0x73, 0x52, 0x05, 0x6e, 0x61, 0x63, 0x6f,
0x73, 0x12, 0x31, 0x0a, 0x06, 0x61, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x52, 0x06, 0x61, 0x70,
0x6f, 0x6c, 0x6c, 0x6f, 0x12, 0x3d, 0x0a, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74,
0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e,
0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4b, 0x75, 0x62,
0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x52, 0x0a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65,
0x74, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x18, 0x08,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x6d, 0x6f,
0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73,
0x52, 0x07, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x1a, 0x47, 0x0a, 0x05, 0x4e, 0x61, 0x63,
0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04,
0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x1a, 0x6b, 0x0a, 0x04, 0x45, 0x74, 0x63, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e,
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65,
0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a,
0x4c, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68,
0x65, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d,
0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x8b, 0x01,
0x0a, 0x06, 0x41, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70,
0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70,
0x6f, 0x69, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63,
0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c,
0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x2a, 0x0a, 0x0a, 0x4b,
0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d,
0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61,
0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x1a, 0x09, 0x0a, 0x07, 0x50, 0x6f, 0x6c, 0x61, 0x72,
0x69, 0x73, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x62, 0x69, 0x2f,
0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x2f,
0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_conf_v1_config_proto_rawDescOnce sync.Once
file_conf_v1_config_proto_rawDescData = file_conf_v1_config_proto_rawDesc
)
func file_conf_v1_config_proto_rawDescGZIP() []byte {
file_conf_v1_config_proto_rawDescOnce.Do(func() {
file_conf_v1_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_config_proto_rawDescData)
})
return file_conf_v1_config_proto_rawDescData
}
var file_conf_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_conf_v1_config_proto_goTypes = []interface{}{
(*RemoteConfig)(nil), // 0: conf.RemoteConfig
(*RemoteConfig_Nacos)(nil), // 1: conf.RemoteConfig.Nacos
(*RemoteConfig_Etcd)(nil), // 2: conf.RemoteConfig.Etcd
(*RemoteConfig_Consul)(nil), // 3: conf.RemoteConfig.Consul
(*RemoteConfig_Apollo)(nil), // 4: conf.RemoteConfig.Apollo
(*RemoteConfig_Kubernetes)(nil), // 5: conf.RemoteConfig.Kubernetes
(*RemoteConfig_Polaris)(nil), // 6: conf.RemoteConfig.Polaris
(*durationpb.Duration)(nil), // 7: google.protobuf.Duration
}
var file_conf_v1_config_proto_depIdxs = []int32{
2, // 0: conf.RemoteConfig.etcd:type_name -> conf.RemoteConfig.Etcd
3, // 1: conf.RemoteConfig.consul:type_name -> conf.RemoteConfig.Consul
1, // 2: conf.RemoteConfig.nacos:type_name -> conf.RemoteConfig.Nacos
4, // 3: conf.RemoteConfig.apollo:type_name -> conf.RemoteConfig.Apollo
5, // 4: conf.RemoteConfig.kubernetes:type_name -> conf.RemoteConfig.Kubernetes
6, // 5: conf.RemoteConfig.polaris:type_name -> conf.RemoteConfig.Polaris
7, // 6: conf.RemoteConfig.Etcd.timeout:type_name -> google.protobuf.Duration
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
}
func init() { file_conf_v1_config_proto_init() }
func file_conf_v1_config_proto_init() {
if File_conf_v1_config_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_conf_v1_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteConfig_Nacos); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteConfig_Etcd); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteConfig_Consul); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteConfig_Apollo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteConfig_Kubernetes); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoteConfig_Polaris); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_config_proto_rawDesc,
NumEnums: 0,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_config_proto_goTypes,
DependencyIndexes: file_conf_v1_config_proto_depIdxs,
MessageInfos: file_conf_v1_config_proto_msgTypes,
}.Build()
File_conf_v1_config_proto = out.File
file_conf_v1_config_proto_rawDesc = nil
file_conf_v1_config_proto_goTypes = nil
file_conf_v1_config_proto_depIdxs = nil
}

View File

@@ -0,0 +1,978 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/config.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on RemoteConfig with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *RemoteConfig) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on RemoteConfig with the rules defined
// in the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in RemoteConfigMultiError, or
// nil if none found.
func (m *RemoteConfig) ValidateAll() error {
return m.validate(true)
}
func (m *RemoteConfig) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Type
if all {
switch v := interface{}(m.GetEtcd()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Etcd",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Etcd",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetEtcd()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return RemoteConfigValidationError{
field: "Etcd",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetConsul()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Consul",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Consul",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetConsul()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return RemoteConfigValidationError{
field: "Consul",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetNacos()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Nacos",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Nacos",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetNacos()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return RemoteConfigValidationError{
field: "Nacos",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetApollo()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Apollo",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Apollo",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetApollo()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return RemoteConfigValidationError{
field: "Apollo",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetKubernetes()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Kubernetes",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Kubernetes",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetKubernetes()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return RemoteConfigValidationError{
field: "Kubernetes",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetPolaris()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Polaris",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, RemoteConfigValidationError{
field: "Polaris",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetPolaris()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return RemoteConfigValidationError{
field: "Polaris",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return RemoteConfigMultiError(errors)
}
return nil
}
// RemoteConfigMultiError is an error wrapping multiple validation errors
// returned by RemoteConfig.ValidateAll() if the designated constraints aren't met.
type RemoteConfigMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m RemoteConfigMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m RemoteConfigMultiError) AllErrors() []error { return m }
// RemoteConfigValidationError is the validation error returned by
// RemoteConfig.Validate if the designated constraints aren't met.
type RemoteConfigValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e RemoteConfigValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e RemoteConfigValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e RemoteConfigValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e RemoteConfigValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e RemoteConfigValidationError) ErrorName() string { return "RemoteConfigValidationError" }
// Error satisfies the builtin error interface
func (e RemoteConfigValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sRemoteConfig.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = RemoteConfigValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = RemoteConfigValidationError{}
// Validate checks the field values on RemoteConfig_Nacos with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RemoteConfig_Nacos) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on RemoteConfig_Nacos with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RemoteConfig_NacosMultiError, or nil if none found.
func (m *RemoteConfig_Nacos) ValidateAll() error {
return m.validate(true)
}
func (m *RemoteConfig_Nacos) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Address
// no validation rules for Port
// no validation rules for Key
if len(errors) > 0 {
return RemoteConfig_NacosMultiError(errors)
}
return nil
}
// RemoteConfig_NacosMultiError is an error wrapping multiple validation errors
// returned by RemoteConfig_Nacos.ValidateAll() if the designated constraints
// aren't met.
type RemoteConfig_NacosMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m RemoteConfig_NacosMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m RemoteConfig_NacosMultiError) AllErrors() []error { return m }
// RemoteConfig_NacosValidationError is the validation error returned by
// RemoteConfig_Nacos.Validate if the designated constraints aren't met.
type RemoteConfig_NacosValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e RemoteConfig_NacosValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e RemoteConfig_NacosValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e RemoteConfig_NacosValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e RemoteConfig_NacosValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e RemoteConfig_NacosValidationError) ErrorName() string {
return "RemoteConfig_NacosValidationError"
}
// Error satisfies the builtin error interface
func (e RemoteConfig_NacosValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sRemoteConfig_Nacos.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = RemoteConfig_NacosValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = RemoteConfig_NacosValidationError{}
// Validate checks the field values on RemoteConfig_Etcd with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
func (m *RemoteConfig_Etcd) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on RemoteConfig_Etcd with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RemoteConfig_EtcdMultiError, or nil if none found.
func (m *RemoteConfig_Etcd) ValidateAll() error {
return m.validate(true)
}
func (m *RemoteConfig_Etcd) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if all {
switch v := interface{}(m.GetTimeout()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, RemoteConfig_EtcdValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, RemoteConfig_EtcdValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return RemoteConfig_EtcdValidationError{
field: "Timeout",
reason: "embedded message failed validation",
cause: err,
}
}
}
// no validation rules for Key
if len(errors) > 0 {
return RemoteConfig_EtcdMultiError(errors)
}
return nil
}
// RemoteConfig_EtcdMultiError is an error wrapping multiple validation errors
// returned by RemoteConfig_Etcd.ValidateAll() if the designated constraints
// aren't met.
type RemoteConfig_EtcdMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m RemoteConfig_EtcdMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m RemoteConfig_EtcdMultiError) AllErrors() []error { return m }
// RemoteConfig_EtcdValidationError is the validation error returned by
// RemoteConfig_Etcd.Validate if the designated constraints aren't met.
type RemoteConfig_EtcdValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e RemoteConfig_EtcdValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e RemoteConfig_EtcdValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e RemoteConfig_EtcdValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e RemoteConfig_EtcdValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e RemoteConfig_EtcdValidationError) ErrorName() string {
return "RemoteConfig_EtcdValidationError"
}
// Error satisfies the builtin error interface
func (e RemoteConfig_EtcdValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sRemoteConfig_Etcd.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = RemoteConfig_EtcdValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = RemoteConfig_EtcdValidationError{}
// Validate checks the field values on RemoteConfig_Consul with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RemoteConfig_Consul) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on RemoteConfig_Consul with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RemoteConfig_ConsulMultiError, or nil if none found.
func (m *RemoteConfig_Consul) ValidateAll() error {
return m.validate(true)
}
func (m *RemoteConfig_Consul) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Scheme
// no validation rules for Address
// no validation rules for Key
if len(errors) > 0 {
return RemoteConfig_ConsulMultiError(errors)
}
return nil
}
// RemoteConfig_ConsulMultiError is an error wrapping multiple validation
// errors returned by RemoteConfig_Consul.ValidateAll() if the designated
// constraints aren't met.
type RemoteConfig_ConsulMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m RemoteConfig_ConsulMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m RemoteConfig_ConsulMultiError) AllErrors() []error { return m }
// RemoteConfig_ConsulValidationError is the validation error returned by
// RemoteConfig_Consul.Validate if the designated constraints aren't met.
type RemoteConfig_ConsulValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e RemoteConfig_ConsulValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e RemoteConfig_ConsulValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e RemoteConfig_ConsulValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e RemoteConfig_ConsulValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e RemoteConfig_ConsulValidationError) ErrorName() string {
return "RemoteConfig_ConsulValidationError"
}
// Error satisfies the builtin error interface
func (e RemoteConfig_ConsulValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sRemoteConfig_Consul.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = RemoteConfig_ConsulValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = RemoteConfig_ConsulValidationError{}
// Validate checks the field values on RemoteConfig_Apollo with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RemoteConfig_Apollo) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on RemoteConfig_Apollo with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RemoteConfig_ApolloMultiError, or nil if none found.
func (m *RemoteConfig_Apollo) ValidateAll() error {
return m.validate(true)
}
func (m *RemoteConfig_Apollo) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Endpoint
// no validation rules for AppId
// no validation rules for Cluster
// no validation rules for Namespace
// no validation rules for Secret
if len(errors) > 0 {
return RemoteConfig_ApolloMultiError(errors)
}
return nil
}
// RemoteConfig_ApolloMultiError is an error wrapping multiple validation
// errors returned by RemoteConfig_Apollo.ValidateAll() if the designated
// constraints aren't met.
type RemoteConfig_ApolloMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m RemoteConfig_ApolloMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m RemoteConfig_ApolloMultiError) AllErrors() []error { return m }
// RemoteConfig_ApolloValidationError is the validation error returned by
// RemoteConfig_Apollo.Validate if the designated constraints aren't met.
type RemoteConfig_ApolloValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e RemoteConfig_ApolloValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e RemoteConfig_ApolloValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e RemoteConfig_ApolloValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e RemoteConfig_ApolloValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e RemoteConfig_ApolloValidationError) ErrorName() string {
return "RemoteConfig_ApolloValidationError"
}
// Error satisfies the builtin error interface
func (e RemoteConfig_ApolloValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sRemoteConfig_Apollo.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = RemoteConfig_ApolloValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = RemoteConfig_ApolloValidationError{}
// Validate checks the field values on RemoteConfig_Kubernetes with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RemoteConfig_Kubernetes) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on RemoteConfig_Kubernetes with the
// rules defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RemoteConfig_KubernetesMultiError, or nil if none found.
func (m *RemoteConfig_Kubernetes) ValidateAll() error {
return m.validate(true)
}
func (m *RemoteConfig_Kubernetes) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Namespace
if len(errors) > 0 {
return RemoteConfig_KubernetesMultiError(errors)
}
return nil
}
// RemoteConfig_KubernetesMultiError is an error wrapping multiple validation
// errors returned by RemoteConfig_Kubernetes.ValidateAll() if the designated
// constraints aren't met.
type RemoteConfig_KubernetesMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m RemoteConfig_KubernetesMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m RemoteConfig_KubernetesMultiError) AllErrors() []error { return m }
// RemoteConfig_KubernetesValidationError is the validation error returned by
// RemoteConfig_Kubernetes.Validate if the designated constraints aren't met.
type RemoteConfig_KubernetesValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e RemoteConfig_KubernetesValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e RemoteConfig_KubernetesValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e RemoteConfig_KubernetesValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e RemoteConfig_KubernetesValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e RemoteConfig_KubernetesValidationError) ErrorName() string {
return "RemoteConfig_KubernetesValidationError"
}
// Error satisfies the builtin error interface
func (e RemoteConfig_KubernetesValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sRemoteConfig_Kubernetes.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = RemoteConfig_KubernetesValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = RemoteConfig_KubernetesValidationError{}
// Validate checks the field values on RemoteConfig_Polaris with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *RemoteConfig_Polaris) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on RemoteConfig_Polaris with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// RemoteConfig_PolarisMultiError, or nil if none found.
func (m *RemoteConfig_Polaris) ValidateAll() error {
return m.validate(true)
}
func (m *RemoteConfig_Polaris) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if len(errors) > 0 {
return RemoteConfig_PolarisMultiError(errors)
}
return nil
}
// RemoteConfig_PolarisMultiError is an error wrapping multiple validation
// errors returned by RemoteConfig_Polaris.ValidateAll() if the designated
// constraints aren't met.
type RemoteConfig_PolarisMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m RemoteConfig_PolarisMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m RemoteConfig_PolarisMultiError) AllErrors() []error { return m }
// RemoteConfig_PolarisValidationError is the validation error returned by
// RemoteConfig_Polaris.Validate if the designated constraints aren't met.
type RemoteConfig_PolarisValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e RemoteConfig_PolarisValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e RemoteConfig_PolarisValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e RemoteConfig_PolarisValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e RemoteConfig_PolarisValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e RemoteConfig_PolarisValidationError) ErrorName() string {
return "RemoteConfig_PolarisValidationError"
}
// Error satisfies the builtin error interface
func (e RemoteConfig_PolarisValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sRemoteConfig_Polaris.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = RemoteConfig_PolarisValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = RemoteConfig_PolarisValidationError{}

View File

@@ -0,0 +1,374 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/data.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 数据
type Data struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Database *Data_Database `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` // 数据库
Redis *Data_Redis `protobuf:"bytes,2,opt,name=redis,proto3" json:"redis,omitempty"` // Redis
}
func (x *Data) Reset() {
*x = Data{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_data_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Data) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Data) ProtoMessage() {}
func (x *Data) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_data_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Data.ProtoReflect.Descriptor instead.
func (*Data) Descriptor() ([]byte, []int) {
return file_conf_v1_data_proto_rawDescGZIP(), []int{0}
}
func (x *Data) GetDatabase() *Data_Database {
if x != nil {
return x.Database
}
return nil
}
func (x *Data) GetRedis() *Data_Redis {
if x != nil {
return x.Redis
}
return nil
}
// 数据库
type Data_Database struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Driver string `protobuf:"bytes,1,opt,name=driver,proto3" json:"driver,omitempty"` // 驱动名mysql、postgresql、mongodb、sqlite……
Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` // 数据源DSN字符串
Migrate bool `protobuf:"varint,3,opt,name=migrate,proto3" json:"migrate,omitempty"` // 数据迁移开关
}
func (x *Data_Database) Reset() {
*x = Data_Database{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_data_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Data_Database) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Data_Database) ProtoMessage() {}
func (x *Data_Database) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_data_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Data_Database.ProtoReflect.Descriptor instead.
func (*Data_Database) Descriptor() ([]byte, []int) {
return file_conf_v1_data_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Data_Database) GetDriver() string {
if x != nil {
return x.Driver
}
return ""
}
func (x *Data_Database) GetSource() string {
if x != nil {
return x.Source
}
return ""
}
func (x *Data_Database) GetMigrate() bool {
if x != nil {
return x.Migrate
}
return false
}
// redis
type Data_Redis struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // 网络
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` // 服务端地址
Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` // 密码
Db int32 `protobuf:"varint,4,opt,name=db,proto3" json:"db,omitempty"` // 数据库索引
DialTimeout *durationpb.Duration `protobuf:"bytes,5,opt,name=dial_timeout,json=dialTimeout,proto3" json:"dial_timeout,omitempty"` // 连接超时时间
ReadTimeout *durationpb.Duration `protobuf:"bytes,6,opt,name=read_timeout,json=readTimeout,proto3" json:"read_timeout,omitempty"` // 读取超时时间
WriteTimeout *durationpb.Duration `protobuf:"bytes,7,opt,name=write_timeout,json=writeTimeout,proto3" json:"write_timeout,omitempty"` // 写入超时时间
}
func (x *Data_Redis) Reset() {
*x = Data_Redis{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_data_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Data_Redis) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Data_Redis) ProtoMessage() {}
func (x *Data_Redis) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_data_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Data_Redis.ProtoReflect.Descriptor instead.
func (*Data_Redis) Descriptor() ([]byte, []int) {
return file_conf_v1_data_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Data_Redis) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *Data_Redis) GetAddr() string {
if x != nil {
return x.Addr
}
return ""
}
func (x *Data_Redis) GetPassword() string {
if x != nil {
return x.Password
}
return ""
}
func (x *Data_Redis) GetDb() int32 {
if x != nil {
return x.Db
}
return 0
}
func (x *Data_Redis) GetDialTimeout() *durationpb.Duration {
if x != nil {
return x.DialTimeout
}
return nil
}
func (x *Data_Redis) GetReadTimeout() *durationpb.Duration {
if x != nil {
return x.ReadTimeout
}
return nil
}
func (x *Data_Redis) GetWriteTimeout() *durationpb.Duration {
if x != nil {
return x.WriteTimeout
}
return nil
}
var File_conf_v1_data_proto protoreflect.FileDescriptor
var file_conf_v1_data_proto_rawDesc = []byte{
0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd5, 0x03, 0x0a, 0x04, 0x44,
0x61, 0x74, 0x61, 0x12, 0x2f, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61,
0x62, 0x61, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x52, 0x65, 0x64, 0x69, 0x73, 0x52, 0x05, 0x72, 0x65, 0x64, 0x69, 0x73, 0x1a, 0x54, 0x0a, 0x08,
0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76,
0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x67, 0x72,
0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x69, 0x67, 0x72, 0x61,
0x74, 0x65, 0x1a, 0x9d, 0x02, 0x0a, 0x05, 0x52, 0x65, 0x64, 0x69, 0x73, 0x12, 0x18, 0x0a, 0x07,
0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61,
0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61,
0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x62, 0x18, 0x04, 0x20, 0x01,
0x28, 0x05, 0x52, 0x02, 0x64, 0x62, 0x12, 0x3c, 0x0a, 0x0c, 0x64, 0x69, 0x61, 0x6c, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x6d,
0x65, 0x6f, 0x75, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f,
0x75, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f,
0x75, 0x74, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x62, 0x69, 0x2f,
0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x2f,
0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_conf_v1_data_proto_rawDescOnce sync.Once
file_conf_v1_data_proto_rawDescData = file_conf_v1_data_proto_rawDesc
)
func file_conf_v1_data_proto_rawDescGZIP() []byte {
file_conf_v1_data_proto_rawDescOnce.Do(func() {
file_conf_v1_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_data_proto_rawDescData)
})
return file_conf_v1_data_proto_rawDescData
}
var file_conf_v1_data_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_conf_v1_data_proto_goTypes = []interface{}{
(*Data)(nil), // 0: conf.Data
(*Data_Database)(nil), // 1: conf.Data.Database
(*Data_Redis)(nil), // 2: conf.Data.Redis
(*durationpb.Duration)(nil), // 3: google.protobuf.Duration
}
var file_conf_v1_data_proto_depIdxs = []int32{
1, // 0: conf.Data.database:type_name -> conf.Data.Database
2, // 1: conf.Data.redis:type_name -> conf.Data.Redis
3, // 2: conf.Data.Redis.dial_timeout:type_name -> google.protobuf.Duration
3, // 3: conf.Data.Redis.read_timeout:type_name -> google.protobuf.Duration
3, // 4: conf.Data.Redis.write_timeout:type_name -> google.protobuf.Duration
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_conf_v1_data_proto_init() }
func file_conf_v1_data_proto_init() {
if File_conf_v1_data_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_conf_v1_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Data); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Data_Database); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_data_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Data_Redis); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_data_proto_rawDesc,
NumEnums: 0,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_data_proto_goTypes,
DependencyIndexes: file_conf_v1_data_proto_depIdxs,
MessageInfos: file_conf_v1_data_proto_msgTypes,
}.Build()
File_conf_v1_data_proto = out.File
file_conf_v1_data_proto_rawDesc = nil
file_conf_v1_data_proto_goTypes = nil
file_conf_v1_data_proto_depIdxs = nil
}

View File

@@ -0,0 +1,492 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/data.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on Data with the rules defined in the proto
// definition for this message. If any rules are violated, the first error
// encountered is returned, or nil if there are no violations.
func (m *Data) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Data with the rules defined in the
// proto definition for this message. If any rules are violated, the result is
// a list of violation errors wrapped in DataMultiError, or nil if none found.
func (m *Data) ValidateAll() error {
return m.validate(true)
}
func (m *Data) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if all {
switch v := interface{}(m.GetDatabase()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, DataValidationError{
field: "Database",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, DataValidationError{
field: "Database",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetDatabase()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return DataValidationError{
field: "Database",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetRedis()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, DataValidationError{
field: "Redis",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, DataValidationError{
field: "Redis",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetRedis()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return DataValidationError{
field: "Redis",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return DataMultiError(errors)
}
return nil
}
// DataMultiError is an error wrapping multiple validation errors returned by
// Data.ValidateAll() if the designated constraints aren't met.
type DataMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m DataMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m DataMultiError) AllErrors() []error { return m }
// DataValidationError is the validation error returned by Data.Validate if the
// designated constraints aren't met.
type DataValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e DataValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e DataValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e DataValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e DataValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e DataValidationError) ErrorName() string { return "DataValidationError" }
// Error satisfies the builtin error interface
func (e DataValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sData.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = DataValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = DataValidationError{}
// Validate checks the field values on Data_Database with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Data_Database) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Data_Database with the rules defined
// in the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Data_DatabaseMultiError, or
// nil if none found.
func (m *Data_Database) ValidateAll() error {
return m.validate(true)
}
func (m *Data_Database) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Driver
// no validation rules for Source
// no validation rules for Migrate
if len(errors) > 0 {
return Data_DatabaseMultiError(errors)
}
return nil
}
// Data_DatabaseMultiError is an error wrapping multiple validation errors
// returned by Data_Database.ValidateAll() if the designated constraints
// aren't met.
type Data_DatabaseMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Data_DatabaseMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Data_DatabaseMultiError) AllErrors() []error { return m }
// Data_DatabaseValidationError is the validation error returned by
// Data_Database.Validate if the designated constraints aren't met.
type Data_DatabaseValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Data_DatabaseValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Data_DatabaseValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Data_DatabaseValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Data_DatabaseValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Data_DatabaseValidationError) ErrorName() string { return "Data_DatabaseValidationError" }
// Error satisfies the builtin error interface
func (e Data_DatabaseValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sData_Database.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Data_DatabaseValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Data_DatabaseValidationError{}
// Validate checks the field values on Data_Redis with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Data_Redis) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Data_Redis with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Data_RedisMultiError, or
// nil if none found.
func (m *Data_Redis) ValidateAll() error {
return m.validate(true)
}
func (m *Data_Redis) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Network
// no validation rules for Addr
// no validation rules for Password
// no validation rules for Db
if all {
switch v := interface{}(m.GetDialTimeout()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, Data_RedisValidationError{
field: "DialTimeout",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, Data_RedisValidationError{
field: "DialTimeout",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetDialTimeout()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return Data_RedisValidationError{
field: "DialTimeout",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetReadTimeout()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, Data_RedisValidationError{
field: "ReadTimeout",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, Data_RedisValidationError{
field: "ReadTimeout",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetReadTimeout()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return Data_RedisValidationError{
field: "ReadTimeout",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetWriteTimeout()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, Data_RedisValidationError{
field: "WriteTimeout",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, Data_RedisValidationError{
field: "WriteTimeout",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetWriteTimeout()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return Data_RedisValidationError{
field: "WriteTimeout",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return Data_RedisMultiError(errors)
}
return nil
}
// Data_RedisMultiError is an error wrapping multiple validation errors
// returned by Data_Redis.ValidateAll() if the designated constraints aren't met.
type Data_RedisMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Data_RedisMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Data_RedisMultiError) AllErrors() []error { return m }
// Data_RedisValidationError is the validation error returned by
// Data_Redis.Validate if the designated constraints aren't met.
type Data_RedisValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Data_RedisValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Data_RedisValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Data_RedisValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Data_RedisValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Data_RedisValidationError) ErrorName() string { return "Data_RedisValidationError" }
// Error satisfies the builtin error interface
func (e Data_RedisValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sData_Redis.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Data_RedisValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Data_RedisValidationError{}

View File

@@ -0,0 +1,660 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/logger.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 日志
type Logger struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Zap *Logger_Zap `protobuf:"bytes,2,opt,name=zap,proto3" json:"zap,omitempty"`
Logrus *Logger_Logrus `protobuf:"bytes,3,opt,name=logrus,proto3" json:"logrus,omitempty"`
Fluent *Logger_Fluent `protobuf:"bytes,4,opt,name=fluent,proto3" json:"fluent,omitempty"`
Aliyun *Logger_Aliyun `protobuf:"bytes,5,opt,name=aliyun,proto3" json:"aliyun,omitempty"`
Tencent *Logger_Tencent `protobuf:"bytes,6,opt,name=tencent,proto3" json:"tencent,omitempty"`
}
func (x *Logger) Reset() {
*x = Logger{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_logger_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Logger) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Logger) ProtoMessage() {}
func (x *Logger) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_logger_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Logger.ProtoReflect.Descriptor instead.
func (*Logger) Descriptor() ([]byte, []int) {
return file_conf_v1_logger_proto_rawDescGZIP(), []int{0}
}
func (x *Logger) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Logger) GetZap() *Logger_Zap {
if x != nil {
return x.Zap
}
return nil
}
func (x *Logger) GetLogrus() *Logger_Logrus {
if x != nil {
return x.Logrus
}
return nil
}
func (x *Logger) GetFluent() *Logger_Fluent {
if x != nil {
return x.Fluent
}
return nil
}
func (x *Logger) GetAliyun() *Logger_Aliyun {
if x != nil {
return x.Aliyun
}
return nil
}
func (x *Logger) GetTencent() *Logger_Tencent {
if x != nil {
return x.Tencent
}
return nil
}
// Zap
type Logger_Zap struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` //
Level string `protobuf:"bytes,2,opt,name=level,proto3" json:"level,omitempty"` //
MaxSize int32 `protobuf:"varint,3,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"` //
MaxAge int32 `protobuf:"varint,4,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"` //
MaxBackups int32 `protobuf:"varint,5,opt,name=max_backups,json=maxBackups,proto3" json:"max_backups,omitempty"` //
}
func (x *Logger_Zap) Reset() {
*x = Logger_Zap{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_logger_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Logger_Zap) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Logger_Zap) ProtoMessage() {}
func (x *Logger_Zap) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_logger_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Logger_Zap.ProtoReflect.Descriptor instead.
func (*Logger_Zap) Descriptor() ([]byte, []int) {
return file_conf_v1_logger_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Logger_Zap) GetFilename() string {
if x != nil {
return x.Filename
}
return ""
}
func (x *Logger_Zap) GetLevel() string {
if x != nil {
return x.Level
}
return ""
}
func (x *Logger_Zap) GetMaxSize() int32 {
if x != nil {
return x.MaxSize
}
return 0
}
func (x *Logger_Zap) GetMaxAge() int32 {
if x != nil {
return x.MaxAge
}
return 0
}
func (x *Logger_Zap) GetMaxBackups() int32 {
if x != nil {
return x.MaxBackups
}
return 0
}
// logrus
type Logger_Logrus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Level string `protobuf:"bytes,1,opt,name=level,proto3" json:"level,omitempty"` // 日志等级
Formatter string `protobuf:"bytes,2,opt,name=formatter,proto3" json:"formatter,omitempty"` // 输出格式text, json.
TimestampFormat string `protobuf:"bytes,3,opt,name=timestamp_format,json=timestampFormat,proto3" json:"timestamp_format,omitempty"` // 定义时间戳格式,例如:"2006-01-02 15:04:05"
DisableColors bool `protobuf:"varint,4,opt,name=disable_colors,json=disableColors,proto3" json:"disable_colors,omitempty"` // 不需要彩色日志
DisableTimestamp bool `protobuf:"varint,5,opt,name=disable_timestamp,json=disableTimestamp,proto3" json:"disable_timestamp,omitempty"` // 不需要时间戳
}
func (x *Logger_Logrus) Reset() {
*x = Logger_Logrus{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_logger_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Logger_Logrus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Logger_Logrus) ProtoMessage() {}
func (x *Logger_Logrus) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_logger_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Logger_Logrus.ProtoReflect.Descriptor instead.
func (*Logger_Logrus) Descriptor() ([]byte, []int) {
return file_conf_v1_logger_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Logger_Logrus) GetLevel() string {
if x != nil {
return x.Level
}
return ""
}
func (x *Logger_Logrus) GetFormatter() string {
if x != nil {
return x.Formatter
}
return ""
}
func (x *Logger_Logrus) GetTimestampFormat() string {
if x != nil {
return x.TimestampFormat
}
return ""
}
func (x *Logger_Logrus) GetDisableColors() bool {
if x != nil {
return x.DisableColors
}
return false
}
func (x *Logger_Logrus) GetDisableTimestamp() bool {
if x != nil {
return x.DisableTimestamp
}
return false
}
// Fluent
type Logger_Fluent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` // 公网接入地址
}
func (x *Logger_Fluent) Reset() {
*x = Logger_Fluent{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_logger_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Logger_Fluent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Logger_Fluent) ProtoMessage() {}
func (x *Logger_Fluent) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_logger_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Logger_Fluent.ProtoReflect.Descriptor instead.
func (*Logger_Fluent) Descriptor() ([]byte, []int) {
return file_conf_v1_logger_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Logger_Fluent) GetEndpoint() string {
if x != nil {
return x.Endpoint
}
return ""
}
// 阿里云
type Logger_Aliyun struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` // 公网接入地址
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` //
AccessKey string `protobuf:"bytes,3,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"` // 访问密钥ID
AccessSecret string `protobuf:"bytes,4,opt,name=access_secret,json=accessSecret,proto3" json:"access_secret,omitempty"` // 访问密钥
}
func (x *Logger_Aliyun) Reset() {
*x = Logger_Aliyun{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_logger_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Logger_Aliyun) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Logger_Aliyun) ProtoMessage() {}
func (x *Logger_Aliyun) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_logger_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Logger_Aliyun.ProtoReflect.Descriptor instead.
func (*Logger_Aliyun) Descriptor() ([]byte, []int) {
return file_conf_v1_logger_proto_rawDescGZIP(), []int{0, 3}
}
func (x *Logger_Aliyun) GetEndpoint() string {
if x != nil {
return x.Endpoint
}
return ""
}
func (x *Logger_Aliyun) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *Logger_Aliyun) GetAccessKey() string {
if x != nil {
return x.AccessKey
}
return ""
}
func (x *Logger_Aliyun) GetAccessSecret() string {
if x != nil {
return x.AccessSecret
}
return ""
}
// 腾讯
type Logger_Tencent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` // 公网接入地址
TopicId string `protobuf:"bytes,2,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` //
AccessKey string `protobuf:"bytes,3,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"` // 访问密钥ID
AccessSecret string `protobuf:"bytes,4,opt,name=access_secret,json=accessSecret,proto3" json:"access_secret,omitempty"` // 访问密钥
}
func (x *Logger_Tencent) Reset() {
*x = Logger_Tencent{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_logger_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Logger_Tencent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Logger_Tencent) ProtoMessage() {}
func (x *Logger_Tencent) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_logger_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Logger_Tencent.ProtoReflect.Descriptor instead.
func (*Logger_Tencent) Descriptor() ([]byte, []int) {
return file_conf_v1_logger_proto_rawDescGZIP(), []int{0, 4}
}
func (x *Logger_Tencent) GetEndpoint() string {
if x != nil {
return x.Endpoint
}
return ""
}
func (x *Logger_Tencent) GetTopicId() string {
if x != nil {
return x.TopicId
}
return ""
}
func (x *Logger_Tencent) GetAccessKey() string {
if x != nil {
return x.AccessKey
}
return ""
}
func (x *Logger_Tencent) GetAccessSecret() string {
if x != nil {
return x.AccessSecret
}
return ""
}
var File_conf_v1_logger_proto protoreflect.FileDescriptor
var file_conf_v1_logger_proto_rawDesc = []byte{
0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0xf6, 0x06, 0x0a,
0x06, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x03, 0x7a,
0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e,
0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x5a, 0x61, 0x70, 0x52, 0x03, 0x7a, 0x61, 0x70, 0x12,
0x2b, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x72, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x4c, 0x6f,
0x67, 0x72, 0x75, 0x73, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x72, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x06,
0x66, 0x6c, 0x75, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63,
0x6f, 0x6e, 0x66, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x46, 0x6c, 0x75, 0x65, 0x6e,
0x74, 0x52, 0x06, 0x66, 0x6c, 0x75, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x61, 0x6c, 0x69,
0x79, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x69, 0x79, 0x75, 0x6e, 0x52, 0x06,
0x61, 0x6c, 0x69, 0x79, 0x75, 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x6e,
0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4c,
0x6f, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74,
0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x1a, 0x8c, 0x01, 0x0a, 0x03, 0x5a, 0x61, 0x70, 0x12, 0x1a,
0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,
0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6d,
0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61,
0x78, 0x41, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b,
0x75, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61,
0x63, 0x6b, 0x75, 0x70, 0x73, 0x1a, 0xbb, 0x01, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x72, 0x75, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61,
0x74, 0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,
0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72,
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28,
0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x1a, 0x24, 0x0a, 0x06, 0x46, 0x6c, 0x75, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a,
0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x1a, 0x82, 0x01, 0x0a, 0x06, 0x41, 0x6c,
0x69, 0x79, 0x75, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x84,
0x01, 0x0a, 0x07, 0x54, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e,
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e,
0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49,
0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79,
0x12, 0x23, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53,
0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d,
0x62, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f,
0x6e, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_conf_v1_logger_proto_rawDescOnce sync.Once
file_conf_v1_logger_proto_rawDescData = file_conf_v1_logger_proto_rawDesc
)
func file_conf_v1_logger_proto_rawDescGZIP() []byte {
file_conf_v1_logger_proto_rawDescOnce.Do(func() {
file_conf_v1_logger_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_logger_proto_rawDescData)
})
return file_conf_v1_logger_proto_rawDescData
}
var file_conf_v1_logger_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_conf_v1_logger_proto_goTypes = []interface{}{
(*Logger)(nil), // 0: conf.Logger
(*Logger_Zap)(nil), // 1: conf.Logger.Zap
(*Logger_Logrus)(nil), // 2: conf.Logger.Logrus
(*Logger_Fluent)(nil), // 3: conf.Logger.Fluent
(*Logger_Aliyun)(nil), // 4: conf.Logger.Aliyun
(*Logger_Tencent)(nil), // 5: conf.Logger.Tencent
}
var file_conf_v1_logger_proto_depIdxs = []int32{
1, // 0: conf.Logger.zap:type_name -> conf.Logger.Zap
2, // 1: conf.Logger.logrus:type_name -> conf.Logger.Logrus
3, // 2: conf.Logger.fluent:type_name -> conf.Logger.Fluent
4, // 3: conf.Logger.aliyun:type_name -> conf.Logger.Aliyun
5, // 4: conf.Logger.tencent:type_name -> conf.Logger.Tencent
5, // [5:5] is the sub-list for method output_type
5, // [5:5] is the sub-list for method input_type
5, // [5:5] is the sub-list for extension type_name
5, // [5:5] is the sub-list for extension extendee
0, // [0:5] is the sub-list for field type_name
}
func init() { file_conf_v1_logger_proto_init() }
func file_conf_v1_logger_proto_init() {
if File_conf_v1_logger_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_conf_v1_logger_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Logger); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_logger_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Logger_Zap); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_logger_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Logger_Logrus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_logger_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Logger_Fluent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_logger_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Logger_Aliyun); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_logger_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Logger_Tencent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_logger_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_logger_proto_goTypes,
DependencyIndexes: file_conf_v1_logger_proto_depIdxs,
MessageInfos: file_conf_v1_logger_proto_msgTypes,
}.Build()
File_conf_v1_logger_proto = out.File
file_conf_v1_logger_proto_rawDesc = nil
file_conf_v1_logger_proto_goTypes = nil
file_conf_v1_logger_proto_depIdxs = nil
}

View File

@@ -0,0 +1,818 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/logger.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on Logger with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Logger) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Logger with the rules defined in the
// proto definition for this message. If any rules are violated, the result is
// a list of violation errors wrapped in LoggerMultiError, or nil if none found.
func (m *Logger) ValidateAll() error {
return m.validate(true)
}
func (m *Logger) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Type
if all {
switch v := interface{}(m.GetZap()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Zap",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Zap",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetZap()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return LoggerValidationError{
field: "Zap",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetLogrus()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Logrus",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Logrus",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetLogrus()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return LoggerValidationError{
field: "Logrus",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetFluent()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Fluent",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Fluent",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetFluent()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return LoggerValidationError{
field: "Fluent",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetAliyun()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Aliyun",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Aliyun",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetAliyun()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return LoggerValidationError{
field: "Aliyun",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetTencent()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Tencent",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, LoggerValidationError{
field: "Tencent",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetTencent()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return LoggerValidationError{
field: "Tencent",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return LoggerMultiError(errors)
}
return nil
}
// LoggerMultiError is an error wrapping multiple validation errors returned by
// Logger.ValidateAll() if the designated constraints aren't met.
type LoggerMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m LoggerMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m LoggerMultiError) AllErrors() []error { return m }
// LoggerValidationError is the validation error returned by Logger.Validate if
// the designated constraints aren't met.
type LoggerValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e LoggerValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e LoggerValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e LoggerValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e LoggerValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e LoggerValidationError) ErrorName() string { return "LoggerValidationError" }
// Error satisfies the builtin error interface
func (e LoggerValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sLogger.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = LoggerValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = LoggerValidationError{}
// Validate checks the field values on Logger_Zap with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Logger_Zap) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Logger_Zap with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Logger_ZapMultiError, or
// nil if none found.
func (m *Logger_Zap) ValidateAll() error {
return m.validate(true)
}
func (m *Logger_Zap) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Filename
// no validation rules for Level
// no validation rules for MaxSize
// no validation rules for MaxAge
// no validation rules for MaxBackups
if len(errors) > 0 {
return Logger_ZapMultiError(errors)
}
return nil
}
// Logger_ZapMultiError is an error wrapping multiple validation errors
// returned by Logger_Zap.ValidateAll() if the designated constraints aren't met.
type Logger_ZapMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Logger_ZapMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Logger_ZapMultiError) AllErrors() []error { return m }
// Logger_ZapValidationError is the validation error returned by
// Logger_Zap.Validate if the designated constraints aren't met.
type Logger_ZapValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Logger_ZapValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Logger_ZapValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Logger_ZapValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Logger_ZapValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Logger_ZapValidationError) ErrorName() string { return "Logger_ZapValidationError" }
// Error satisfies the builtin error interface
func (e Logger_ZapValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sLogger_Zap.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Logger_ZapValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Logger_ZapValidationError{}
// Validate checks the field values on Logger_Logrus with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Logger_Logrus) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Logger_Logrus with the rules defined
// in the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Logger_LogrusMultiError, or
// nil if none found.
func (m *Logger_Logrus) ValidateAll() error {
return m.validate(true)
}
func (m *Logger_Logrus) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Level
// no validation rules for Formatter
// no validation rules for TimestampFormat
// no validation rules for DisableColors
// no validation rules for DisableTimestamp
if len(errors) > 0 {
return Logger_LogrusMultiError(errors)
}
return nil
}
// Logger_LogrusMultiError is an error wrapping multiple validation errors
// returned by Logger_Logrus.ValidateAll() if the designated constraints
// aren't met.
type Logger_LogrusMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Logger_LogrusMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Logger_LogrusMultiError) AllErrors() []error { return m }
// Logger_LogrusValidationError is the validation error returned by
// Logger_Logrus.Validate if the designated constraints aren't met.
type Logger_LogrusValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Logger_LogrusValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Logger_LogrusValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Logger_LogrusValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Logger_LogrusValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Logger_LogrusValidationError) ErrorName() string { return "Logger_LogrusValidationError" }
// Error satisfies the builtin error interface
func (e Logger_LogrusValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sLogger_Logrus.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Logger_LogrusValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Logger_LogrusValidationError{}
// Validate checks the field values on Logger_Fluent with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Logger_Fluent) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Logger_Fluent with the rules defined
// in the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Logger_FluentMultiError, or
// nil if none found.
func (m *Logger_Fluent) ValidateAll() error {
return m.validate(true)
}
func (m *Logger_Fluent) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Endpoint
if len(errors) > 0 {
return Logger_FluentMultiError(errors)
}
return nil
}
// Logger_FluentMultiError is an error wrapping multiple validation errors
// returned by Logger_Fluent.ValidateAll() if the designated constraints
// aren't met.
type Logger_FluentMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Logger_FluentMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Logger_FluentMultiError) AllErrors() []error { return m }
// Logger_FluentValidationError is the validation error returned by
// Logger_Fluent.Validate if the designated constraints aren't met.
type Logger_FluentValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Logger_FluentValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Logger_FluentValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Logger_FluentValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Logger_FluentValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Logger_FluentValidationError) ErrorName() string { return "Logger_FluentValidationError" }
// Error satisfies the builtin error interface
func (e Logger_FluentValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sLogger_Fluent.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Logger_FluentValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Logger_FluentValidationError{}
// Validate checks the field values on Logger_Aliyun with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Logger_Aliyun) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Logger_Aliyun with the rules defined
// in the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Logger_AliyunMultiError, or
// nil if none found.
func (m *Logger_Aliyun) ValidateAll() error {
return m.validate(true)
}
func (m *Logger_Aliyun) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Endpoint
// no validation rules for Project
// no validation rules for AccessKey
// no validation rules for AccessSecret
if len(errors) > 0 {
return Logger_AliyunMultiError(errors)
}
return nil
}
// Logger_AliyunMultiError is an error wrapping multiple validation errors
// returned by Logger_Aliyun.ValidateAll() if the designated constraints
// aren't met.
type Logger_AliyunMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Logger_AliyunMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Logger_AliyunMultiError) AllErrors() []error { return m }
// Logger_AliyunValidationError is the validation error returned by
// Logger_Aliyun.Validate if the designated constraints aren't met.
type Logger_AliyunValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Logger_AliyunValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Logger_AliyunValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Logger_AliyunValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Logger_AliyunValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Logger_AliyunValidationError) ErrorName() string { return "Logger_AliyunValidationError" }
// Error satisfies the builtin error interface
func (e Logger_AliyunValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sLogger_Aliyun.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Logger_AliyunValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Logger_AliyunValidationError{}
// Validate checks the field values on Logger_Tencent with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Logger_Tencent) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Logger_Tencent with the rules defined
// in the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in Logger_TencentMultiError,
// or nil if none found.
func (m *Logger_Tencent) ValidateAll() error {
return m.validate(true)
}
func (m *Logger_Tencent) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Endpoint
// no validation rules for TopicId
// no validation rules for AccessKey
// no validation rules for AccessSecret
if len(errors) > 0 {
return Logger_TencentMultiError(errors)
}
return nil
}
// Logger_TencentMultiError is an error wrapping multiple validation errors
// returned by Logger_Tencent.ValidateAll() if the designated constraints
// aren't met.
type Logger_TencentMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Logger_TencentMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Logger_TencentMultiError) AllErrors() []error { return m }
// Logger_TencentValidationError is the validation error returned by
// Logger_Tencent.Validate if the designated constraints aren't met.
type Logger_TencentValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Logger_TencentValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Logger_TencentValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Logger_TencentValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Logger_TencentValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Logger_TencentValidationError) ErrorName() string { return "Logger_TencentValidationError" }
// Error satisfies the builtin error interface
func (e Logger_TencentValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sLogger_Tencent.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Logger_TencentValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Logger_TencentValidationError{}

View File

@@ -0,0 +1,455 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/middleware.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "google.golang.org/protobuf/types/known/durationpb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Middleware struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
EnableLogging bool `protobuf:"varint,1,opt,name=enable_logging,json=enableLogging,proto3" json:"enable_logging,omitempty"` // 日志开关
EnableRecovery bool `protobuf:"varint,2,opt,name=enable_recovery,json=enableRecovery,proto3" json:"enable_recovery,omitempty"` // 异常恢复
EnableTracing bool `protobuf:"varint,3,opt,name=enable_tracing,json=enableTracing,proto3" json:"enable_tracing,omitempty"` // 链路追踪开关
EnableValidate bool `protobuf:"varint,4,opt,name=enable_validate,json=enableValidate,proto3" json:"enable_validate,omitempty"` // 参数校验开关
EnableCircuitBreaker bool `protobuf:"varint,5,opt,name=enable_circuit_breaker,json=enableCircuitBreaker,proto3" json:"enable_circuit_breaker,omitempty"` // 熔断器
Limiter *Middleware_RateLimiter `protobuf:"bytes,6,opt,name=limiter,proto3" json:"limiter,omitempty"`
Metrics *Middleware_Metrics `protobuf:"bytes,7,opt,name=metrics,proto3" json:"metrics,omitempty"`
Auth *Middleware_Auth `protobuf:"bytes,8,opt,name=auth,proto3" json:"auth,omitempty"`
}
func (x *Middleware) Reset() {
*x = Middleware{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_middleware_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Middleware) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Middleware) ProtoMessage() {}
func (x *Middleware) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_middleware_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Middleware.ProtoReflect.Descriptor instead.
func (*Middleware) Descriptor() ([]byte, []int) {
return file_conf_v1_middleware_proto_rawDescGZIP(), []int{0}
}
func (x *Middleware) GetEnableLogging() bool {
if x != nil {
return x.EnableLogging
}
return false
}
func (x *Middleware) GetEnableRecovery() bool {
if x != nil {
return x.EnableRecovery
}
return false
}
func (x *Middleware) GetEnableTracing() bool {
if x != nil {
return x.EnableTracing
}
return false
}
func (x *Middleware) GetEnableValidate() bool {
if x != nil {
return x.EnableValidate
}
return false
}
func (x *Middleware) GetEnableCircuitBreaker() bool {
if x != nil {
return x.EnableCircuitBreaker
}
return false
}
func (x *Middleware) GetLimiter() *Middleware_RateLimiter {
if x != nil {
return x.Limiter
}
return nil
}
func (x *Middleware) GetMetrics() *Middleware_Metrics {
if x != nil {
return x.Metrics
}
return nil
}
func (x *Middleware) GetAuth() *Middleware_Auth {
if x != nil {
return x.Auth
}
return nil
}
// JWT校验
type Middleware_Auth struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"` // JWT签名的算法支持算法HS256
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // JWT 秘钥
}
func (x *Middleware_Auth) Reset() {
*x = Middleware_Auth{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_middleware_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Middleware_Auth) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Middleware_Auth) ProtoMessage() {}
func (x *Middleware_Auth) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_middleware_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Middleware_Auth.ProtoReflect.Descriptor instead.
func (*Middleware_Auth) Descriptor() ([]byte, []int) {
return file_conf_v1_middleware_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Middleware_Auth) GetMethod() string {
if x != nil {
return x.Method
}
return ""
}
func (x *Middleware_Auth) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
// 限流器
type Middleware_RateLimiter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // 限流器名字支持bbr。
}
func (x *Middleware_RateLimiter) Reset() {
*x = Middleware_RateLimiter{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_middleware_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Middleware_RateLimiter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Middleware_RateLimiter) ProtoMessage() {}
func (x *Middleware_RateLimiter) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_middleware_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Middleware_RateLimiter.ProtoReflect.Descriptor instead.
func (*Middleware_RateLimiter) Descriptor() ([]byte, []int) {
return file_conf_v1_middleware_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Middleware_RateLimiter) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// 性能指标
type Middleware_Metrics struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Histogram bool `protobuf:"varint,1,opt,name=histogram,proto3" json:"histogram,omitempty"` // 直方图
Counter bool `protobuf:"varint,2,opt,name=counter,proto3" json:"counter,omitempty"` // 计数器
Gauge bool `protobuf:"varint,3,opt,name=gauge,proto3" json:"gauge,omitempty"` // 仪表盘
Summary bool `protobuf:"varint,4,opt,name=summary,proto3" json:"summary,omitempty"` // 摘要
}
func (x *Middleware_Metrics) Reset() {
*x = Middleware_Metrics{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_middleware_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Middleware_Metrics) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Middleware_Metrics) ProtoMessage() {}
func (x *Middleware_Metrics) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_middleware_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Middleware_Metrics.ProtoReflect.Descriptor instead.
func (*Middleware_Metrics) Descriptor() ([]byte, []int) {
return file_conf_v1_middleware_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Middleware_Metrics) GetHistogram() bool {
if x != nil {
return x.Histogram
}
return false
}
func (x *Middleware_Metrics) GetCounter() bool {
if x != nil {
return x.Counter
}
return false
}
func (x *Middleware_Metrics) GetGauge() bool {
if x != nil {
return x.Gauge
}
return false
}
func (x *Middleware_Metrics) GetSummary() bool {
if x != nil {
return x.Summary
}
return false
}
var File_conf_v1_middleware_proto protoreflect.FileDescriptor
var file_conf_v1_middleware_proto_rawDesc = []byte{
0x0a, 0x18, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65,
0x77, 0x61, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66,
0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0xc1, 0x04, 0x0a, 0x0a, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x12,
0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c,
0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12,
0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e,
0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54,
0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12,
0x34, 0x0a, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69,
0x74, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x42, 0x72,
0x65, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4d, 0x69,
0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d,
0x69, 0x74, 0x65, 0x72, 0x52, 0x07, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a,
0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65,
0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x73, 0x12, 0x29, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72,
0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x1a, 0x30, 0x0a, 0x04,
0x41, 0x75, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x21,
0x0a, 0x0b, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x1a, 0x71, 0x0a, 0x07, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1c, 0x0a, 0x09,
0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75,
0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x6d,
0x6d, 0x61, 0x72, 0x79, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x62,
0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e,
0x66, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
file_conf_v1_middleware_proto_rawDescOnce sync.Once
file_conf_v1_middleware_proto_rawDescData = file_conf_v1_middleware_proto_rawDesc
)
func file_conf_v1_middleware_proto_rawDescGZIP() []byte {
file_conf_v1_middleware_proto_rawDescOnce.Do(func() {
file_conf_v1_middleware_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_middleware_proto_rawDescData)
})
return file_conf_v1_middleware_proto_rawDescData
}
var file_conf_v1_middleware_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_conf_v1_middleware_proto_goTypes = []interface{}{
(*Middleware)(nil), // 0: conf.Middleware
(*Middleware_Auth)(nil), // 1: conf.Middleware.Auth
(*Middleware_RateLimiter)(nil), // 2: conf.Middleware.RateLimiter
(*Middleware_Metrics)(nil), // 3: conf.Middleware.Metrics
}
var file_conf_v1_middleware_proto_depIdxs = []int32{
2, // 0: conf.Middleware.limiter:type_name -> conf.Middleware.RateLimiter
3, // 1: conf.Middleware.metrics:type_name -> conf.Middleware.Metrics
1, // 2: conf.Middleware.auth:type_name -> conf.Middleware.Auth
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
}
func init() { file_conf_v1_middleware_proto_init() }
func file_conf_v1_middleware_proto_init() {
if File_conf_v1_middleware_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_conf_v1_middleware_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Middleware); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_middleware_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Middleware_Auth); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_middleware_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Middleware_RateLimiter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_middleware_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Middleware_Metrics); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_middleware_proto_rawDesc,
NumEnums: 0,
NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_middleware_proto_goTypes,
DependencyIndexes: file_conf_v1_middleware_proto_depIdxs,
MessageInfos: file_conf_v1_middleware_proto_msgTypes,
}.Build()
File_conf_v1_middleware_proto = out.File
file_conf_v1_middleware_proto_rawDesc = nil
file_conf_v1_middleware_proto_goTypes = nil
file_conf_v1_middleware_proto_depIdxs = nil
}

View File

@@ -0,0 +1,550 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/middleware.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on Middleware with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Middleware) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Middleware with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in MiddlewareMultiError, or
// nil if none found.
func (m *Middleware) ValidateAll() error {
return m.validate(true)
}
func (m *Middleware) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for EnableLogging
// no validation rules for EnableRecovery
// no validation rules for EnableTracing
// no validation rules for EnableValidate
// no validation rules for EnableCircuitBreaker
if all {
switch v := interface{}(m.GetLimiter()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, MiddlewareValidationError{
field: "Limiter",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, MiddlewareValidationError{
field: "Limiter",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetLimiter()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return MiddlewareValidationError{
field: "Limiter",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetMetrics()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, MiddlewareValidationError{
field: "Metrics",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, MiddlewareValidationError{
field: "Metrics",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetMetrics()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return MiddlewareValidationError{
field: "Metrics",
reason: "embedded message failed validation",
cause: err,
}
}
}
if all {
switch v := interface{}(m.GetAuth()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, MiddlewareValidationError{
field: "Auth",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, MiddlewareValidationError{
field: "Auth",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetAuth()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return MiddlewareValidationError{
field: "Auth",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return MiddlewareMultiError(errors)
}
return nil
}
// MiddlewareMultiError is an error wrapping multiple validation errors
// returned by Middleware.ValidateAll() if the designated constraints aren't met.
type MiddlewareMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m MiddlewareMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m MiddlewareMultiError) AllErrors() []error { return m }
// MiddlewareValidationError is the validation error returned by
// Middleware.Validate if the designated constraints aren't met.
type MiddlewareValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e MiddlewareValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e MiddlewareValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e MiddlewareValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e MiddlewareValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e MiddlewareValidationError) ErrorName() string { return "MiddlewareValidationError" }
// Error satisfies the builtin error interface
func (e MiddlewareValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sMiddleware.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = MiddlewareValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = MiddlewareValidationError{}
// Validate checks the field values on Middleware_Auth with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
func (m *Middleware_Auth) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Middleware_Auth with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// Middleware_AuthMultiError, or nil if none found.
func (m *Middleware_Auth) ValidateAll() error {
return m.validate(true)
}
func (m *Middleware_Auth) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Method
// no validation rules for Key
if len(errors) > 0 {
return Middleware_AuthMultiError(errors)
}
return nil
}
// Middleware_AuthMultiError is an error wrapping multiple validation errors
// returned by Middleware_Auth.ValidateAll() if the designated constraints
// aren't met.
type Middleware_AuthMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Middleware_AuthMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Middleware_AuthMultiError) AllErrors() []error { return m }
// Middleware_AuthValidationError is the validation error returned by
// Middleware_Auth.Validate if the designated constraints aren't met.
type Middleware_AuthValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Middleware_AuthValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Middleware_AuthValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Middleware_AuthValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Middleware_AuthValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Middleware_AuthValidationError) ErrorName() string { return "Middleware_AuthValidationError" }
// Error satisfies the builtin error interface
func (e Middleware_AuthValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sMiddleware_Auth.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Middleware_AuthValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Middleware_AuthValidationError{}
// Validate checks the field values on Middleware_RateLimiter with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *Middleware_RateLimiter) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Middleware_RateLimiter with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// Middleware_RateLimiterMultiError, or nil if none found.
func (m *Middleware_RateLimiter) ValidateAll() error {
return m.validate(true)
}
func (m *Middleware_RateLimiter) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Name
if len(errors) > 0 {
return Middleware_RateLimiterMultiError(errors)
}
return nil
}
// Middleware_RateLimiterMultiError is an error wrapping multiple validation
// errors returned by Middleware_RateLimiter.ValidateAll() if the designated
// constraints aren't met.
type Middleware_RateLimiterMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Middleware_RateLimiterMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Middleware_RateLimiterMultiError) AllErrors() []error { return m }
// Middleware_RateLimiterValidationError is the validation error returned by
// Middleware_RateLimiter.Validate if the designated constraints aren't met.
type Middleware_RateLimiterValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Middleware_RateLimiterValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Middleware_RateLimiterValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Middleware_RateLimiterValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Middleware_RateLimiterValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Middleware_RateLimiterValidationError) ErrorName() string {
return "Middleware_RateLimiterValidationError"
}
// Error satisfies the builtin error interface
func (e Middleware_RateLimiterValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sMiddleware_RateLimiter.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Middleware_RateLimiterValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Middleware_RateLimiterValidationError{}
// Validate checks the field values on Middleware_Metrics with the rules
// defined in the proto definition for this message. If any rules are
// violated, the first error encountered is returned, or nil if there are no violations.
func (m *Middleware_Metrics) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Middleware_Metrics with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
// Middleware_MetricsMultiError, or nil if none found.
func (m *Middleware_Metrics) ValidateAll() error {
return m.validate(true)
}
func (m *Middleware_Metrics) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Histogram
// no validation rules for Counter
// no validation rules for Gauge
// no validation rules for Summary
if len(errors) > 0 {
return Middleware_MetricsMultiError(errors)
}
return nil
}
// Middleware_MetricsMultiError is an error wrapping multiple validation errors
// returned by Middleware_Metrics.ValidateAll() if the designated constraints
// aren't met.
type Middleware_MetricsMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m Middleware_MetricsMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m Middleware_MetricsMultiError) AllErrors() []error { return m }
// Middleware_MetricsValidationError is the validation error returned by
// Middleware_Metrics.Validate if the designated constraints aren't met.
type Middleware_MetricsValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e Middleware_MetricsValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e Middleware_MetricsValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e Middleware_MetricsValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e Middleware_MetricsValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e Middleware_MetricsValidationError) ErrorName() string {
return "Middleware_MetricsValidationError"
}
// Error satisfies the builtin error interface
func (e Middleware_MetricsValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sMiddleware_Metrics.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = Middleware_MetricsValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = Middleware_MetricsValidationError{}

View File

@@ -0,0 +1,267 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/oss.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type OSS struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Minio *OSS_MinIO `protobuf:"bytes,1,opt,name=minio,proto3" json:"minio,omitempty"`
}
func (x *OSS) Reset() {
*x = OSS{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_oss_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OSS) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OSS) ProtoMessage() {}
func (x *OSS) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_oss_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use OSS.ProtoReflect.Descriptor instead.
func (*OSS) Descriptor() ([]byte, []int) {
return file_conf_v1_oss_proto_rawDescGZIP(), []int{0}
}
func (x *OSS) GetMinio() *OSS_MinIO {
if x != nil {
return x.Minio
}
return nil
}
// MinIO
type OSS_MinIO struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` // 对端端口
AccessKey string `protobuf:"bytes,2,opt,name=access_key,json=accessKey,proto3" json:"access_key,omitempty"` // 访问密钥
SecretKey string `protobuf:"bytes,3,opt,name=secret_key,json=secretKey,proto3" json:"secret_key,omitempty"` // 密钥
Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` // 令牌
UseSsl bool `protobuf:"varint,5,opt,name=use_ssl,json=useSsl,proto3" json:"use_ssl,omitempty"` // 使用SSL
UploadHost string `protobuf:"bytes,6,opt,name=upload_host,json=uploadHost,proto3" json:"upload_host,omitempty"` // 上传链接的主机名
DownloadHost string `protobuf:"bytes,7,opt,name=download_host,json=downloadHost,proto3" json:"download_host,omitempty"` // 下载链接的主机名
}
func (x *OSS_MinIO) Reset() {
*x = OSS_MinIO{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_oss_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OSS_MinIO) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OSS_MinIO) ProtoMessage() {}
func (x *OSS_MinIO) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_oss_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use OSS_MinIO.ProtoReflect.Descriptor instead.
func (*OSS_MinIO) Descriptor() ([]byte, []int) {
return file_conf_v1_oss_proto_rawDescGZIP(), []int{0, 0}
}
func (x *OSS_MinIO) GetEndpoint() string {
if x != nil {
return x.Endpoint
}
return ""
}
func (x *OSS_MinIO) GetAccessKey() string {
if x != nil {
return x.AccessKey
}
return ""
}
func (x *OSS_MinIO) GetSecretKey() string {
if x != nil {
return x.SecretKey
}
return ""
}
func (x *OSS_MinIO) GetToken() string {
if x != nil {
return x.Token
}
return ""
}
func (x *OSS_MinIO) GetUseSsl() bool {
if x != nil {
return x.UseSsl
}
return false
}
func (x *OSS_MinIO) GetUploadHost() string {
if x != nil {
return x.UploadHost
}
return ""
}
func (x *OSS_MinIO) GetDownloadHost() string {
if x != nil {
return x.DownloadHost
}
return ""
}
var File_conf_v1_oss_proto protoreflect.FileDescriptor
var file_conf_v1_oss_proto_rawDesc = []byte{
0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x73, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0x85, 0x02, 0x0a, 0x03, 0x4f, 0x53,
0x53, 0x12, 0x25, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4f, 0x53, 0x53, 0x2e, 0x4d, 0x69, 0x6e, 0x49,
0x4f, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x69, 0x6f, 0x1a, 0xd6, 0x01, 0x0a, 0x05, 0x4d, 0x69, 0x6e,
0x49, 0x4f, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d,
0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a,
0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b,
0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x73, 0x6c, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x75,
0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d,
0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x6f, 0x73,
0x74, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x62, 0x69, 0x2f, 0x67,
0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76,
0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_conf_v1_oss_proto_rawDescOnce sync.Once
file_conf_v1_oss_proto_rawDescData = file_conf_v1_oss_proto_rawDesc
)
func file_conf_v1_oss_proto_rawDescGZIP() []byte {
file_conf_v1_oss_proto_rawDescOnce.Do(func() {
file_conf_v1_oss_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_oss_proto_rawDescData)
})
return file_conf_v1_oss_proto_rawDescData
}
var file_conf_v1_oss_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_conf_v1_oss_proto_goTypes = []interface{}{
(*OSS)(nil), // 0: conf.OSS
(*OSS_MinIO)(nil), // 1: conf.OSS.MinIO
}
var file_conf_v1_oss_proto_depIdxs = []int32{
1, // 0: conf.OSS.minio:type_name -> conf.OSS.MinIO
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_conf_v1_oss_proto_init() }
func file_conf_v1_oss_proto_init() {
if File_conf_v1_oss_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_conf_v1_oss_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OSS); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_oss_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OSS_MinIO); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_oss_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_oss_proto_goTypes,
DependencyIndexes: file_conf_v1_oss_proto_depIdxs,
MessageInfos: file_conf_v1_oss_proto_msgTypes,
}.Build()
File_conf_v1_oss_proto = out.File
file_conf_v1_oss_proto_rawDesc = nil
file_conf_v1_oss_proto_goTypes = nil
file_conf_v1_oss_proto_depIdxs = nil
}

View File

@@ -0,0 +1,276 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/oss.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on OSS with the rules defined in the proto
// definition for this message. If any rules are violated, the first error
// encountered is returned, or nil if there are no violations.
func (m *OSS) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on OSS with the rules defined in the
// proto definition for this message. If any rules are violated, the result is
// a list of violation errors wrapped in OSSMultiError, or nil if none found.
func (m *OSS) ValidateAll() error {
return m.validate(true)
}
func (m *OSS) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
if all {
switch v := interface{}(m.GetMinio()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
errors = append(errors, OSSValidationError{
field: "Minio",
reason: "embedded message failed validation",
cause: err,
})
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
errors = append(errors, OSSValidationError{
field: "Minio",
reason: "embedded message failed validation",
cause: err,
})
}
}
} else if v, ok := interface{}(m.GetMinio()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
return OSSValidationError{
field: "Minio",
reason: "embedded message failed validation",
cause: err,
}
}
}
if len(errors) > 0 {
return OSSMultiError(errors)
}
return nil
}
// OSSMultiError is an error wrapping multiple validation errors returned by
// OSS.ValidateAll() if the designated constraints aren't met.
type OSSMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m OSSMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m OSSMultiError) AllErrors() []error { return m }
// OSSValidationError is the validation error returned by OSS.Validate if the
// designated constraints aren't met.
type OSSValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e OSSValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e OSSValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e OSSValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e OSSValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e OSSValidationError) ErrorName() string { return "OSSValidationError" }
// Error satisfies the builtin error interface
func (e OSSValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sOSS.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = OSSValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = OSSValidationError{}
// Validate checks the field values on OSS_MinIO with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *OSS_MinIO) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on OSS_MinIO with the rules defined in
// the proto definition for this message. If any rules are violated, the
// result is a list of violation errors wrapped in OSS_MinIOMultiError, or nil
// if none found.
func (m *OSS_MinIO) ValidateAll() error {
return m.validate(true)
}
func (m *OSS_MinIO) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Endpoint
// no validation rules for AccessKey
// no validation rules for SecretKey
// no validation rules for Token
// no validation rules for UseSsl
// no validation rules for UploadHost
// no validation rules for DownloadHost
if len(errors) > 0 {
return OSS_MinIOMultiError(errors)
}
return nil
}
// OSS_MinIOMultiError is an error wrapping multiple validation errors returned
// by OSS_MinIO.ValidateAll() if the designated constraints aren't met.
type OSS_MinIOMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m OSS_MinIOMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m OSS_MinIOMultiError) AllErrors() []error { return m }
// OSS_MinIOValidationError is the validation error returned by
// OSS_MinIO.Validate if the designated constraints aren't met.
type OSS_MinIOValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e OSS_MinIOValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e OSS_MinIOValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e OSS_MinIOValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e OSS_MinIOValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e OSS_MinIOValidationError) ErrorName() string { return "OSS_MinIOValidationError" }
// Error satisfies the builtin error interface
func (e OSS_MinIOValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sOSS_MinIO.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = OSS_MinIOValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = OSS_MinIOValidationError{}

View File

@@ -0,0 +1,967 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/registry.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 注册发现中心
type Registry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Consul *Registry_Consul `protobuf:"bytes,2,opt,name=consul,proto3" json:"consul,omitempty"` // Consul
Etcd *Registry_Etcd `protobuf:"bytes,3,opt,name=etcd,proto3" json:"etcd,omitempty"` // Etcd
Zookeeper *Registry_ZooKeeper `protobuf:"bytes,4,opt,name=zookeeper,proto3" json:"zookeeper,omitempty"` // ZooKeeper
Nacos *Registry_Nacos `protobuf:"bytes,5,opt,name=nacos,proto3" json:"nacos,omitempty"` // Nacos
Kubernetes *Registry_Kubernetes `protobuf:"bytes,6,opt,name=kubernetes,proto3" json:"kubernetes,omitempty"` // Kubernetes
Eureka *Registry_Eureka `protobuf:"bytes,7,opt,name=eureka,proto3" json:"eureka,omitempty"` // Eureka
Polaris *Registry_Polaris `protobuf:"bytes,8,opt,name=polaris,proto3" json:"polaris,omitempty"` // Polaris
Servicecomb *Registry_Servicecomb `protobuf:"bytes,9,opt,name=servicecomb,proto3" json:"servicecomb,omitempty"` // Servicecomb
}
func (x *Registry) Reset() {
*x = Registry{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry) ProtoMessage() {}
func (x *Registry) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry.ProtoReflect.Descriptor instead.
func (*Registry) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0}
}
func (x *Registry) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Registry) GetConsul() *Registry_Consul {
if x != nil {
return x.Consul
}
return nil
}
func (x *Registry) GetEtcd() *Registry_Etcd {
if x != nil {
return x.Etcd
}
return nil
}
func (x *Registry) GetZookeeper() *Registry_ZooKeeper {
if x != nil {
return x.Zookeeper
}
return nil
}
func (x *Registry) GetNacos() *Registry_Nacos {
if x != nil {
return x.Nacos
}
return nil
}
func (x *Registry) GetKubernetes() *Registry_Kubernetes {
if x != nil {
return x.Kubernetes
}
return nil
}
func (x *Registry) GetEureka() *Registry_Eureka {
if x != nil {
return x.Eureka
}
return nil
}
func (x *Registry) GetPolaris() *Registry_Polaris {
if x != nil {
return x.Polaris
}
return nil
}
func (x *Registry) GetServicecomb() *Registry_Servicecomb {
if x != nil {
return x.Servicecomb
}
return nil
}
// Consul
type Registry_Consul struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Scheme string `protobuf:"bytes,1,opt,name=scheme,proto3" json:"scheme,omitempty"` // 网络样式
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // 服务端地址
HealthCheck bool `protobuf:"varint,3,opt,name=health_check,json=healthCheck,proto3" json:"health_check,omitempty"` // 健康检查
}
func (x *Registry_Consul) Reset() {
*x = Registry_Consul{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_Consul) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_Consul) ProtoMessage() {}
func (x *Registry_Consul) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_Consul.ProtoReflect.Descriptor instead.
func (*Registry_Consul) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Registry_Consul) GetScheme() string {
if x != nil {
return x.Scheme
}
return ""
}
func (x *Registry_Consul) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *Registry_Consul) GetHealthCheck() bool {
if x != nil {
return x.HealthCheck
}
return false
}
// Etcd
type Registry_Etcd struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoints []string `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
}
func (x *Registry_Etcd) Reset() {
*x = Registry_Etcd{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_Etcd) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_Etcd) ProtoMessage() {}
func (x *Registry_Etcd) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_Etcd.ProtoReflect.Descriptor instead.
func (*Registry_Etcd) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Registry_Etcd) GetEndpoints() []string {
if x != nil {
return x.Endpoints
}
return nil
}
// ZooKeeper
type Registry_ZooKeeper struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoints []string `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
Timeout *durationpb.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
}
func (x *Registry_ZooKeeper) Reset() {
*x = Registry_ZooKeeper{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_ZooKeeper) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_ZooKeeper) ProtoMessage() {}
func (x *Registry_ZooKeeper) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_ZooKeeper.ProtoReflect.Descriptor instead.
func (*Registry_ZooKeeper) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Registry_ZooKeeper) GetEndpoints() []string {
if x != nil {
return x.Endpoints
}
return nil
}
func (x *Registry_ZooKeeper) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
// Nacos
type Registry_Nacos struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // 服务端地址
Port uint64 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` // 服务端端口
NamespaceId string `protobuf:"bytes,3,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` //
LogLevel string `protobuf:"bytes,4,opt,name=log_level,json=logLevel,proto3" json:"log_level,omitempty"` // 日志等级
CacheDir string `protobuf:"bytes,5,opt,name=cache_dir,json=cacheDir,proto3" json:"cache_dir,omitempty"` // 缓存目录
LogDir string `protobuf:"bytes,6,opt,name=log_dir,json=logDir,proto3" json:"log_dir,omitempty"` // 日志目录
UpdateThreadNum int32 `protobuf:"varint,7,opt,name=update_thread_num,json=updateThreadNum,proto3" json:"update_thread_num,omitempty"` // 更新服务的线程数
Timeout *durationpb.Duration `protobuf:"bytes,8,opt,name=timeout,proto3" json:"timeout,omitempty"` // http请求超时时间单位: 毫秒
BeatInterval *durationpb.Duration `protobuf:"bytes,9,opt,name=beat_interval,json=beatInterval,proto3" json:"beat_interval,omitempty"` // 心跳间隔时间,单位: 毫秒
NotLoadCacheAtStart bool `protobuf:"varint,10,opt,name=not_load_cache_at_start,json=notLoadCacheAtStart,proto3" json:"not_load_cache_at_start,omitempty"` // 在启动时不读取本地缓存数据true: 不读取false: 读取
UpdateCacheWhenEmpty bool `protobuf:"varint,11,opt,name=update_cache_when_empty,json=updateCacheWhenEmpty,proto3" json:"update_cache_when_empty,omitempty"` // 当服务列表为空时是否更新本地缓存true: 更新,false: 不更新
}
func (x *Registry_Nacos) Reset() {
*x = Registry_Nacos{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_Nacos) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_Nacos) ProtoMessage() {}
func (x *Registry_Nacos) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_Nacos.ProtoReflect.Descriptor instead.
func (*Registry_Nacos) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 3}
}
func (x *Registry_Nacos) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *Registry_Nacos) GetPort() uint64 {
if x != nil {
return x.Port
}
return 0
}
func (x *Registry_Nacos) GetNamespaceId() string {
if x != nil {
return x.NamespaceId
}
return ""
}
func (x *Registry_Nacos) GetLogLevel() string {
if x != nil {
return x.LogLevel
}
return ""
}
func (x *Registry_Nacos) GetCacheDir() string {
if x != nil {
return x.CacheDir
}
return ""
}
func (x *Registry_Nacos) GetLogDir() string {
if x != nil {
return x.LogDir
}
return ""
}
func (x *Registry_Nacos) GetUpdateThreadNum() int32 {
if x != nil {
return x.UpdateThreadNum
}
return 0
}
func (x *Registry_Nacos) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *Registry_Nacos) GetBeatInterval() *durationpb.Duration {
if x != nil {
return x.BeatInterval
}
return nil
}
func (x *Registry_Nacos) GetNotLoadCacheAtStart() bool {
if x != nil {
return x.NotLoadCacheAtStart
}
return false
}
func (x *Registry_Nacos) GetUpdateCacheWhenEmpty() bool {
if x != nil {
return x.UpdateCacheWhenEmpty
}
return false
}
// Kubernetes
type Registry_Kubernetes struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Registry_Kubernetes) Reset() {
*x = Registry_Kubernetes{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_Kubernetes) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_Kubernetes) ProtoMessage() {}
func (x *Registry_Kubernetes) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_Kubernetes.ProtoReflect.Descriptor instead.
func (*Registry_Kubernetes) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 4}
}
// Eureka
type Registry_Eureka struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoints []string `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
HeartbeatInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"`
RefreshInterval *durationpb.Duration `protobuf:"bytes,3,opt,name=refresh_interval,json=refreshInterval,proto3" json:"refresh_interval,omitempty"`
Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *Registry_Eureka) Reset() {
*x = Registry_Eureka{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_Eureka) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_Eureka) ProtoMessage() {}
func (x *Registry_Eureka) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_Eureka.ProtoReflect.Descriptor instead.
func (*Registry_Eureka) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 5}
}
func (x *Registry_Eureka) GetEndpoints() []string {
if x != nil {
return x.Endpoints
}
return nil
}
func (x *Registry_Eureka) GetHeartbeatInterval() *durationpb.Duration {
if x != nil {
return x.HeartbeatInterval
}
return nil
}
func (x *Registry_Eureka) GetRefreshInterval() *durationpb.Duration {
if x != nil {
return x.RefreshInterval
}
return nil
}
func (x *Registry_Eureka) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
// Polaris
type Registry_Polaris struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // 服务端地址
Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` // 服务端端口
InstanceCount int32 `protobuf:"varint,3,opt,name=instance_count,json=instanceCount,proto3" json:"instance_count,omitempty"`
Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"`
Service string `protobuf:"bytes,5,opt,name=service,proto3" json:"service,omitempty"`
Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"`
}
func (x *Registry_Polaris) Reset() {
*x = Registry_Polaris{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_Polaris) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_Polaris) ProtoMessage() {}
func (x *Registry_Polaris) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_Polaris.ProtoReflect.Descriptor instead.
func (*Registry_Polaris) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 6}
}
func (x *Registry_Polaris) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *Registry_Polaris) GetPort() int32 {
if x != nil {
return x.Port
}
return 0
}
func (x *Registry_Polaris) GetInstanceCount() int32 {
if x != nil {
return x.InstanceCount
}
return 0
}
func (x *Registry_Polaris) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
func (x *Registry_Polaris) GetService() string {
if x != nil {
return x.Service
}
return ""
}
func (x *Registry_Polaris) GetToken() string {
if x != nil {
return x.Token
}
return ""
}
// Servicecomb
type Registry_Servicecomb struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Endpoints []string `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
}
func (x *Registry_Servicecomb) Reset() {
*x = Registry_Servicecomb{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_registry_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Registry_Servicecomb) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Registry_Servicecomb) ProtoMessage() {}
func (x *Registry_Servicecomb) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_registry_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Registry_Servicecomb.ProtoReflect.Descriptor instead.
func (*Registry_Servicecomb) Descriptor() ([]byte, []int) {
return file_conf_v1_registry_proto_rawDescGZIP(), []int{0, 7}
}
func (x *Registry_Servicecomb) GetEndpoints() []string {
if x != nil {
return x.Endpoints
}
return nil
}
var File_conf_v1_registry_proto protoreflect.FileDescriptor
var file_conf_v1_registry_proto_rawDesc = []byte{
0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x1a, 0x1e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c,
0x0c, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74,
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
0x2d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e,
0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x12, 0x27,
0x0a, 0x04, 0x65, 0x74, 0x63, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63,
0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x45, 0x74, 0x63,
0x64, 0x52, 0x04, 0x65, 0x74, 0x63, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x7a, 0x6f, 0x6f, 0x6b, 0x65,
0x65, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e,
0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x5a, 0x6f, 0x6f, 0x4b, 0x65,
0x65, 0x70, 0x65, 0x72, 0x52, 0x09, 0x7a, 0x6f, 0x6f, 0x6b, 0x65, 0x65, 0x70, 0x65, 0x72, 0x12,
0x2a, 0x0a, 0x05, 0x6e, 0x61, 0x63, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x4e,
0x61, 0x63, 0x6f, 0x73, 0x52, 0x05, 0x6e, 0x61, 0x63, 0x6f, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x6b,
0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e,
0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x52, 0x0a, 0x6b, 0x75, 0x62, 0x65,
0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x65, 0x75, 0x72, 0x65, 0x6b, 0x61,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x45, 0x75, 0x72, 0x65, 0x6b, 0x61, 0x52, 0x06, 0x65,
0x75, 0x72, 0x65, 0x6b, 0x61, 0x12, 0x30, 0x0a, 0x07, 0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73,
0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x52, 0x07,
0x70, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x12, 0x3c, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x63, 0x6f, 0x6d, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63,
0x6f, 0x6e, 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x63, 0x6f, 0x6d, 0x62, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x63, 0x6f, 0x6d, 0x62, 0x1a, 0x5d, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x12,
0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63,
0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43,
0x68, 0x65, 0x63, 0x6b, 0x1a, 0x24, 0x0a, 0x04, 0x45, 0x74, 0x63, 0x64, 0x12, 0x1c, 0x0a, 0x09,
0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x5e, 0x0a, 0x09, 0x5a, 0x6f,
0x6f, 0x4b, 0x65, 0x65, 0x70, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70,
0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0xb9, 0x03, 0x0a, 0x05, 0x4e,
0x61, 0x63, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12,
0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f,
0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,
0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76,
0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76,
0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x18,
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x63, 0x68, 0x65, 0x44, 0x69, 0x72, 0x12,
0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x6c, 0x6f, 0x67, 0x44, 0x69, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61,
0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x07, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61,
0x64, 0x4e, 0x75, 0x6d, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x62, 0x65, 0x61,
0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x62, 0x65, 0x61,
0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x17, 0x6e, 0x6f, 0x74,
0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x73,
0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x4c,
0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12,
0x35, 0x0a, 0x17, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f,
0x77, 0x68, 0x65, 0x6e, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08,
0x52, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x57, 0x68, 0x65,
0x6e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e,
0x65, 0x74, 0x65, 0x73, 0x1a, 0xca, 0x01, 0x0a, 0x06, 0x45, 0x75, 0x72, 0x65, 0x6b, 0x61, 0x12,
0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x48, 0x0a,
0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49,
0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x44, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65,
0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65,
0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a,
0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
0x68, 0x1a, 0xac, 0x01, 0x0a, 0x07, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x69, 0x73, 0x12, 0x18, 0x0a,
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x69,
0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65,
0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
0x1a, 0x2b, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x63, 0x6f, 0x6d, 0x62, 0x12,
0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x42, 0x23, 0x5a,
0x21, 0x6b, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x62, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61,
0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f,
0x6e, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_conf_v1_registry_proto_rawDescOnce sync.Once
file_conf_v1_registry_proto_rawDescData = file_conf_v1_registry_proto_rawDesc
)
func file_conf_v1_registry_proto_rawDescGZIP() []byte {
file_conf_v1_registry_proto_rawDescOnce.Do(func() {
file_conf_v1_registry_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_registry_proto_rawDescData)
})
return file_conf_v1_registry_proto_rawDescData
}
var file_conf_v1_registry_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_conf_v1_registry_proto_goTypes = []interface{}{
(*Registry)(nil), // 0: conf.Registry
(*Registry_Consul)(nil), // 1: conf.Registry.Consul
(*Registry_Etcd)(nil), // 2: conf.Registry.Etcd
(*Registry_ZooKeeper)(nil), // 3: conf.Registry.ZooKeeper
(*Registry_Nacos)(nil), // 4: conf.Registry.Nacos
(*Registry_Kubernetes)(nil), // 5: conf.Registry.Kubernetes
(*Registry_Eureka)(nil), // 6: conf.Registry.Eureka
(*Registry_Polaris)(nil), // 7: conf.Registry.Polaris
(*Registry_Servicecomb)(nil), // 8: conf.Registry.Servicecomb
(*durationpb.Duration)(nil), // 9: google.protobuf.Duration
}
var file_conf_v1_registry_proto_depIdxs = []int32{
1, // 0: conf.Registry.consul:type_name -> conf.Registry.Consul
2, // 1: conf.Registry.etcd:type_name -> conf.Registry.Etcd
3, // 2: conf.Registry.zookeeper:type_name -> conf.Registry.ZooKeeper
4, // 3: conf.Registry.nacos:type_name -> conf.Registry.Nacos
5, // 4: conf.Registry.kubernetes:type_name -> conf.Registry.Kubernetes
6, // 5: conf.Registry.eureka:type_name -> conf.Registry.Eureka
7, // 6: conf.Registry.polaris:type_name -> conf.Registry.Polaris
8, // 7: conf.Registry.servicecomb:type_name -> conf.Registry.Servicecomb
9, // 8: conf.Registry.ZooKeeper.timeout:type_name -> google.protobuf.Duration
9, // 9: conf.Registry.Nacos.timeout:type_name -> google.protobuf.Duration
9, // 10: conf.Registry.Nacos.beat_interval:type_name -> google.protobuf.Duration
9, // 11: conf.Registry.Eureka.heartbeat_interval:type_name -> google.protobuf.Duration
9, // 12: conf.Registry.Eureka.refresh_interval:type_name -> google.protobuf.Duration
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
}
func init() { file_conf_v1_registry_proto_init() }
func file_conf_v1_registry_proto_init() {
if File_conf_v1_registry_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_conf_v1_registry_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_Consul); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_Etcd); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_ZooKeeper); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_Nacos); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_Kubernetes); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_Eureka); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_Polaris); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_registry_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Registry_Servicecomb); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_registry_proto_rawDesc,
NumEnums: 0,
NumMessages: 9,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_registry_proto_goTypes,
DependencyIndexes: file_conf_v1_registry_proto_depIdxs,
MessageInfos: file_conf_v1_registry_proto_msgTypes,
}.Build()
File_conf_v1_registry_proto = out.File
file_conf_v1_registry_proto_rawDesc = nil
file_conf_v1_registry_proto_goTypes = nil
file_conf_v1_registry_proto_depIdxs = nil
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,783 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/server.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 服务器
type Server struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Rest *Server_REST `protobuf:"bytes,1,opt,name=rest,proto3" json:"rest,omitempty"` // REST服务
Grpc *Server_GRPC `protobuf:"bytes,2,opt,name=grpc,proto3" json:"grpc,omitempty"` // gRPC服务
Websocket *Server_Websocket `protobuf:"bytes,3,opt,name=websocket,proto3" json:"websocket,omitempty"` // Websocket服务
Mqtt *Server_Mqtt `protobuf:"bytes,4,opt,name=mqtt,proto3" json:"mqtt,omitempty"` // MQTT服务
Kafka *Server_Kafka `protobuf:"bytes,5,opt,name=kafka,proto3" json:"kafka,omitempty"` // Kafka服务
Rabbitmq *Server_RabbitMQ `protobuf:"bytes,6,opt,name=rabbitmq,proto3" json:"rabbitmq,omitempty"` // RabbitMQ服务
}
func (x *Server) Reset() {
*x = Server{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server) ProtoMessage() {}
func (x *Server) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server.ProtoReflect.Descriptor instead.
func (*Server) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0}
}
func (x *Server) GetRest() *Server_REST {
if x != nil {
return x.Rest
}
return nil
}
func (x *Server) GetGrpc() *Server_GRPC {
if x != nil {
return x.Grpc
}
return nil
}
func (x *Server) GetWebsocket() *Server_Websocket {
if x != nil {
return x.Websocket
}
return nil
}
func (x *Server) GetMqtt() *Server_Mqtt {
if x != nil {
return x.Mqtt
}
return nil
}
func (x *Server) GetKafka() *Server_Kafka {
if x != nil {
return x.Kafka
}
return nil
}
func (x *Server) GetRabbitmq() *Server_RabbitMQ {
if x != nil {
return x.Rabbitmq
}
return nil
}
// REST
type Server_REST struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // 网络
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` // 服务监听地址
Timeout *durationpb.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"` // 超时时间
Cors *Server_REST_CORS `protobuf:"bytes,4,opt,name=cors,proto3" json:"cors,omitempty"` // 服务监听地址
Middleware *Middleware `protobuf:"bytes,5,opt,name=middleware,proto3" json:"middleware,omitempty"` // 中间件
}
func (x *Server_REST) Reset() {
*x = Server_REST{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server_REST) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_REST) ProtoMessage() {}
func (x *Server_REST) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_REST.ProtoReflect.Descriptor instead.
func (*Server_REST) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Server_REST) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *Server_REST) GetAddr() string {
if x != nil {
return x.Addr
}
return ""
}
func (x *Server_REST) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *Server_REST) GetCors() *Server_REST_CORS {
if x != nil {
return x.Cors
}
return nil
}
func (x *Server_REST) GetMiddleware() *Middleware {
if x != nil {
return x.Middleware
}
return nil
}
// gPRC
type Server_GRPC struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // 网络
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` // 服务监听地址
Timeout *durationpb.Duration `protobuf:"bytes,3,opt,name=timeout,proto3" json:"timeout,omitempty"` // 超时时间
Middleware *Middleware `protobuf:"bytes,4,opt,name=middleware,proto3" json:"middleware,omitempty"`
}
func (x *Server_GRPC) Reset() {
*x = Server_GRPC{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server_GRPC) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_GRPC) ProtoMessage() {}
func (x *Server_GRPC) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_GRPC.ProtoReflect.Descriptor instead.
func (*Server_GRPC) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Server_GRPC) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *Server_GRPC) GetAddr() string {
if x != nil {
return x.Addr
}
return ""
}
func (x *Server_GRPC) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
func (x *Server_GRPC) GetMiddleware() *Middleware {
if x != nil {
return x.Middleware
}
return nil
}
// Websocket
type Server_Websocket struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // 网络样式http、https
Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` // 服务监听地址
Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` // 路径
Timeout *durationpb.Duration `protobuf:"bytes,4,opt,name=timeout,proto3" json:"timeout,omitempty"` // 超时时间
}
func (x *Server_Websocket) Reset() {
*x = Server_Websocket{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server_Websocket) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_Websocket) ProtoMessage() {}
func (x *Server_Websocket) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_Websocket.ProtoReflect.Descriptor instead.
func (*Server_Websocket) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Server_Websocket) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *Server_Websocket) GetAddr() string {
if x != nil {
return x.Addr
}
return ""
}
func (x *Server_Websocket) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *Server_Websocket) GetTimeout() *durationpb.Duration {
if x != nil {
return x.Timeout
}
return nil
}
// MQTT
type Server_Mqtt struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` // 对端网络地址
}
func (x *Server_Mqtt) Reset() {
*x = Server_Mqtt{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server_Mqtt) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_Mqtt) ProtoMessage() {}
func (x *Server_Mqtt) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_Mqtt.ProtoReflect.Descriptor instead.
func (*Server_Mqtt) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0, 3}
}
func (x *Server_Mqtt) GetAddr() string {
if x != nil {
return x.Addr
}
return ""
}
// Kafka
type Server_Kafka struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Addrs []string `protobuf:"bytes,1,rep,name=addrs,proto3" json:"addrs,omitempty"` // 对端网络地址
}
func (x *Server_Kafka) Reset() {
*x = Server_Kafka{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server_Kafka) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_Kafka) ProtoMessage() {}
func (x *Server_Kafka) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_Kafka.ProtoReflect.Descriptor instead.
func (*Server_Kafka) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0, 4}
}
func (x *Server_Kafka) GetAddrs() []string {
if x != nil {
return x.Addrs
}
return nil
}
// RabbitMQ
type Server_RabbitMQ struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Addrs []string `protobuf:"bytes,1,rep,name=addrs,proto3" json:"addrs,omitempty"` // 对端网络地址
}
func (x *Server_RabbitMQ) Reset() {
*x = Server_RabbitMQ{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server_RabbitMQ) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_RabbitMQ) ProtoMessage() {}
func (x *Server_RabbitMQ) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_RabbitMQ.ProtoReflect.Descriptor instead.
func (*Server_RabbitMQ) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0, 5}
}
func (x *Server_RabbitMQ) GetAddrs() []string {
if x != nil {
return x.Addrs
}
return nil
}
type Server_REST_CORS struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Headers []string `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"` //
Methods []string `protobuf:"bytes,2,rep,name=methods,proto3" json:"methods,omitempty"` //
Origins []string `protobuf:"bytes,3,rep,name=origins,proto3" json:"origins,omitempty"` //
}
func (x *Server_REST_CORS) Reset() {
*x = Server_REST_CORS{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_server_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Server_REST_CORS) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Server_REST_CORS) ProtoMessage() {}
func (x *Server_REST_CORS) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_server_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Server_REST_CORS.ProtoReflect.Descriptor instead.
func (*Server_REST_CORS) Descriptor() ([]byte, []int) {
return file_conf_v1_server_proto_rawDescGZIP(), []int{0, 0, 0}
}
func (x *Server_REST_CORS) GetHeaders() []string {
if x != nil {
return x.Headers
}
return nil
}
func (x *Server_REST_CORS) GetMethods() []string {
if x != nil {
return x.Methods
}
return nil
}
func (x *Server_REST_CORS) GetOrigins() []string {
if x != nil {
return x.Origins
}
return nil
}
var File_conf_v1_server_proto protoreflect.FileDescriptor
var file_conf_v1_server_proto_rawDesc = []byte{
0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x1a, 0x1e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x63, 0x6f,
0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x07, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x12, 0x25, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x45,
0x53, 0x54, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x52, 0x50, 0x43, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63, 0x12,
0x34, 0x0a, 0x09, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x09, 0x77, 0x65, 0x62, 0x73,
0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x4d, 0x71, 0x74, 0x74, 0x52, 0x04, 0x6d, 0x71, 0x74, 0x74, 0x12, 0x28, 0x0a, 0x05,
0x6b, 0x61, 0x66, 0x6b, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f,
0x6e, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x4b, 0x61, 0x66, 0x6b, 0x61, 0x52,
0x05, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x12, 0x31, 0x0a, 0x08, 0x72, 0x61, 0x62, 0x62, 0x69, 0x74,
0x6d, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x61, 0x62, 0x62, 0x69, 0x74, 0x4d, 0x51, 0x52,
0x08, 0x72, 0x61, 0x62, 0x62, 0x69, 0x74, 0x6d, 0x71, 0x1a, 0x9d, 0x02, 0x0a, 0x04, 0x52, 0x45,
0x53, 0x54, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04,
0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72,
0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69,
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x52, 0x45, 0x53, 0x54, 0x2e, 0x43, 0x4f, 0x52, 0x53, 0x52, 0x04, 0x63, 0x6f, 0x72,
0x73, 0x12, 0x30, 0x0a, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x2e, 0x4d, 0x69, 0x64,
0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77,
0x61, 0x72, 0x65, 0x1a, 0x54, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x68,
0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65,
0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73,
0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12,
0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x1a, 0x9b, 0x01, 0x0a, 0x04, 0x47, 0x52,
0x50, 0x43, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04,
0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72,
0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69,
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x30, 0x0a, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77,
0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x64,
0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x1a, 0x82, 0x01, 0x0a, 0x09, 0x57, 0x65, 0x62, 0x73,
0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12,
0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61,
0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f,
0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x1a, 0x0a, 0x04,
0x4d, 0x71, 0x74, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x1a, 0x1d, 0x0a, 0x05, 0x4b, 0x61, 0x66, 0x6b,
0x61, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x1a, 0x20, 0x0a, 0x08, 0x52, 0x61, 0x62, 0x62, 0x69,
0x74, 0x4d, 0x51, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61,
0x74, 0x6f, 0x73, 0x2d, 0x62, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_conf_v1_server_proto_rawDescOnce sync.Once
file_conf_v1_server_proto_rawDescData = file_conf_v1_server_proto_rawDesc
)
func file_conf_v1_server_proto_rawDescGZIP() []byte {
file_conf_v1_server_proto_rawDescOnce.Do(func() {
file_conf_v1_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_server_proto_rawDescData)
})
return file_conf_v1_server_proto_rawDescData
}
var file_conf_v1_server_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_conf_v1_server_proto_goTypes = []interface{}{
(*Server)(nil), // 0: conf.Server
(*Server_REST)(nil), // 1: conf.Server.REST
(*Server_GRPC)(nil), // 2: conf.Server.GRPC
(*Server_Websocket)(nil), // 3: conf.Server.Websocket
(*Server_Mqtt)(nil), // 4: conf.Server.Mqtt
(*Server_Kafka)(nil), // 5: conf.Server.Kafka
(*Server_RabbitMQ)(nil), // 6: conf.Server.RabbitMQ
(*Server_REST_CORS)(nil), // 7: conf.Server.REST.CORS
(*durationpb.Duration)(nil), // 8: google.protobuf.Duration
(*Middleware)(nil), // 9: conf.Middleware
}
var file_conf_v1_server_proto_depIdxs = []int32{
1, // 0: conf.Server.rest:type_name -> conf.Server.REST
2, // 1: conf.Server.grpc:type_name -> conf.Server.GRPC
3, // 2: conf.Server.websocket:type_name -> conf.Server.Websocket
4, // 3: conf.Server.mqtt:type_name -> conf.Server.Mqtt
5, // 4: conf.Server.kafka:type_name -> conf.Server.Kafka
6, // 5: conf.Server.rabbitmq:type_name -> conf.Server.RabbitMQ
8, // 6: conf.Server.REST.timeout:type_name -> google.protobuf.Duration
7, // 7: conf.Server.REST.cors:type_name -> conf.Server.REST.CORS
9, // 8: conf.Server.REST.middleware:type_name -> conf.Middleware
8, // 9: conf.Server.GRPC.timeout:type_name -> google.protobuf.Duration
9, // 10: conf.Server.GRPC.middleware:type_name -> conf.Middleware
8, // 11: conf.Server.Websocket.timeout:type_name -> google.protobuf.Duration
12, // [12:12] is the sub-list for method output_type
12, // [12:12] is the sub-list for method input_type
12, // [12:12] is the sub-list for extension type_name
12, // [12:12] is the sub-list for extension extendee
0, // [0:12] is the sub-list for field type_name
}
func init() { file_conf_v1_server_proto_init() }
func file_conf_v1_server_proto_init() {
if File_conf_v1_server_proto != nil {
return
}
file_conf_v1_middleware_proto_init()
if !protoimpl.UnsafeEnabled {
file_conf_v1_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server_REST); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server_GRPC); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server_Websocket); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server_Mqtt); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server_Kafka); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_server_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server_RabbitMQ); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_conf_v1_server_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Server_REST_CORS); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_server_proto_rawDesc,
NumEnums: 0,
NumMessages: 8,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_server_proto_goTypes,
DependencyIndexes: file_conf_v1_server_proto_depIdxs,
MessageInfos: file_conf_v1_server_proto_msgTypes,
}.Build()
File_conf_v1_server_proto = out.File
file_conf_v1_server_proto_rawDesc = nil
file_conf_v1_server_proto_goTypes = nil
file_conf_v1_server_proto_depIdxs = nil
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,173 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc (unknown)
// source: conf/v1/tracer.proto
package conf
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 链路追踪
type Tracer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Batcher string `protobuf:"bytes,1,opt,name=batcher,proto3" json:"batcher,omitempty"` // jaeger或者zipkin
Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"` // 端口
Sampler float64 `protobuf:"fixed64,3,opt,name=sampler,proto3" json:"sampler,omitempty"` // 采样率默认1.0
Env string `protobuf:"bytes,4,opt,name=env,proto3" json:"env,omitempty"` // 运行环境dev、debug、product
}
func (x *Tracer) Reset() {
*x = Tracer{}
if protoimpl.UnsafeEnabled {
mi := &file_conf_v1_tracer_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Tracer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Tracer) ProtoMessage() {}
func (x *Tracer) ProtoReflect() protoreflect.Message {
mi := &file_conf_v1_tracer_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Tracer.ProtoReflect.Descriptor instead.
func (*Tracer) Descriptor() ([]byte, []int) {
return file_conf_v1_tracer_proto_rawDescGZIP(), []int{0}
}
func (x *Tracer) GetBatcher() string {
if x != nil {
return x.Batcher
}
return ""
}
func (x *Tracer) GetEndpoint() string {
if x != nil {
return x.Endpoint
}
return ""
}
func (x *Tracer) GetSampler() float64 {
if x != nil {
return x.Sampler
}
return 0
}
func (x *Tracer) GetEnv() string {
if x != nil {
return x.Env
}
return ""
}
var File_conf_v1_tracer_proto protoreflect.FileDescriptor
var file_conf_v1_tracer_proto_rawDesc = []byte{
0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0x6a, 0x0a, 0x06,
0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07,
0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73,
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x42, 0x23, 0x5a, 0x21, 0x6b, 0x72, 0x61, 0x74,
0x6f, 0x73, 0x2d, 0x62, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f,
0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_conf_v1_tracer_proto_rawDescOnce sync.Once
file_conf_v1_tracer_proto_rawDescData = file_conf_v1_tracer_proto_rawDesc
)
func file_conf_v1_tracer_proto_rawDescGZIP() []byte {
file_conf_v1_tracer_proto_rawDescOnce.Do(func() {
file_conf_v1_tracer_proto_rawDescData = protoimpl.X.CompressGZIP(file_conf_v1_tracer_proto_rawDescData)
})
return file_conf_v1_tracer_proto_rawDescData
}
var file_conf_v1_tracer_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_conf_v1_tracer_proto_goTypes = []interface{}{
(*Tracer)(nil), // 0: conf.Tracer
}
var file_conf_v1_tracer_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_conf_v1_tracer_proto_init() }
func file_conf_v1_tracer_proto_init() {
if File_conf_v1_tracer_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_conf_v1_tracer_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Tracer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_conf_v1_tracer_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_conf_v1_tracer_proto_goTypes,
DependencyIndexes: file_conf_v1_tracer_proto_depIdxs,
MessageInfos: file_conf_v1_tracer_proto_msgTypes,
}.Build()
File_conf_v1_tracer_proto = out.File
file_conf_v1_tracer_proto_rawDesc = nil
file_conf_v1_tracer_proto_goTypes = nil
file_conf_v1_tracer_proto_depIdxs = nil
}

View File

@@ -0,0 +1,142 @@
// Code generated by protoc-gen-validate. DO NOT EDIT.
// source: conf/v1/tracer.proto
package conf
import (
"bytes"
"errors"
"fmt"
"net"
"net/mail"
"net/url"
"regexp"
"sort"
"strings"
"time"
"unicode/utf8"
"google.golang.org/protobuf/types/known/anypb"
)
// ensure the imports are used
var (
_ = bytes.MinRead
_ = errors.New("")
_ = fmt.Print
_ = utf8.UTFMax
_ = (*regexp.Regexp)(nil)
_ = (*strings.Reader)(nil)
_ = net.IPv4len
_ = time.Duration(0)
_ = (*url.URL)(nil)
_ = (*mail.Address)(nil)
_ = anypb.Any{}
_ = sort.Sort
)
// Validate checks the field values on Tracer with the rules defined in the
// proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
func (m *Tracer) Validate() error {
return m.validate(false)
}
// ValidateAll checks the field values on Tracer with the rules defined in the
// proto definition for this message. If any rules are violated, the result is
// a list of violation errors wrapped in TracerMultiError, or nil if none found.
func (m *Tracer) ValidateAll() error {
return m.validate(true)
}
func (m *Tracer) validate(all bool) error {
if m == nil {
return nil
}
var errors []error
// no validation rules for Batcher
// no validation rules for Endpoint
// no validation rules for Sampler
// no validation rules for Env
if len(errors) > 0 {
return TracerMultiError(errors)
}
return nil
}
// TracerMultiError is an error wrapping multiple validation errors returned by
// Tracer.ValidateAll() if the designated constraints aren't met.
type TracerMultiError []error
// Error returns a concatenation of all the error messages it wraps.
func (m TracerMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
}
return strings.Join(msgs, "; ")
}
// AllErrors returns a list of validation violation errors.
func (m TracerMultiError) AllErrors() []error { return m }
// TracerValidationError is the validation error returned by Tracer.Validate if
// the designated constraints aren't met.
type TracerValidationError struct {
field string
reason string
cause error
key bool
}
// Field function returns field value.
func (e TracerValidationError) Field() string { return e.field }
// Reason function returns reason value.
func (e TracerValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
func (e TracerValidationError) Cause() error { return e.cause }
// Key function returns key value.
func (e TracerValidationError) Key() bool { return e.key }
// ErrorName returns error name.
func (e TracerValidationError) ErrorName() string { return "TracerValidationError" }
// Error satisfies the builtin error interface
func (e TracerValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
}
key := ""
if e.key {
key = "key for "
}
return fmt.Sprintf(
"invalid %sTracer.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
var _ error = TracerValidationError{}
var _ interface {
Field() string
Reason() string
Key() bool
Cause() error
ErrorName() string
} = TracerValidationError{}

179
go.mod Normal file
View File

@@ -0,0 +1,179 @@
module github.com/tx7do/kratos-bootstrap
go 1.20
require (
github.com/go-chassis/sc-client v0.7.0
github.com/go-kratos/aegis v0.2.0
github.com/go-kratos/kratos/contrib/config/apollo/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/config/consul/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/config/etcd/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/config/kubernetes/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/config/nacos/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/config/polaris/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/log/aliyun/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/log/fluent/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/log/logrus/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/log/tencent/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/log/zap/v2 v2.0.0-20230516054017-1d50f502622a
github.com/go-kratos/kratos/contrib/registry/consul/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/registry/etcd/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/registry/eureka/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/registry/kubernetes/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/registry/nacos/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/registry/polaris/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/registry/servicecomb/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/contrib/registry/zookeeper/v2 v2.0.0-20230519061918-96480c11ee42
github.com/go-kratos/kratos/v2 v2.6.2
github.com/go-zookeeper/zk v1.0.3
github.com/google/subcommands v1.2.0
github.com/gorilla/handlers v1.5.1
github.com/hashicorp/consul/api v1.20.0
github.com/minio/minio-go/v7 v7.0.53
github.com/nacos-group/nacos-sdk-go v1.1.4
github.com/olekukonko/tablewriter v0.0.5
github.com/polarismesh/polaris-go v1.4.3
github.com/sirupsen/logrus v1.9.2
github.com/spf13/cobra v1.7.0
github.com/stretchr/testify v1.8.3
go.etcd.io/etcd/client/v3 v3.5.9
go.opentelemetry.io/otel v1.15.1
go.opentelemetry.io/otel/exporters/jaeger v1.15.1
go.opentelemetry.io/otel/exporters/zipkin v1.15.1
go.opentelemetry.io/otel/sdk v1.15.1
go.uber.org/zap v1.24.0
golang.org/x/tools v0.7.0
google.golang.org/grpc v1.54.0
google.golang.org/protobuf v1.30.0
k8s.io/client-go v0.27.2
)
require (
github.com/aliyun/alibaba-cloud-sdk-go v1.61.18 // indirect
github.com/aliyun/aliyun-log-go-sdk v0.1.44 // indirect
github.com/apolloconfig/agollo/v4 v4.3.0 // indirect
github.com/armon/go-metrics v0.3.10 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/buger/jsonparser v1.1.1 // indirect
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
github.com/cenkalti/backoff/v4 v4.1.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/coreos/go-semver v0.3.0 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set v1.7.1 // indirect
github.com/dlclark/regexp2 v1.7.0 // indirect
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
github.com/fatih/color v1.13.0 // indirect
github.com/felixge/httpsnoop v1.0.1 // indirect
github.com/fluent/fluent-logger-golang v1.9.0 // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
github.com/go-chassis/cari v0.6.0 // indirect
github.com/go-chassis/foundation v0.4.0 // indirect
github.com/go-chassis/openlog v1.1.3 // indirect
github.com/go-errors/errors v1.0.1 // indirect
github.com/go-kit/kit v0.10.0 // indirect
github.com/go-logfmt/logfmt v0.5.1 // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.1 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
github.com/go-playground/form/v4 v4.2.0 // indirect
github.com/gofrs/uuid v4.2.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/gnostic v0.5.7-v3refs // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/gofuzz v1.1.0 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/gorilla/websocket v1.4.3-0.20210424162022-e8629af678b7 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-hclog v1.2.0 // indirect
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
github.com/hashicorp/golang-lru v0.5.4 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/serf v0.10.1 // indirect
github.com/imdario/mergo v0.3.12 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/karlseguin/ccache/v2 v2.0.8 // indirect
github.com/klauspost/compress v1.16.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/lufia/plan9stats v0.0.0-20230110061619-bbe2e5e100de // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/mattn/go-runewidth v0.0.9 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/minio/md5-simd v1.1.2 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.4.3 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/natefinch/lumberjack v2.0.0+incompatible // indirect
github.com/openzipkin/zipkin-go v0.4.1 // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
github.com/pelletier/go-toml v1.9.4 // indirect
github.com/pelletier/go-toml/v2 v2.0.0-beta.8 // indirect
github.com/philhofer/fwd v1.1.1 // indirect
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/polarismesh/specification v1.2.1 // indirect
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect
github.com/prometheus/client_golang v1.12.2 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.35.0 // indirect
github.com/prometheus/procfs v0.7.3 // indirect
github.com/shirou/gopsutil/v3 v3.23.2 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/spf13/afero v1.9.2 // indirect
github.com/spf13/cast v1.4.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.11.0 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/tencentcloud/tencentcloud-cls-sdk-go v1.0.2 // indirect
github.com/tinylib/msgp v1.1.6 // indirect
github.com/tklauser/go-sysconf v0.3.11 // indirect
github.com/tklauser/numcpus v0.6.0 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
go.etcd.io/etcd/api/v3 v3.5.9 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
go.opentelemetry.io/otel/trace v1.15.1 // indirect
go.uber.org/atomic v1.9.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
golang.org/x/mod v0.9.0 // indirect
golang.org/x/net v0.8.0 // indirect
golang.org/x/oauth2 v0.4.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.7.0 // indirect
golang.org/x/term v0.6.0 // indirect
golang.org/x/text v0.8.0 // indirect
golang.org/x/time v0.1.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.27.2 // indirect
k8s.io/apimachinery v0.27.2 // indirect
k8s.io/klog/v2 v2.90.1 // indirect
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)

2257
go.sum Normal file

File diff suppressed because it is too large Load Diff

104
grpc.go Normal file
View File

@@ -0,0 +1,104 @@
package bootstrap
import (
"context"
"time"
"google.golang.org/grpc"
"github.com/go-kratos/aegis/ratelimit"
"github.com/go-kratos/aegis/ratelimit/bbr"
"github.com/go-kratos/kratos/v2/log"
"github.com/go-kratos/kratos/v2/middleware"
midRateLimit "github.com/go-kratos/kratos/v2/middleware/ratelimit"
"github.com/go-kratos/kratos/v2/middleware/recovery"
"github.com/go-kratos/kratos/v2/middleware/tracing"
"github.com/go-kratos/kratos/v2/middleware/validate"
"github.com/go-kratos/kratos/v2/registry"
kratosGrpc "github.com/go-kratos/kratos/v2/transport/grpc"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
const defaultTimeout = 5 * time.Second
// CreateGrpcClient 创建GRPC客户端
func CreateGrpcClient(ctx context.Context, r registry.Discovery, serviceName string, cfg *conf.Bootstrap, m ...middleware.Middleware) grpc.ClientConnInterface {
endpoint := "discovery:///" + serviceName
var ms []middleware.Middleware
timeout := defaultTimeout
if cfg.Client != nil && cfg.Client.Grpc != nil {
if cfg.Client.Grpc.Timeout != nil {
timeout = cfg.Client.Grpc.Timeout.AsDuration()
}
if cfg.Client.Grpc.Middleware != nil {
if cfg.Client.Grpc.Middleware.GetEnableRecovery() {
ms = append(ms, recovery.Recovery())
}
if cfg.Client.Grpc.Middleware.GetEnableTracing() {
ms = append(ms, tracing.Client())
}
if cfg.Client.Grpc.Middleware.GetEnableValidate() {
ms = append(ms, validate.Validator())
}
}
}
ms = append(ms, m...)
conn, err := kratosGrpc.DialInsecure(
ctx,
kratosGrpc.WithEndpoint(endpoint),
kratosGrpc.WithDiscovery(r),
kratosGrpc.WithTimeout(timeout),
kratosGrpc.WithMiddleware(ms...),
)
if err != nil {
log.Fatalf("dial grpc client [%s] failed: %s", serviceName, err.Error())
}
return conn
}
// CreateGrpcServer 创建GRPC服务端
func CreateGrpcServer(cfg *conf.Bootstrap, m ...middleware.Middleware) *kratosGrpc.Server {
var opts []kratosGrpc.ServerOption
var ms []middleware.Middleware
if cfg.Server != nil && cfg.Server.Grpc != nil && cfg.Server.Grpc.Middleware != nil {
if cfg.Server.Grpc.Middleware.GetEnableRecovery() {
ms = append(ms, recovery.Recovery())
}
if cfg.Server.Grpc.Middleware.GetEnableTracing() {
ms = append(ms, tracing.Server())
}
if cfg.Server.Grpc.Middleware.GetEnableValidate() {
ms = append(ms, validate.Validator())
}
if cfg.Server.Grpc.Middleware.GetEnableCircuitBreaker() {
}
if cfg.Server.Grpc.Middleware.Limiter != nil {
var limiter ratelimit.Limiter
switch cfg.Server.Grpc.Middleware.Limiter.GetName() {
case "bbr":
limiter = bbr.NewLimiter()
}
ms = append(ms, midRateLimit.Server(midRateLimit.WithLimiter(limiter)))
}
}
ms = append(ms, m...)
opts = append(opts, kratosGrpc.Middleware(ms...))
if cfg.Server.Grpc.Network != "" {
opts = append(opts, kratosGrpc.Network(cfg.Server.Grpc.Network))
}
if cfg.Server.Grpc.Addr != "" {
opts = append(opts, kratosGrpc.Address(cfg.Server.Grpc.Addr))
}
if cfg.Server.Grpc.Timeout != nil {
opts = append(opts, kratosGrpc.Timeout(cfg.Server.Grpc.Timeout.AsDuration()))
}
return kratosGrpc.NewServer(opts...)
}

178
logger.go Normal file
View File

@@ -0,0 +1,178 @@
package bootstrap
import (
"os"
"github.com/sirupsen/logrus"
aliyunLogger "github.com/go-kratos/kratos/contrib/log/aliyun/v2"
fluentLogger "github.com/go-kratos/kratos/contrib/log/fluent/v2"
logrusLogger "github.com/go-kratos/kratos/contrib/log/logrus/v2"
tencentLogger "github.com/go-kratos/kratos/contrib/log/tencent/v2"
zapLogger "github.com/go-kratos/kratos/contrib/log/zap/v2"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"github.com/go-kratos/kratos/v2/log"
"github.com/go-kratos/kratos/v2/middleware/tracing"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
type LoggerType string
const (
LoggerTypeStd LoggerType = "std"
LoggerTypeFluent LoggerType = "fluent"
LoggerTypeLogrus LoggerType = "logrus"
LoggerTypeZap LoggerType = "zap"
LoggerTypeAliyun LoggerType = "aliyun"
LoggerTypeTencent LoggerType = "tencent"
)
// NewLoggerProvider 创建一个新的日志记录器提供者
func NewLoggerProvider(cfg *conf.Logger, serviceInfo *ServiceInfo) log.Logger {
l := NewLogger(cfg)
return log.With(
l,
"service.id", serviceInfo.Id,
"service.name", serviceInfo.Name,
"service.version", serviceInfo.Version,
"ts", log.DefaultTimestamp,
"caller", log.DefaultCaller,
"trace_id", tracing.TraceID(),
"span_id", tracing.SpanID(),
)
}
// NewLogger 创建一个新的日志记录器
func NewLogger(cfg *conf.Logger) log.Logger {
if cfg == nil {
return NewStdLogger()
}
switch LoggerType(cfg.Type) {
default:
fallthrough
case LoggerTypeStd:
return NewStdLogger()
case LoggerTypeFluent:
return NewFluentLogger(cfg)
case LoggerTypeZap:
return NewZapLogger(cfg)
case LoggerTypeLogrus:
return NewLogrusLogger(cfg)
case LoggerTypeAliyun:
return NewAliyunLogger(cfg)
case LoggerTypeTencent:
return NewTencentLogger(cfg)
}
}
// NewStdLogger 创建一个新的日志记录器 - Kratos内置控制台输出
func NewStdLogger() log.Logger {
l := log.NewStdLogger(os.Stdout)
return l
}
// NewZapLogger 创建一个新的日志记录器 - Zap
func NewZapLogger(cfg *conf.Logger) log.Logger {
encoderConfig := zap.NewProductionEncoderConfig()
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
encoderConfig.TimeKey = "time"
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
encoderConfig.EncodeDuration = zapcore.SecondsDurationEncoder
encoderConfig.EncodeCaller = zapcore.ShortCallerEncoder
jsonEncoder := zapcore.NewJSONEncoder(encoderConfig)
lumberJackLogger := &lumberjack.Logger{
Filename: cfg.Zap.Filename,
MaxSize: int(cfg.Zap.MaxSize),
MaxBackups: int(cfg.Zap.MaxBackups),
MaxAge: int(cfg.Zap.MaxAge),
}
writeSyncer := zapcore.AddSync(lumberJackLogger)
var lvl = new(zapcore.Level)
if err := lvl.UnmarshalText([]byte(cfg.Zap.Level)); err != nil {
return nil
}
core := zapcore.NewCore(jsonEncoder, writeSyncer, lvl)
logger := zap.New(core).WithOptions()
wrapped := zapLogger.NewLogger(logger)
return wrapped
}
// NewLogrusLogger 创建一个新的日志记录器 - Logrus
func NewLogrusLogger(cfg *conf.Logger) log.Logger {
loggerLevel, err := logrus.ParseLevel(cfg.Logrus.Level)
if err != nil {
loggerLevel = logrus.InfoLevel
}
var loggerFormatter logrus.Formatter
switch cfg.Logrus.Formatter {
default:
fallthrough
case "text":
loggerFormatter = &logrus.TextFormatter{
DisableColors: cfg.Logrus.DisableColors,
DisableTimestamp: cfg.Logrus.DisableTimestamp,
TimestampFormat: cfg.Logrus.TimestampFormat,
}
break
case "json":
loggerFormatter = &logrus.JSONFormatter{
DisableTimestamp: cfg.Logrus.DisableTimestamp,
TimestampFormat: cfg.Logrus.TimestampFormat,
}
break
}
logger := logrus.New()
logger.Level = loggerLevel
logger.Formatter = loggerFormatter
wrapped := logrusLogger.NewLogger(logger)
return wrapped
}
// NewFluentLogger 创建一个新的日志记录器 - Fluent
func NewFluentLogger(cfg *conf.Logger) log.Logger {
wrapped, err := fluentLogger.NewLogger(cfg.Fluent.Endpoint)
if err != nil {
panic("create fluent logger failed")
return nil
}
return wrapped
}
// NewAliyunLogger 创建一个新的日志记录器 - Aliyun
func NewAliyunLogger(cfg *conf.Logger) log.Logger {
wrapped := aliyunLogger.NewAliyunLog(
aliyunLogger.WithProject(cfg.Aliyun.Project),
aliyunLogger.WithEndpoint(cfg.Aliyun.Endpoint),
aliyunLogger.WithAccessKey(cfg.Aliyun.AccessKey),
aliyunLogger.WithAccessSecret(cfg.Aliyun.AccessSecret),
)
return wrapped
}
// NewTencentLogger 创建一个新的日志记录器 - Tencent
func NewTencentLogger(cfg *conf.Logger) log.Logger {
wrapped, err := tencentLogger.NewLogger(
tencentLogger.WithTopicID(cfg.Tencent.TopicId),
tencentLogger.WithEndpoint(cfg.Tencent.Endpoint),
tencentLogger.WithAccessKey(cfg.Tencent.AccessKey),
tencentLogger.WithAccessSecret(cfg.Tencent.AccessSecret),
)
if err != nil {
panic(err)
return nil
}
return wrapped
}

23
oss.go Normal file
View File

@@ -0,0 +1,23 @@
package bootstrap
import (
"github.com/go-kratos/kratos/v2/log"
"github.com/minio/minio-go/v7/pkg/credentials"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
func NewMinIoClient(conf *conf.OSS) *minio.Client {
impl, err := minio.New(conf.Minio.Endpoint,
&minio.Options{
Creds: credentials.NewStaticV4(conf.Minio.AccessKey, conf.Minio.SecretKey, conf.Minio.Token),
Secure: conf.Minio.UseSsl,
},
)
if err != nil {
log.Fatal("failed opening connection to minio", err)
return nil
}
return impl
}

26
redis.go Normal file
View File

@@ -0,0 +1,26 @@
package bootstrap
import (
"github.com/go-kratos/kratos/v2/log"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
// NewRedisClient 创建Redis客户端
func NewRedisClient(conf *conf.Data) *redis.Client {
rdb := redis.NewClient(&redis.Options{
Addr: conf.Redis.Addr,
Password: conf.Redis.Password,
DB: int(conf.Redis.Db),
DialTimeout: conf.Redis.DialTimeout.AsDuration(),
WriteTimeout: conf.Redis.WriteTimeout.AsDuration(),
ReadTimeout: conf.Redis.ReadTimeout.AsDuration(),
})
if rdb == nil {
log.Fatalf("failed opening connection to redis")
return nil
}
rdb.AddHook(redisotel.NewTracingHook())
return rdb
}

289
registry.go Normal file
View File

@@ -0,0 +1,289 @@
package bootstrap
import (
"github.com/go-kratos/kratos/v2/log"
"github.com/go-kratos/kratos/v2/registry"
"path/filepath"
// etcd
etcdKratos "github.com/go-kratos/kratos/contrib/registry/etcd/v2"
etcdClient "go.etcd.io/etcd/client/v3"
// consul
consulKratos "github.com/go-kratos/kratos/contrib/registry/consul/v2"
consulClient "github.com/hashicorp/consul/api"
// eureka
eurekaKratos "github.com/go-kratos/kratos/contrib/registry/eureka/v2"
// nacos
nacosKratos "github.com/go-kratos/kratos/contrib/registry/nacos/v2"
nacosClients "github.com/nacos-group/nacos-sdk-go/clients"
nacosConstant "github.com/nacos-group/nacos-sdk-go/common/constant"
nacosVo "github.com/nacos-group/nacos-sdk-go/vo"
// zookeeper
zookeeperKratos "github.com/go-kratos/kratos/contrib/registry/zookeeper/v2"
"github.com/go-zookeeper/zk"
// kubernetes
k8sRegistry "github.com/go-kratos/kratos/contrib/registry/kubernetes/v2"
k8s "k8s.io/client-go/kubernetes"
k8sRest "k8s.io/client-go/rest"
k8sTools "k8s.io/client-go/tools/clientcmd"
k8sUtil "k8s.io/client-go/util/homedir"
// polaris
polarisKratos "github.com/go-kratos/kratos/contrib/registry/polaris/v2"
polarisApi "github.com/polarismesh/polaris-go/api"
polarisModel "github.com/polarismesh/polaris-go/pkg/model"
// servicecomb
servicecombClient "github.com/go-chassis/sc-client"
servicecombKratos "github.com/go-kratos/kratos/contrib/registry/servicecomb/v2"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
type RegistryType string
const (
RegistryTypeConsul RegistryType = "consul"
LoggerTypeEtcd RegistryType = "etcd"
LoggerTypeZooKeeper RegistryType = "zookeeper"
LoggerTypeNacos RegistryType = "nacos"
LoggerTypeKubernetes RegistryType = "kubernetes"
LoggerTypeEureka RegistryType = "eureka"
LoggerTypePolaris RegistryType = "polaris"
LoggerTypeServicecomb RegistryType = "servicecomb"
)
// NewRegistry 创建一个注册客户端
func NewRegistry(cfg *conf.Registry) registry.Registrar {
if cfg == nil {
return nil
}
switch RegistryType(cfg.Type) {
case RegistryTypeConsul:
return NewConsulRegistry(cfg)
case LoggerTypeEtcd:
return NewEtcdRegistry(cfg)
case LoggerTypeZooKeeper:
return NewZooKeeperRegistry(cfg)
case LoggerTypeNacos:
return NewNacosRegistry(cfg)
case LoggerTypeKubernetes:
return NewKubernetesRegistry(cfg)
case LoggerTypeEureka:
return NewEurekaRegistry(cfg)
case LoggerTypePolaris:
return NewPolarisRegistry(cfg)
case LoggerTypeServicecomb:
return NewServicecombRegistry(cfg)
}
return nil
}
// NewDiscovery 创建一个发现客户端
func NewDiscovery(cfg *conf.Registry) registry.Discovery {
if cfg == nil {
return nil
}
switch RegistryType(cfg.Type) {
case RegistryTypeConsul:
return NewConsulRegistry(cfg)
case LoggerTypeEtcd:
return NewEtcdRegistry(cfg)
case LoggerTypeZooKeeper:
return NewZooKeeperRegistry(cfg)
case LoggerTypeNacos:
return NewNacosRegistry(cfg)
case LoggerTypeKubernetes:
return NewKubernetesRegistry(cfg)
case LoggerTypeEureka:
return NewEurekaRegistry(cfg)
case LoggerTypePolaris:
return NewPolarisRegistry(cfg)
case LoggerTypeServicecomb:
return NewServicecombRegistry(cfg)
}
return nil
}
// NewConsulRegistry 创建一个注册发现客户端 - Consul
func NewConsulRegistry(c *conf.Registry) *consulKratos.Registry {
cfg := consulClient.DefaultConfig()
cfg.Address = c.Consul.Address
cfg.Scheme = c.Consul.Scheme
var cli *consulClient.Client
var err error
if cli, err = consulClient.NewClient(cfg); err != nil {
log.Fatal(err)
}
reg := consulKratos.New(cli, consulKratos.WithHealthCheck(c.Consul.HealthCheck))
return reg
}
// NewEtcdRegistry 创建一个注册发现客户端 - Etcd
func NewEtcdRegistry(c *conf.Registry) *etcdKratos.Registry {
cfg := etcdClient.Config{
Endpoints: c.Etcd.Endpoints,
}
var err error
var cli *etcdClient.Client
if cli, err = etcdClient.New(cfg); err != nil {
log.Fatal(err)
}
reg := etcdKratos.New(cli)
return reg
}
// NewZooKeeperRegistry 创建一个注册发现客户端 - ZooKeeper
func NewZooKeeperRegistry(c *conf.Registry) *zookeeperKratos.Registry {
conn, _, err := zk.Connect(c.Zookeeper.Endpoints, c.Zookeeper.Timeout.AsDuration())
if err != nil {
log.Fatal(err)
}
reg := zookeeperKratos.New(conn)
if err != nil {
log.Fatal(err)
}
return reg
}
// NewNacosRegistry 创建一个注册发现客户端 - Nacos
func NewNacosRegistry(c *conf.Registry) *nacosKratos.Registry {
srvConf := []nacosConstant.ServerConfig{
*nacosConstant.NewServerConfig(c.Nacos.Address, c.Nacos.Port),
}
cliConf := nacosConstant.ClientConfig{
NamespaceId: c.Nacos.NamespaceId,
TimeoutMs: uint64(c.Nacos.Timeout.AsDuration().Milliseconds()), // http请求超时时间单位毫秒
BeatInterval: c.Nacos.BeatInterval.AsDuration().Milliseconds(), // 心跳间隔时间,单位毫秒
UpdateThreadNum: int(c.Nacos.UpdateThreadNum), // 更新服务的线程数
LogLevel: c.Nacos.LogLevel,
CacheDir: c.Nacos.CacheDir, // 缓存目录
LogDir: c.Nacos.LogDir, // 日志目录
NotLoadCacheAtStart: c.Nacos.NotLoadCacheAtStart, // 在启动时不读取本地缓存数据true--不读取false--读取
UpdateCacheWhenEmpty: c.Nacos.UpdateCacheWhenEmpty, // 当服务列表为空时是否更新本地缓存true--更新,false--不更新
}
cli, err := nacosClients.NewNamingClient(
nacosVo.NacosClientParam{
ClientConfig: &cliConf,
ServerConfigs: srvConf,
},
)
if err != nil {
log.Fatal(err)
}
reg := nacosKratos.New(cli)
return reg
}
// NewKubernetesRegistry 创建一个注册发现客户端 - Kubernetes
func NewKubernetesRegistry(_ *conf.Registry) *k8sRegistry.Registry {
restConfig, err := k8sRest.InClusterConfig()
if err != nil {
home := k8sUtil.HomeDir()
kubeConfig := filepath.Join(home, ".kube", "config")
restConfig, err = k8sTools.BuildConfigFromFlags("", kubeConfig)
if err != nil {
log.Fatal(err)
return nil
}
}
clientSet, err := k8s.NewForConfig(restConfig)
if err != nil {
log.Fatal(err)
return nil
}
reg := k8sRegistry.NewRegistry(clientSet)
return reg
}
// NewEurekaRegistry 创建一个注册发现客户端 - Eureka
func NewEurekaRegistry(c *conf.Registry) *eurekaKratos.Registry {
var opts []eurekaKratos.Option
opts = append(opts, eurekaKratos.WithHeartbeat(c.Eureka.HeartbeatInterval.AsDuration()))
opts = append(opts, eurekaKratos.WithRefresh(c.Eureka.RefreshInterval.AsDuration()))
opts = append(opts, eurekaKratos.WithEurekaPath(c.Eureka.Path))
var err error
var reg *eurekaKratos.Registry
if reg, err = eurekaKratos.New(c.Eureka.Endpoints, opts...); err != nil {
log.Fatal(err)
}
return reg
}
// NewPolarisRegistry 创建一个注册发现客户端 - Polaris
func NewPolarisRegistry(c *conf.Registry) *polarisKratos.Registry {
var err error
var consumer polarisApi.ConsumerAPI
if consumer, err = polarisApi.NewConsumerAPI(); err != nil {
log.Fatalf("fail to create consumerAPI, err is %v", err)
}
var provider polarisApi.ProviderAPI
provider = polarisApi.NewProviderAPIByContext(consumer.SDKContext())
log.Infof("start to register instances, count %d", c.Polaris.InstanceCount)
var resp *polarisModel.InstanceRegisterResponse
for i := 0; i < (int)(c.Polaris.InstanceCount); i++ {
registerRequest := &polarisApi.InstanceRegisterRequest{}
registerRequest.Service = c.Polaris.Service
registerRequest.Namespace = c.Polaris.Namespace
registerRequest.Host = c.Polaris.Address
registerRequest.Port = (int)(c.Polaris.Port) + i
registerRequest.ServiceToken = c.Polaris.Token
registerRequest.SetHealthy(true)
if resp, err = provider.RegisterInstance(registerRequest); err != nil {
log.Fatalf("fail to register instance %d, err is %v", i, err)
} else {
log.Infof("register instance %d response: instanceId %s", i, resp.InstanceID)
}
}
reg := polarisKratos.NewRegistry(provider, consumer)
return reg
}
// NewServicecombRegistry 创建一个注册发现客户端 - Servicecomb
func NewServicecombRegistry(c *conf.Registry) *servicecombKratos.Registry {
cfg := servicecombClient.Options{
Endpoints: c.Servicecomb.Endpoints,
}
var cli *servicecombClient.Client
var err error
if cli, err = servicecombClient.NewClient(cfg); err != nil {
log.Fatal(err)
}
reg := servicecombKratos.NewRegistry(cli)
return reg
}

77
registry_test.go Normal file
View File

@@ -0,0 +1,77 @@
package bootstrap
import (
"github.com/stretchr/testify/assert"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
"testing"
)
func TestNewConsulRegistry(t *testing.T) {
var cfg conf.Registry
cfg.Consul.Scheme = "http"
cfg.Consul.Address = "localhost:8500"
cfg.Consul.HealthCheck = false
reg := NewConsulRegistry(&cfg)
assert.Nil(t, reg)
}
func TestNewEtcdRegistry(t *testing.T) {
var cfg conf.Registry
cfg.Etcd.Endpoints = []string{"127.0.0.1:2379"}
reg := NewEtcdRegistry(&cfg)
assert.Nil(t, reg)
}
func TestNewNacosRegistry(t *testing.T) {
var cfg conf.Registry
cfg.Nacos.Address = "127.0.0.1"
cfg.Nacos.Port = 8848
reg := NewNacosRegistry(&cfg)
assert.Nil(t, reg)
}
func TestNewZooKeeperRegistry(t *testing.T) {
var cfg conf.Registry
cfg.Zookeeper.Endpoints = []string{"127.0.0.1:2181"}
reg := NewZooKeeperRegistry(&cfg)
assert.Nil(t, reg)
}
func TestNewKubernetesRegistry(t *testing.T) {
var cfg conf.Registry
reg := NewKubernetesRegistry(&cfg)
assert.Nil(t, reg)
}
func TestNewEurekaRegistry(t *testing.T) {
var cfg conf.Registry
cfg.Eureka.Endpoints = []string{"https://127.0.0.1:18761"}
reg := NewEurekaRegistry(&cfg)
assert.Nil(t, reg)
}
func TestNewPolarisRegistry(t *testing.T) {
var cfg conf.Registry
cfg.Polaris.Address = "127.0.0.1"
cfg.Polaris.Port = 8091
cfg.Polaris.InstanceCount = 5
cfg.Polaris.Namespace = "default"
cfg.Polaris.Service = "DiscoverEchoServer"
cfg.Polaris.Token = ""
reg := NewPolarisRegistry(&cfg)
assert.Nil(t, reg)
}
func TestNewServicecombRegistry(t *testing.T) {
var cfg conf.Registry
cfg.Servicecomb.Endpoints = []string{"127.0.0.1:30100"}
reg := NewServicecombRegistry(&cfg)
assert.Nil(t, reg)
}

64
rest.go Normal file
View File

@@ -0,0 +1,64 @@
package bootstrap
import (
"github.com/go-kratos/aegis/ratelimit"
"github.com/go-kratos/aegis/ratelimit/bbr"
"github.com/go-kratos/kratos/v2/middleware"
midRateLimit "github.com/go-kratos/kratos/v2/middleware/ratelimit"
"github.com/go-kratos/kratos/v2/middleware/recovery"
"github.com/go-kratos/kratos/v2/middleware/tracing"
"github.com/go-kratos/kratos/v2/middleware/validate"
kratosRest "github.com/go-kratos/kratos/v2/transport/http"
"github.com/gorilla/handlers"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
)
// CreateRestServer 创建REST服务端
func CreateRestServer(cfg *conf.Bootstrap, m ...middleware.Middleware) *kratosRest.Server {
var opts = []kratosRest.ServerOption{
kratosRest.Filter(handlers.CORS(
handlers.AllowedHeaders(cfg.Server.Rest.Cors.Headers),
handlers.AllowedMethods(cfg.Server.Rest.Cors.Methods),
handlers.AllowedOrigins(cfg.Server.Rest.Cors.Origins),
)),
}
var ms []middleware.Middleware
if cfg.Server != nil && cfg.Server.Rest != nil && cfg.Server.Rest.Middleware != nil {
if cfg.Server.Rest.Middleware.GetEnableRecovery() {
ms = append(ms, recovery.Recovery())
}
if cfg.Server.Rest.Middleware.GetEnableTracing() {
ms = append(ms, tracing.Server())
}
if cfg.Server.Rest.Middleware.GetEnableValidate() {
ms = append(ms, validate.Validator())
}
if cfg.Server.Rest.Middleware.GetEnableCircuitBreaker() {
}
if cfg.Server.Rest.Middleware.Limiter != nil {
var limiter ratelimit.Limiter
switch cfg.Server.Rest.Middleware.Limiter.GetName() {
case "bbr":
limiter = bbr.NewLimiter()
}
ms = append(ms, midRateLimit.Server(midRateLimit.WithLimiter(limiter)))
}
}
ms = append(ms, m...)
opts = append(opts, kratosRest.Middleware(ms...))
if cfg.Server.Rest.Network != "" {
opts = append(opts, kratosRest.Network(cfg.Server.Rest.Network))
}
if cfg.Server.Rest.Addr != "" {
opts = append(opts, kratosRest.Address(cfg.Server.Rest.Addr))
}
if cfg.Server.Rest.Timeout != nil {
opts = append(opts, kratosRest.Timeout(cfg.Server.Rest.Timeout.AsDuration()))
}
return kratosRest.NewServer(opts...)
}

30
service_info.go Normal file
View File

@@ -0,0 +1,30 @@
package bootstrap
import "os"
type ServiceInfo struct {
Name string
Version string
Id string
Metadata map[string]string
}
func NewServiceInfo(name, version, id string) *ServiceInfo {
if id == "" {
id, _ = os.Hostname()
}
return &ServiceInfo{
Name: name,
Version: version,
Id: id,
Metadata: map[string]string{},
}
}
func (s *ServiceInfo) GetInstanceId() string {
return s.Id + "." + s.Name
}
func (s *ServiceInfo) SetMataData(k, v string) {
s.Metadata[k] = v
}

84
tracer.go Normal file
View File

@@ -0,0 +1,84 @@
package bootstrap
import (
"errors"
"go.opentelemetry.io/otel/exporters/jaeger"
"go.opentelemetry.io/otel/exporters/zipkin"
"github.com/tx7do/kratos-bootstrap/gen/api/go/conf/v1"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/sdk/resource"
traceSdk "go.opentelemetry.io/otel/sdk/trace"
semConv "go.opentelemetry.io/otel/semconv/v1.4.0"
)
// NewJaegerExporter 创建一个jaeger导出器
func NewJaegerExporter(endpoint string) (traceSdk.SpanExporter, error) {
return jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(endpoint)))
}
// NewZipkinExporter 创建一个zipkin导出器
func NewZipkinExporter(endpoint string) (traceSdk.SpanExporter, error) {
return zipkin.New(endpoint)
}
// NewTracerExporter 创建一个导出器支持jaeger和zipkin
func NewTracerExporter(exporterName, endpoint string) (traceSdk.SpanExporter, error) {
if exporterName == "" {
exporterName = "jaeger"
}
switch exporterName {
case "jaeger":
return NewJaegerExporter(endpoint)
case "zipkin":
return NewZipkinExporter(endpoint)
default:
return nil, errors.New("exporter type not support")
}
}
// NewTracerProvider 创建一个链路追踪器
func NewTracerProvider(cfg *conf.Tracer, serviceInfo *ServiceInfo) error {
if cfg == nil {
return errors.New("tracer config is nil")
}
if cfg.Sampler == 0 {
cfg.Sampler = 1.0
}
if cfg.Env == "" {
cfg.Env = "dev"
}
opts := []traceSdk.TracerProviderOption{
traceSdk.WithSampler(traceSdk.ParentBased(traceSdk.TraceIDRatioBased(cfg.Sampler))),
traceSdk.WithResource(resource.NewSchemaless(
semConv.ServiceNameKey.String(serviceInfo.Name),
semConv.ServiceVersionKey.String(serviceInfo.Version),
semConv.ServiceInstanceIDKey.String(serviceInfo.Id),
attribute.String("env", cfg.Env),
)),
}
if len(cfg.Endpoint) > 0 {
exp, err := NewTracerExporter(cfg.Batcher, cfg.Endpoint)
if err != nil {
panic(err)
}
opts = append(opts, traceSdk.WithBatcher(exp))
}
tp := traceSdk.NewTracerProvider(opts...)
if tp == nil {
return errors.New("create tracer provider failed")
}
otel.SetTracerProvider(tp)
return nil
}