syntax = "proto3"; package conf; option go_package = "github.com/tx7do/kratos-bootstrap/api/gen/go/conf/v1;conf"; import "google/protobuf/duration.proto"; import "conf/v1/kratos_conf_tls.proto"; // 数据 message Data { // 数据库 message Database { string driver = 1; // 驱动名:mysql、postgresql、mongodb、sqlite…… string source = 2; // 数据源(DSN字符串) bool migrate = 10; // 数据迁移开关 bool debug = 11; // 调试开关 bool enable_trace = 12; // 链路追踪开关 bool enable_metrics = 13; // 性能分析开关 optional int32 max_idle_connections = 20; // 连接池最大空闲连接数 optional int32 max_open_connections = 21; // 连接池最大打开连接数 optional google.protobuf.Duration connection_max_lifetime = 22; // 连接可重用的最大时间长度 optional string prometheus_push_addr = 30; optional string prometheus_db_name = 31; optional uint32 prometheus_http_port = 32; } // 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; // 写入超时时间 bool enable_tracing = 8; // 打开链路追踪 bool enable_metrics = 9; // 打开性能度量 } // MongoDB message MongoDB { string address = 1; string username = 2; string password = 3; } // ClickHouse message ClickHouse { string address = 1; string database = 2; string username = 3; string password = 4; bool debug = 5; string compression_method = 6; google.protobuf.Duration dial_timeout = 7; int32 max_execution_time = 8; int32 max_open_conns = 9; int32 max_idle_conns = 10; google.protobuf.Duration conn_max_life_time = 11; int32 block_buffer_size = 12; int32 max_compression_buffer = 13; string conn_open_strategy = 14; int32 max_idle_connections = 15; // 连接池最大空闲连接数 int32 max_open_connections = 16; // 连接池最大打开连接数 google.protobuf.Duration connection_max_lifetime = 17; // 连接可重用的最大时间长度 string protocol = 18; TLS tls = 19; // TLS配置 } // InfluxDB message InfluxDB { string address = 1; string token = 2; string organization = 3; string bucket = 4; } message Doris { string address = 1; } message ElasticSearch { repeated string addresses = 1; string username = 2; string password = 3; bool enable_sniffer = 4; bool enable_gzip = 5; google.protobuf.Duration health_check_interval = 6; } message Cassandra { string address = 1; string username = 2; string password = 3; string keyspace = 5; google.protobuf.Duration connect_timeout = 6; google.protobuf.Duration timeout = 7; uint32 consistency = 8; bool disable_initial_host_lookup = 9; bool ignore_peer_addr = 10; TLS tls = 11; // TLS配置 } message Snowflake { } // Kafka message Kafka { repeated string endpoints = 1; // 对端网络地址 string codec = 2; // 编解码器 bool async = 3; // 异步发送 bool allow_auto_topic_creation = 4; // 允许发送的时候自动创建主题 int32 batch_size = 5; // 批量发送量 int64 batch_bytes = 6;// 批量发送字节数 google.protobuf.Duration batch_timeout = 7; // 批量发送超时时间 google.protobuf.Duration read_timeout = 8; // 读取超时时间 google.protobuf.Duration write_timeout = 9; // 发送超时时间 } // RabbitMQ message RabbitMQ { repeated string endpoints = 1; // 对端网络地址 } // MQTT message Mqtt { string endpoint = 1; // 对端网络地址 string codec = 2; // 编解码器: json,xml,yaml... } message ActiveMQ { string endpoint = 1; // 对端网络地址 string codec = 2; // 编解码器: json,xml,yaml... } message NATS { string endpoint = 1; // 对端网络地址 string codec = 2; // 编解码器: json,xml,yaml... } message NSQ { string endpoint = 1; // 对端网络地址 string codec = 2; // 编解码器: json,xml,yaml... } message Pulsar { string endpoint = 1; // 对端网络地址 string codec = 2; // 编解码器: json,xml,yaml... } message RocketMQ { string version = 1; // 驱动版本:aliyun、v2、v5 string codec = 2; // 编解码器: json,xml,yaml... bool enable_trace = 3; repeated string name_servers = 4; string name_server_domain = 5; string access_key = 6; string secret_key = 7; string security_token = 8; string namespace = 9; string instance_name = 10; string group_name = 11; } optional Database database = 1; // 数据库DSN optional Redis redis = 10; // Redis optional MongoDB mongodb = 11; // MongoDB数据库 optional ElasticSearch elastic_search = 12; // ElasticSearch数据库 optional Cassandra cassandra = 13; // Cassandra数据库 optional ClickHouse clickhouse = 20; // ClickHouse数据库 optional InfluxDB influxdb = 21; // InfluxDB数据库 optional Doris doris = 22; // Doris数据库 // Message Queue optional Kafka kafka = 30; // Kafka服务 optional RabbitMQ rabbitmq = 31; // RabbitMQ服务 optional Mqtt mqtt = 32; // MQTT服务 optional ActiveMQ activemq = 33; // ActiveMQ optional NATS nats = 34; // NATS optional NSQ nsq = 35; // NATS optional Pulsar pulsar = 36; // Pulsar optional RocketMQ rocketmq = 38; // RocketMQ }