Skip to content

配置参考

相关目录

  • /internal/conf/*
  • /conf/*

引导配置

json
// /conf/bootstrap.json
{
  "micro": {
    "mode": true,
    "app_id": "00000000-0000-0000-0000-00000000000", // 应用id,服务唯一标识
    "namespace": "/microservice", // 命名空间
    "max_retry": 5, // 服务心跳最大重试次数
    "ttl": 5, // 心跳间隔

    "network": "main-network", // 网络唯一标识,用于网关负载时的调用逻辑
    "outer_net_addr": "113.112.111.110:10000", // 外网访问地址
    "internal_net_addr": "192.168.1.100:10000" // 内网访问地址
  },
  "gateway": {
    "network": "main-network", // 网关组网唯一标识,用于网关负载时的调用逻辑
    "outer_net_addr": "113.112.111.110:10001", // 网关外网调用地址
    "internal_net_addr": "192.168.1.101:10001" // 网关内网调用地址
  },
  "server": {
    "grpc_port": 10000, // grpc 服务端口
  },
  "logger": {
    "console": true, // 是否开启日志打印
    "remote": false // 是否开启远程日志
  },
  "task": {
    "max_cache": 100, // 任务池最大缓存数量
    "max_concurrency": 1, // 处理任务最大并发
    "min_concurrency": 0 // 处理任务最小并发
  },
  "data_conf_file": [
    "https://demo.com/config/etcd.config.json", // etcd 配置文件,默认是远程地址,如果要从本地加载,请修改具体方法
    "https://demo.com/config/mysql.config.json" // mysql 配置文件,默认时远程地址,如果要从本地架子啊,请修改具体方法
  ]
}

buf-cli配置

buf cli管理proto,可采用远程插件/本地插件来生成grpc代码;

具体服务则通过buf.gen.yaml来控制所需生成的proto文件;

所有的proto文件都应在一个仓库进行管理;

buf cli docs

buf.yaml

yaml
version: v2
name: buf.build/firefly/guide # 将创建的仓库地址填写到这里
lint:
  use:
    - STANDARD
  except:
    - FIELD_NOT_REQUIRED
    - PACKAGE_NO_IMPORT_CYCLE
  disallow_comment_ignores: true
breaking:
  use:
    - FILE
  except:
    - EXTENSION_NO_DELETE
    - FIELD_SAME_DEFAULT

buf login 登陆之后,使用buf push将代码存到buf仓库中

buf.gen.yaml

yaml
version: v2
managed:
  enabled: true
  disable:
    - file_option: go_package
      module: buf.build/googleapis/googleapis
  override:
    - file_option: go_package_prefix
      value: go-layout # 实际的项目名称
plugins:
  - remote: buf.build/grpc/go # 远程插件配置,对应的也有本地插件配置
    out: dep/protobuf/gen
    opt: paths=source_relative
  - remote: buf.build/protocolbuffers/go
    out: dep/protobuf/gen
    opt: paths=source_relative
inputs:
  - module: buf.build/firefly/guide:main # buf cli仓库地址; 对应的也有本地存储配置,具体参考buf cli文档
yaml
version: v2
managed:
  enabled: true
plugins:
  - remote: buf.build/community/neoeinstein-prost
    out: dep/protobuf/gen
    opt:
      - compile_well_known_types
      - extern_path=.google.protobuf=::pbjson_types
  - remote: buf.build/community/neoeinstein-prost-serde
    out: dep/protobuf/gen
  - remote: buf.build/community/neoeinstein-tonic
    out: dep/protobuf/gen
    opt:
      - compile_well_known_types
      - extern_path=.google.protobuf=::pbjson_types
inputs:
  - module: buf.build/firefly/guide:main
yaml
version: v2
managed:
  enabled: true
plugins:
  - remote: buf.build/protocolbuffers/dart
    out: dep/protobuf/gen
inputs:
  - module: buf.build/firefly/guide:main
yaml
version: v2
managed:
  enabled: true
plugins:
  - remote: buf.build/grpc/kotlin
    out: dep/protobuf/gen
    opt: paths=source_relative
  - remote: buf.build/protocolbuffers/kotlin
    out: dep/protobuf/gen
inputs:
  - module: buf.build/firefly/guide:main
yaml
version: v2
managed:
  enabled: true
plugins:
  - remote: buf.build/grpc/swift
    out: dep/protobuf/gen
  - remote: buf.build/apple/swift
    out: dep/protobuf/gen
inputs:
  - module: buf.build/firefly/guide:main
yaml
version: v2
managed:
  enabled: true
plugins:
  - remote: buf.build/connectrpc/es
    out: gen
  - remote: buf.build/bufbuild/es
    out: gen
  - remote: buf.build/bufbuild/knit-ts
    out: gen
  - remote: buf.build/community/timostamm-protobuf-ts
    out: dep/protobuf/gen
inputs:
  - module: buf.build/firefly/guide:main
yaml
version: v2
managed:
  enabled: true
plugins:
  - remote: buf.build/grpc/php
    out: dep/protobuf/gen
  - remote: buf.build/protocolbuffers/php
    out: dep/protobuf/gen
inputs:
  - module: buf.build/firefly/guide:main
yaml
version: v2
managed:
  enabled: true
plugins:
  - remote: buf.build/grpc/python
    out: dep/protobuf/gen
  - remote: buf.build/protocolbuffers/python
    out: dep/protobuf/gen
inputs:
  - module: buf.build/firefly/guide:main

执行buf generate生成服务端/客户端代码

Released under the MIT License