服务/协议

可以通过暴露已有的服务,或者自行实现相应的协议对外暴露服务

详细示例参考这里arrow-up-right

已实现服务

公共配置

## 服务欧相关配置
asjard:
  ## 多协议服务相关配置
  ## 不实时生效,修改后需重新启动
  servers:
    ## 协议无关的服务端拦截器列表,多个拦截器以英文逗号(,)分隔
    # interceptors: ""
    ## 内建配置的拦截器
    # builtInInterceptors:
    #   - ratelimiter
    #   - metrics
    #   - accessLog
    #   - restReadEntity
    #   - restResponseHeader
    #   - i18n
    #   - trace
    ## 默认处理器
    # defaultHandlers: ""
    ## 内建配置的默认处理器
    # builtInDefaultHandlers:
    #   - health
    #   - metrics
    ## 证书文件,ASJARD_CERT_DIR下的路径
    certFile: ""
    ## 私钥文件, ASJARD_CERT_DIR下的路径
    keyFile: ""

如何实现自己的服务

配置约定

  • 配置应都放在asjard.servers.{自定义服务名称}该命名空间下

自定义服务

具体可参考core/server/server.go中的代码

  • 需实现如下两个方法

  • 然后通过AddServer添加服务

  • 具体实现可参考pkg/server/rest,pkg/server/grpc,pkg/server/pprof

使用

  • 步骤一: 编写protobuf协议文件, 详细请参考protobuf

  • 步骤二: 编译协议文件

  • 步骤三: 编写服务

  • 以上三个步骤就是编写并启动一个服务的所有流程

  • 配置和访问详细信息可参考grpc服务rest服务

最后更新于