rpc

package module
v0.0.0-...-4da6028 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2023 License: Apache-2.0 Imports: 20 Imported by: 1

README

rpc

Documentation

Overview

Package rpc ...

Description : rpc ...

Author : go_developer@163.com<白茶清欢>

Date : 2022-06-29 14:08

Package rpc ...

Description : rpc ...

Author : go_developer@163.com<白茶清欢>

Date : 2023-02-14 14:33

Package rpc ...

Description : rpc ...

Author : go_developer@163.com<白茶清欢>

Date : 2022-06-30 18:33c

Package rpc ...

Description : rpc ...

Author : go_developer@163.com<白茶清欢>

Date : 2022-06-29 15:21

Index

Constants

View Source
const (
	// DefaultConnectTimeout 默认连接超时
	DefaultConnectTimeout = 100
	// DefaultReadTimeout 默认读取超时
	DefaultReadTimeout = 300
	// DefaultCodeField 默认状态码字段
	DefaultCodeField = "code"
	// DefaultMessageField 默认描述字段
	DefaultMessageField = "message"
	// DefaultDataField 默认数据字段
	DefaultDataField = "data"
	// SpecialFiledVal 特殊的 code / message / data配置
	SpecialFiledVal = "-"
)

Variables

View Source
var (
	// HttpClient http 客户端
	HttpClient *httpClient
)
View Source
var (
	// Request 请求实例
	Request *request
)

Functions

func InitRPC

func InitRPC(serviceTable map[string]*Service, loggerInstance *zap.Logger) error

InitRPC 初始化RPC服务

Author : go_developer@163.com<白茶清欢>

Date : 15:23 2022/6/29

func InitRPCFromCfgDir

func InitRPCFromCfgDir(cfgDir string, logger *zap.Logger) error

InitRPCFromCfgDir 使用RPC配置文件路径初始化RPC

Author : go_developer@163.com<白茶清欢>

Date : 17:41 2022/7/1

func InitRPCFromCfgFile

func InitRPCFromCfgFile(cfgFile string, logger *zap.Logger) error

InitRPCFromCfgFile 从配置文件初始化RPC服务

Author : go_developer@163.com<白茶清欢>

Date : 17:42 2022/7/1

Types

type Api

type Api struct {
	Flag                string            `json:"flag" yaml:"flag" ini:"flag"`                                                       // URI标识
	MockEnable          bool              `json:"mock_enable" yaml:"mock_enable" ini:"mock_enable"`                                  // 当前接口是否可用mock服务
	Description         string            `json:"description" yaml:"description" ini:"description"`                                  // 接口描述
	URI                 string            `json:"uri" yaml:"uri" ini:"uri"`                                                          // 接口地址
	Method              string            `json:"method" yaml:"method" ini:"method"`                                                 // 请求方法 GET / POST / PUT 等
	CodeField           string            `json:"code_field" yaml:"code_field" ini:"code_field"`                                     // 状态码字段
	MessageField        string            `json:"message_field" yaml:"message_field" ini:"message_field"`                            // 消息字段
	DataField           string            `json:"data_field" yaml:"data_field" ini:"data_field"`                                     // 数据字段(优先级高, 会覆盖)
	SuccessCodeList     []string          `json:"success_code_list" yaml:"success_code_list" ini:"success_code_list"`                // 成功的值(优先级高, 会覆盖)
	SuccessHttpCodeList []int             `json:"success_http_code_list" yaml:"success_http_code_list" ini:"success_http_code_list"` // 任务成功的http状态码, 不配置默认只有200(优先级高, 会覆盖)
	Header              map[string]string `json:"header" yaml:"header" ini:"header"`                                                 // 传入的header
	BindURIParamList    []string          `json:"bind_uri_param_list" yaml:"bind_uri_param_list" ini:"bind_uri_param_list"`          // 绑定到URI的参数列表
	Timeout             ApiTimeout        `json:"timeout" yaml:"timeout" ini:"timeout"`                                              // 超时配置
	Retry               ApiRetry          `json:"retry" yaml:"retry" ini:"timeout"`                                                  // 重试策略
}

Api 接口的数据结构

Author : go_developer@163.com<白茶清欢>

Date : 14:18 2022/6/29

type ApiRetry

type ApiRetry struct {
	ConnectTimeout   bool `json:"connect_timeout" yaml:"connect_timeout" ini:"connect_timeout"`          // 连接超时是否重试
	ReadTimeout      bool `json:"read_timeout" yaml:"read_timeout" ini:"read_timeout"`                   // 读取超时是否重试
	BusinessCodeFail bool `json:"business_code_fail" yaml:"business_code_fail" ini:"business_code_fail"` // 业务状态码错误是否重试
	HttpCodeFail     bool `json:"http_code_fail" yaml:"http_code_fail" ini:"http_code_fail"`             // http状态码异常是否重试
	Count            int  `json:"count" yaml:"count" ini:"count"`                                        // 重试次数
	Frequency        int  `json:"frequency" yaml:"frequency" ini:"frequency"`                            // 重试频率, 单位 : ms
}

ApiRetry 接口重试

Author : go_developer@163.com<白茶清欢>

Date : 15:10 2022/6/29

type ApiTimeout

type ApiTimeout struct {
	Read    int `json:"read" yaml:"read" ini:"read"`          // 读取超时时间
	Connect int `json:"connect" yaml:"connect" ini:"connect"` // 连接超时时间
}

ApiTimeout 超时配置

Author : go_developer@163.com<白茶清欢>

Date : 15:08 2022/6/29

type Service

type Service struct {
	Flag                string          `json:"flag" yaml:"flag" ini:"flag"`                                                       // 服务标识, 全局唯一
	Description         string          `json:"description" yaml:"description" ini:"description"`                                  // 服务描述
	Domain              string          `json:"domain" yaml:"domain" ini:"domain"`                                                 // 域名服务
	MockEnable          bool            `json:"mock_enable" yaml:"mock_enable" ini:"mock_enable"`                                  // 是否可用mock,默认false
	MockPath            string          `json:"mock_path" yaml:"mock_path" ini:"mock_path"`                                        // mock数据的存储路径,不配置默认为 ./{service_flag}
	CodeField           string          `json:"code_field" yaml:"code_field" ini:"code_field"`                                     // 状态码字段
	MessageField        string          `json:"message_field" yaml:"message_field" ini:"message_field"`                            // 消息字段
	DataField           string          `json:"data_field" yaml:"data_field" ini:"data_field"`                                     // 数据字段
	SuccessCodeList     []string        `json:"success_code_list" yaml:"success_code_list" ini:"success_code_list"`                // 成功的值
	SuccessHttpCodeList []int           `json:"success_http_code_list" yaml:"success_http_code_list" ini:"success_http_code_list"` // 任务成功的http状态码, 不配置默认只有200(优先级高, 会覆盖)
	ApiTable            map[string]*Api `json:"api_table" yaml:"api_table" ini:"api_table"`                                        // api列表
	ApiRetry            ApiRetry        `json:"api_retry" yaml:"api_retry" ini:"api_retry"`                                        // 重试策略
}

Service 服务配置结构的定义

Author : go_developer@163.com<白茶清欢>

Date : 14:08 2022/6/29

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL