httpsvr

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2022 License: MIT Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConstPromMetricUrlPath      = "/metrics"
	ConstHttpHealthCheckUrlPath = "/healthcheck"
	ConstRootUrlPath            = "/"
	ConstSwaggerUrlPath         = "/docs/*any"
)

Variables

View Source
var RouteNoRegisteredError = errors.New("router group not registered")

Functions

This section is empty.

Types

type BaseHttpService

type BaseHttpService struct {
	// contains filtered or unexported fields
}

func NewBaseHttpService

func NewBaseHttpService(f func(*gin.RouterGroup)) *BaseHttpService

func (*BaseHttpService) RoutesRegistry

func (bhs *BaseHttpService) RoutesRegistry(ge *GinEngine)

type GinEngine

type GinEngine struct {
	RootRouteGroup *gin.RouterGroup
	// contains filtered or unexported fields
}

func NewGinEngine

func NewGinEngine(name string, engineConf *GinEngineConf, httpConf *HttpServerConf, middlewareOpts *GinEngineMiddlewareOpts) *GinEngine

NewGinEngine keepalive.EnforcementPolicy: MinTime:如果客户端两次 ping 的间隔小于此值,则关闭连接 PermitWithoutStream: 即使没有 active stream, 也允许 ping

keepalive.ServerParameters: MaxConnectionIdle:如果一个 client 空闲超过该值, 发送一个 GOAWAY, 为了防止同一时间发送大量 GOAWAY, 会在此时间间隔上下浮动 10%, 例如设置为15s,即 15+1.5 或者 15-1.5 MaxConnectionAge:如果任意连接存活时间超过该值, 发送一个 GOAWAY MaxConnectionAgeGrace:在强制关闭连接之间, 允许有该值的时间完成 pending 的 rpc 请求 Time: 如果一个 client 空闲超过该值, 则发送一个 ping 请求 Timeout: 如果 ping 请求该时间段内未收到回复, 则认为该连接已断开

func (*GinEngine) Close

func (ge *GinEngine) Close()

func (*GinEngine) GetGrpcServer added in v1.1.0

func (ge *GinEngine) GetGrpcServer() *grpc.Server

func (*GinEngine) GetHttpRegisteredGroup added in v1.1.0

func (ge *GinEngine) GetHttpRegisteredGroup(path string) (*gin.RouterGroup, error)

GetHttpRegisteredGroup 获得已经注册的路由组

func (*GinEngine) GrpcServiceRegistry added in v1.1.0

func (ge *GinEngine) GrpcServiceRegistry(services ...GrpcRegisteredServiceItem)

GrpcServiceRegistry 注册服务到 GinEngine

func (*GinEngine) HttpMiddlewareRegistry added in v1.1.0

func (ge *GinEngine) HttpMiddlewareRegistry(middleware ...gin.HandlerFunc)

func (*GinEngine) HttpRouteGroupRegistry added in v1.1.0

func (ge *GinEngine) HttpRouteGroupRegistry(path string, baseGroup *gin.RouterGroup)

HttpRouteGroupRegistry 注册一个路由组

func (*GinEngine) HttpServiceRegistry added in v1.1.0

func (ge *GinEngine) HttpServiceRegistry(services ...httpServiceInterface)

HttpServiceRegistry 注册服务到 GinEngine

func (*GinEngine) IsReleaseMode

func (ge *GinEngine) IsReleaseMode() bool

func (*GinEngine) RunAndService

func (ge *GinEngine) RunAndService()

type GinEngineConf

type GinEngineConf struct {
	FeatureOpts     GinEngineFeatureOpts
	NoMatchHandlers GinEngineNoMatchHandlers
}

func NewDefaultGinEngineConf added in v1.1.1

func NewDefaultGinEngineConf() *GinEngineConf

func NewOnlyHttpGinEngineConf added in v1.1.1

func NewOnlyHttpGinEngineConf() *GinEngineConf

func NewOnlyMetricsGinEngineConf added in v1.1.1

func NewOnlyMetricsGinEngineConf() *GinEngineConf

type GinEngineFeatureOpts

type GinEngineFeatureOpts struct {
	EnableGinRedirectTrailingSlash bool // 内部 301 路径跳转,如果当前路径的处理函数不存在,但是路径+'/'的处理函数存在,则允许进行重定向
	EnableGinRedirectFixedPath     bool // 允许修复当前请求路径,如/FOO和/..//Foo会被修复为/foo,并进行重定向,默认为 false。
	EnableHttpHealthCheck          bool // 健康检查
	EnablePrometheusMetrics        bool // 记录 Prometheus 数据
	EnablePrometheusRoute          bool // 能够访问 Prometheus 数据
	EnableSwagger                  bool // Swagger
	EnableHttpPProf                bool // running time debug
	EnableGrpc                     bool // 启动 grpc over http
}

type GinEngineMiddlewareOpts added in v1.1.0

type GinEngineMiddlewareOpts struct {
	HttpSvrMiddleware []gin.HandlerFunc
	GrpcSvrMiddleware struct {
		StreamInterceptors []grpc.StreamServerInterceptor
		UnaryInterceptors  []grpc.UnaryServerInterceptor
	}
}

type GinEngineNoMatchHandlers

type GinEngineNoMatchHandlers = struct {
	NoRouteHandlers  []gin.HandlerFunc
	NoMethodHandlers []gin.HandlerFunc
}

type GinHttpProfService

type GinHttpProfService struct {
}

func NewGinHttpProfService

func NewGinHttpProfService() *GinHttpProfService

func (GinHttpProfService) RoutesRegistry

func (gp GinHttpProfService) RoutesRegistry(ge *GinEngine)

type GrpcRegisteredServiceItem added in v1.1.0

type GrpcRegisteredServiceItem struct {
	ServiceDesc   *grpc.ServiceDesc
	ServiceServer interface{}
}

type HttpServerConf

type HttpServerConf struct {
	Address                       string `json:"address" yaml:"address"`
	Port                          uint16 `json:"port" yaml:"port"`
	HttpReadTimeout               uint32 `json:"httpReadTimeout,omitempty" yaml:"httpReadTimeout,omitempty"`
	HttpWriteTimeout              uint32 `json:"httpWriteTimeout,omitempty" yaml:"httpWriteTimeout,omitempty"`
	HttpReadHeaderTimeout         uint32 `json:"httpReadHeaderTimeout,omitempty" yaml:"httpReadHeaderTimeout,omitempty"`
	GrpcClientPingMinIntervalTime uint32 `json:"grpcClientPingMinIntervalTime,omitempty" yaml:"grpcClientPingMinIntervalTime,omitempty"`
	GrpcClientIdleTimeout         uint32 `json:"grpcClientIdleTimeout,omitempty" yaml:"grpcClientIdleTimeout,omitempty"`
	GrpcConnAgeGraceTimeout       uint32 `json:"grpcConnAgeGraceTimeout,omitempty" yaml:"grpcConnAgeGraceTimeout,omitempty"`
}

Jump to

Keyboard shortcuts

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