Documentation
¶
Index ¶
- func GetDB() (read *gorm.DB, write *gorm.DB)
- func GetDBR() *gorm.DB
- func GetDBW() *gorm.DB
- func GetEtcdInstance() *clientv3.Client
- func GetKafkaConnections() []*kafkaLib.Conn
- func GetKafkaInstance() *kafka.Instance
- func GetKafkaReader() *kafkaLib.Reader
- func GetKafkaWriter() *kafkaLib.Writer
- func GetLogger(module ...string) *zap.Logger
- func GetNats() *natsLib.Conn
- func GetRedis() redisLib.UniversalClient
- func GetRedisCluster() *redisLib.ClusterClient
- func GetRedisStandalone() *redisLib.Client
- func GetRedisUniversal() redisLib.UniversalClient
- func MarshalInterfaceValue(obj interface{}) string
- func NewDB(conf db.Conf) (read *gorm.DB, rErr error, write *gorm.DB, wErr error)
- func NewEtcd(conf etcd.Conf) (*clientv3.Client, error)
- func NewKafkaConnections(conf kafka.Conf) []*kafkaLib.Conn
- func NewNats(conf nats.Conf) (*natsLib.Conn, error)
- func NewRedis(conf redis.Conf) (*redisLib.Client, error)
- func NewRedisCluster(conf redis.ClusterConf) (*redisLib.ClusterClient, error)
- func Response(c *gin.Context) api.Responder
- type Launcher
- type Launchpad
- type LogTracer
- type Sail
- type Sailor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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
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 NewKafkaConnections ¶ added in v3.0.5
NewKafkaConnections 创建新的kafka连接实例
func NewRedisCluster ¶ added in v3.0.5
func NewRedisCluster(conf redis.ClusterConf) (*redisLib.ClusterClient, error)
NewRedisCluster 创建新的redis (cluster)连接实例
Types ¶
type Launcher ¶ added in v3.0.2
type Launcher struct {
// contains filtered or unexported fields
}
Launcher 启动器
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 链路日志追踪器
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是异步执行的,另外此时组件已经按配置初始化完成,可以按需调用。
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 船员就位