sail

package
v3.0.5 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2025 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDB

func GetDB() (read *gorm.DB, write *gorm.DB)

GetDB 获取数据库实例

该方法依次返回读实例、写实例

注意,使用前请确保db组件已初始化成功。

func GetDBR

func GetDBR() *gorm.DB

GetDBR 获取数据库读实例

注意,使用前请确保db组件已初始化成功。

func GetDBW

func GetDBW() *gorm.DB

GetDBW 获取数据库写实例

注意,使用前请确保db组件已初始化成功。

func GetEtcdInstance added in v3.0.1

func GetEtcdInstance() *clientv3.Client

GetEtcdInstance 获取etcd连接实例

注意,使用前请确保etcd组件已初始化成功。

func GetKafkaConnections added in v3.0.1

func GetKafkaConnections() []*kafkaLib.Conn

GetKafkaConnections 获取kafka连接

注意,使用前请确保kafka组件已初始化成功。

func GetKafkaInstance added in v3.0.1

func GetKafkaInstance() *kafka.Instance

GetKafkaInstance 获取kafka完整实例

注意,使用前请确保kafka组件已初始化成功。

func GetKafkaReader added in v3.0.1

func GetKafkaReader() *kafkaLib.Reader

GetKafkaReader 获取kafka读实例

注意,使用前请确保kafka组件已初始化成功。

func GetKafkaWriter added in v3.0.1

func GetKafkaWriter() *kafkaLib.Writer

GetKafkaWriter 获取kafka写实例

注意,使用前请确保kafka组件已初始化成功。

func GetLogger

func GetLogger(module ...string) *zap.Logger

GetLogger 获取日志实例

注意,使用前请确保logger组件已初始化成功。

func GetNats

func GetNats() *natsLib.Conn

GetNats 获取nats连接实例

注意,使用前请确保nats组件已初始化成功。

func GetRedis

func GetRedis() redisLib.UniversalClient

GetRedis 获取通用的redis连接

GetRedisUniversal 方法的语法糖

自动检测当前已实例化的redis连接

如果同时存在standalone实例和cluster实例,优先返回standalone实例

如果期望获取指定的连接类型,请单独使用 GetRedisStandalone 或 GetRedisCluster

----

提示:当你能确定你的连接类型时,可以通过断言的方式调用进阶方法,例如:

- Conn (on standalone client)

GetRedis().(*redis.Client).Conn()

- ForEachShard (on cluster client)

GetRedis().(*redis.ClusterClient).ForEachShard()

func GetRedisCluster

func GetRedisCluster() *redisLib.ClusterClient

GetRedisCluster 获取redis连接(cluster)

cluster集群模式

注意,使用前请确保redis(cluster)组件已初始化成功。

func GetRedisStandalone added in v3.0.5

func GetRedisStandalone() *redisLib.Client

GetRedisStandalone 获取redis连接(standalone)

单实例模式

注意,使用前请确保redis(standalone)组件已初始化成功。

func GetRedisUniversal added in v3.0.5

func GetRedisUniversal() redisLib.UniversalClient

GetRedisUniversal 获取通用的redis连接

自动检测当前已实例化的redis连接

如果同时存在standalone实例和cluster实例,优先返回standalone实例

如果期望获取指定的连接类型,请单独使用 GetRedisStandalone 或 GetRedisCluster

----

提示:当你能确定你的连接类型时,可以通过断言的方式调用进阶方法,例如:

- Conn (on standalone client)

GetRedisUniversal().(*redis.Client).Conn()

- ForEachShard (on cluster client)

GetRedisUniversal().(*redis.ClusterClient).ForEachShard()

func MarshalInterfaceValue added in v3.0.5

func MarshalInterfaceValue(obj interface{}) string

MarshalInterfaceValue 将interface序列化成字符串

主要用于日志记录

func NewDB added in v3.0.5

func NewDB(conf db.Conf) (read *gorm.DB, rErr error, write *gorm.DB, wErr error)

NewDB 创建新的数据实例

func NewEtcd added in v3.0.5

func NewEtcd(conf etcd.Conf) (*clientv3.Client, error)

NewEtcd 创建新的etcd连接实例

func NewKafkaConnections added in v3.0.5

func NewKafkaConnections(conf kafka.Conf) []*kafkaLib.Conn

NewKafkaConnections 创建新的kafka连接实例

func NewNats added in v3.0.5

func NewNats(conf nats.Conf) (*natsLib.Conn, error)

NewNats 创建新的nats 连接实例

func NewRedis added in v3.0.5

func NewRedis(conf redis.Conf) (*redisLib.Client, error)

NewRedis 创建新的redis (standalone)连接实例

func NewRedisCluster added in v3.0.5

func NewRedisCluster(conf redis.ClusterConf) (*redisLib.ClusterClient, error)

NewRedisCluster 创建新的redis (cluster)连接实例

func Response

func Response(c *gin.Context) api.Responder

Response http响应组件

Types

type Launcher added in v3.0.2

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

Launcher 启动器

func (*Launcher) Launch added in v3.0.2

func (l *Launcher) Launch()

Launch 启动

type Launchpad added in v3.0.2

type Launchpad interface {
	// Launch 启动
	Launch()
}

Launchpad 启动台

type LogTracer added in v3.0.5

type LogTracer interface {
	// GetLogger 获取 zap.Logger 实例
	//
	// 此实例携带了上下文的requestId和spanId,用于链路追踪
	GetLogger() *zap.Logger
	// Debug 打印日志
	//
	// 尝试从上下文中获取logger实例进行打印,
	//
	// 从上下文中获取的logger实例会携带链路追踪的字段。
	//
	// 若获取失败,则调用logger库进行打印
	//
	// 日志级别:Debug
	Debug(message string, fields ...zap.Field)
	// Info 打印日志
	//
	// 尝试从上下文中获取logger实例进行打印,
	//
	// 从上下文中获取的logger实例会携带链路追踪的字段。
	//
	// 若获取失败,则调用logger库进行打印
	//
	// 日志级别:Info
	Info(message string, fields ...zap.Field)
	// Warn 打印日志
	//
	// 尝试从上下文中获取logger实例进行打印,
	//
	// 从上下文中获取的logger实例会携带链路追踪的字段。
	//
	// 若获取失败,则调用logger库进行打印
	//
	// 日志级别:Warn
	Warn(message string, fields ...zap.Field)
	// Error 打印日志
	//
	// 尝试从上下文中获取logger实例进行打印,
	//
	// 从上下文中获取的logger实例会携带链路追踪的字段。
	//
	// 若获取失败,则调用logger库进行打印
	//
	// 日志级别:Error
	Error(message string, fields ...zap.Field)
	// DPanic 打印日志
	//
	// 尝试从上下文中获取logger实例进行打印,
	//
	// 从上下文中获取的logger实例会携带链路追踪的字段。
	//
	// 若获取失败,则调用logger库进行打印
	//
	// 日志级别:DPanic
	DPanic(message string, fields ...zap.Field)
	// Panic 打印日志
	//
	// 尝试从上下文中获取logger实例进行打印,
	//
	// 从上下文中获取的logger实例会携带链路追踪的字段。
	//
	// 若获取失败,则调用logger库进行打印
	//
	// 日志级别:Panic
	Panic(message string, fields ...zap.Field)
	// Fatal 打印日志
	//
	// 尝试从上下文中获取logger实例进行打印,
	//
	// 从上下文中获取的logger实例会携带链路追踪的字段。
	//
	// 若获取失败,则调用logger库进行打印
	//
	// 日志级别:Fatal
	Fatal(message string, fields ...zap.Field)
}

LogTracer 链路日志追踪器

func LogTrace added in v3.0.5

func LogTrace(c *gin.Context) LogTracer

LogTrace 链路日志追踪

type Sail added in v3.0.3

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

Sail 框架配置

func (*Sail) EnableWebsocket added in v3.0.3

func (s *Sail) EnableWebsocket(ws *websocket.Conn, handler func(ws *websocket.Conn), middlewares ...gin.HandlerFunc) Sailor

EnableWebsocket 启动websocket服务

routePath 路由地址

ws websocket连接实例,若为空,则启动默认的连接实例

handler 处理函数,若为空,则启动`defaultWebsocketHandlerFunc`默认处理函数

func (*Sail) Hook added in v3.0.3

func (s *Sail) Hook(registerRoutes func(ginEngine *gin.Engine), beforeFunc, afterFunc func()) Launchpad

Hook 挂载相关方法

registerRoutes 注册路由函数

beforeFunc 前置自定义处理函数(可选),在框架函数之前执行

注意beforeFunc是异步执行的,另外此时组件尚未初始化,因此在此函数内调用组件将会出现空指针异常(panic)。

afterFunc 后置自定义处理函数(可选),在框架函数之后执行

注意afterFunc是异步执行的,另外此时组件已经按配置初始化完成,可以按需调用。

func (*Sail) SetupApiOption added in v3.0.3

func (s *Sail) SetupApiOption(opt *api.Option) Sailor

SetupApiOption

设置统一返回配置

type Sailor added in v3.0.2

type Sailor interface {
	// SetupApiOption
	//
	// 设置统一返回配置
	SetupApiOption(opt *api.Option) Sailor
	// EnableWebsocket 启动websocket服务
	//
	// ws websocket连接实例,若为空,则启动默认配置连接
	//
	// handler 处理函数,若为空,则启用默认处理函数(仅打印接收到的message信息)
	//
	// middlewares 路由中间件
	EnableWebsocket(ws *websocket.Conn, handler func(ws *websocket.Conn), middlewares ...gin.HandlerFunc) Sailor
	// Hook 挂载相关方法
	//
	// registerRoutes 注册路由函数
	//
	// beforeFunc 前置自定义处理函数(可选),在框架函数之前执行
	//
	// 注意beforeFunc是异步执行的,另外此时组件尚未初始化,因此在此函数内调用组件将会出现空指针异常(panic)。
	//
	// afterFunc 后置自定义处理函数(可选),在框架函数之后执行
	//
	// 注意afterFunc是异步执行的,另外此时组件已经按配置初始化完成,可以按需调用。
	Hook(registerRoutes func(ginEngine *gin.Engine), beforeFunc, afterFunc func()) Launchpad
}

Sailor 船员就位

func WakeupHttp

func WakeupHttp(appName string, conf *config.Config) Sailor

WakeupHttp 唤醒http

启动前的配置准备

appName 应用名称

conf 配置文件

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳