micro

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2026 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvokeGRPCClientIP get grpc request client ip fail.
	ErrInvokeGRPCClientIP = errors.New("invoke from context failed")

	// ErrPeerAddressNil gRPC peer address is nil.
	ErrPeerAddressNil = errors.New("peer address is nil")
)

Functions

func GRPCHandlerFunc added in v1.2.0

func GRPCHandlerFunc(grpcServer *grpc.Server, otherHandler http.Handler) http.Handler

GRPCHandlerFunc uses the standard library h2c to convert http requests to http2 In this way, you can co-exist with go grpc and http services, and use one port to provide both grpc services and http services. In June 2018, the golang.org/x/net/http2/h2c standard library representing the "h2c" logo was officially merged in, and since then we can use the official standard library (h2c) This standard library implements the unencrypted mode of HTTP/2, so we can use the standard library to provide both HTTP/1.1 and HTTP/2 functions on the same port The h2c.NewHandler method has been specially processed, and h2c.NewHandler will return an http.handler The main internal logic is to intercept all h2c traffic, then hijack and redirect it to the corresponding handler according to different request traffic types to process. If a request is a h2c connection, it's hijacked and redirected to s.ServeConn. Otherwise the returned Handler just forwards requests to http.

func GetCtxValue

func GetCtxValue(ctx context.Context, key ctxkeys.CtxKey) interface{}

GetCtxValue returns ctx when you set key/value into ctx

func GetGRPCClientIP

func GetGRPCClientIP(ctx context.Context) (string, error)

GetGRPCClientIP get client ip address from context

func GetSliceFromMD

func GetSliceFromMD(md metadata.MD, key ctxkeys.CtxKey) []string

GetSliceFromMD returns []string from md

func GetStringFromMD

func GetStringFromMD(md metadata.MD, key ctxkeys.CtxKey) string

GetStringFromMD returns string from md

func IncomingMD

func IncomingMD(ctx context.Context) metadata.MD

IncomingMD returns metadata.MD from incoming ctx get request metadata this method is mainly used at the server end to get the relevant metadata data

func OutgoingMD

func OutgoingMD(ctx context.Context) metadata.MD

OutgoingMD returns metadata.MD from outgoing ctx Use this method when you pass ctx to a downstream service

func SetCtxValue

func SetCtxValue(ctx context.Context, key ctxkeys.CtxKey, val interface{}) context.Context

SetCtxValue returns ctx when you set key/value into ctx

Types

type AnnotatorFunc added in v1.2.0

type AnnotatorFunc func(context.Context, *http.Request) metadata.MD

AnnotatorFunc is the annotator function is for injecting metadata from http request into gRPC context

type HTTPHandlerFunc added in v1.2.0

type HTTPHandlerFunc func(*gRuntime.ServeMux) http.Handler

HTTPHandlerFunc is the http middleware handler function.

type HandlerFromEndpoint added in v1.2.0

type HandlerFromEndpoint func(ctx context.Context, mux *gRuntime.ServeMux,
	endpoint string, opts []grpc.DialOption) error

HandlerFromEndpoint is the callback that the caller should implement to steps to reverse-proxy the HTTP/1 requests to gRPC handlerFromEndpoint http gw endPoint automatically dials to "endpoint" and closes the connection when "ctx" gets done.

type Logger

type Logger interface {
	Printf(string, ...interface{})
}

Logger is logger interface.

type LoggerFunc

type LoggerFunc func(string, ...interface{})

LoggerFunc is a bridge between Logger and any third party logger.

func (LoggerFunc) Printf

func (f LoggerFunc) Printf(msg string, args ...interface{})

Printf implements Logger interface.

type Option

type Option func(s *Service)

Option for grpc service option

func WithEnableGRPCShareAddress added in v1.2.0

func WithEnableGRPCShareAddress() Option

WithEnableGRPCShareAddress returns an Option to set the enableGRPCShareAddress

func WithEnableHTTPGateway added in v1.2.0

func WithEnableHTTPGateway() Option

WithEnableHTTPGateway enable http gateway

func WithEnablePrometheus

func WithEnablePrometheus() Option

WithEnablePrometheus enable prometheus

func WithEnableRequestAccess

func WithEnableRequestAccess() Option

WithEnableRequestAccess request access log config

func WithEnableRequestValidator

func WithEnableRequestValidator() Option

WithEnableRequestValidator set request validator interceptor

func WithGRPCEndpointDialOptions added in v1.2.0

func WithGRPCEndpointDialOptions(dialOption ...grpc.DialOption) Option

WithGRPCEndpointDialOptions returns an Option to append a gRPC dial option

func WithGRPCHTTPAddress added in v1.2.0

func WithGRPCHTTPAddress(addr string) Option

WithGRPCHTTPAddress set gRPC HTTP Address,eg: 0.0.0.0:8080

func WithGRPCHTTPErrorHandler added in v1.2.0

func WithGRPCHTTPErrorHandler(errorHandler gRuntime.ErrorHandlerFunc) Option

WithGRPCHTTPErrorHandler returns an Option to set the errorHandler

func WithGRPCHTTPHandler added in v1.2.0

func WithGRPCHTTPHandler(h HTTPHandlerFunc) Option

WithGRPCHTTPHandler returns an Option to set gRPC HTTP Server Handler

func WithGRPCHTTPServer added in v1.2.0

func WithGRPCHTTPServer(server *http.Server) Option

WithGRPCHTTPServer returns an Option to set the http server

func WithGRPCNetwork

func WithGRPCNetwork(network string) Option

WithGRPCNetwork set gRPC start network type

func WithGRPCServerOption

func WithGRPCServerOption(serverOption ...grpc.ServerOption) Option

WithGRPCServerOption returns an Option to append a gRPC server option

func WithHandlerFromEndpoints added in v1.2.0

func WithHandlerFromEndpoints(h ...HandlerFromEndpoint) Option

WithHandlerFromEndpoints add HandlerFromEndpoint

func WithInterruptSignals

func WithInterruptSignals(signal ...os.Signal) Option

WithInterruptSignals returns an Option to append a interrupt signal

func WithLogger

func WithLogger(logger Logger) Option

WithLogger uses the provided logger

func WithMuxOption added in v1.2.0

func WithMuxOption(muxOption ...gRuntime.ServeMuxOption) Option

WithMuxOption returns an Option to append a mux option

func WithRecovery

func WithRecovery(f func()) Option

WithRecovery service recover func

func WithRoutes added in v1.2.0

func WithRoutes(routes ...Route) Option

WithRoutes adds additional routes

func WithServerMetricsOptions added in v1.3.0

func WithServerMetricsOptions(opts ...gPrometheus.ServerMetricsOption) Option

WithServerMetricsOptions set prometheus server metrics options

func WithShutdownFunc

func WithShutdownFunc(f func()) Option

WithShutdownFunc returns an Option to register a function which will be called when server shutdown

func WithShutdownTimeout

func WithShutdownTimeout(timeout time.Duration) Option

WithShutdownTimeout returns an Option to set the timeout before the server shutdown abruptly

func WithStreamInterceptor

func WithStreamInterceptor(streamInterceptor ...grpc.StreamServerInterceptor) Option

WithStreamInterceptor returns an Option to append some streamInterceptor

func WithUnaryInterceptor

func WithUnaryInterceptor(unaryInterceptor ...grpc.UnaryServerInterceptor) Option

WithUnaryInterceptor returns an Option to append some unaryInterceptor

type Route added in v1.2.0

type Route struct {
	Method  string
	Path    string
	Handler http.HandlerFunc
}

Route represents the route for mux

type Service

type Service struct {
	// gRPC service settings
	GRPCServer *grpc.Server // gRPC server
	// contains filtered or unexported fields
}

Service gRPC microservice struct

func NewService

func NewService(address string, opts ...Option) *Service

NewService create a grpc service instance

func (*Service) GetPid

func (s *Service) GetPid() int

GetPid gets the process id of server

func (*Service) Run

func (s *Service) Run() error

Run start service

Jump to

Keyboard shortcuts

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