Documentation
¶
Overview ¶
Package plugin 定义 mgin v2 的统一插件契约与注册表。
所有对外框架组件(数据源、缓存、消息队列、注册中心、定时任务、对象存储等)均实现 Plugin 接口,并在 mgin.Init 阶段由注册表按 Order 升序统一初始化,在 SafeExit 阶段按 Order 逆序统一关闭。业务侧也可通过 mgin.Use / mgin.UsePlugin 注册自定义插件。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CloseAll ¶
CloseAll 按 Order 逆序对 Enabled()==true 的插件调用 Close。 设计要点(防漏关):
- 单插件 Close 返回 error 仅记入首个错误并继续关闭其余插件;
- 单插件 Close 若 panic,由 defer+recover 兜底,保证不会中断整条关闭链。
func InitAll ¶
InitAll 按 Order 升序对 Enabled()==true 的插件调用 Init。 任一插件 Init 失败仅记录首个错误并继续,不会中断其余插件的初始化 (与旧 mgin.Init 的 if 链“不中断”语义一致)。
func Register ¶
func Register(p Plugin)
Register 注册一个插件。按 Name 去重:同名插件后注册者覆盖先注册者, 但注册顺序(order 切片)仅在首次出现时记录。
func RegisterBuiltins ¶
func RegisterBuiltins()
RegisterBuiltins 注册全部内置插件。在 mgin.Init 中、配置加载之后调用, 之后由 plugin.InitAll 统一驱动初始化。
Types ¶
type Plugin ¶
type Plugin interface {
Name() string
Order() int
Init(ctx context.Context) error
Close(ctx context.Context) error
Health() error
Enabled() bool
}
Plugin 是 mgin v2 的统一组件契约。
字段/方法语义:
- Name:唯一名称,如 "mysql" "redis" "kafka" "nacos" "job" "s3"。
- Order:启动顺序,数值越小越先 Init;Close 时按逆序执行。
- Init:框架启动时调用,完成组件连接/初始化;失败返回 error。
- Close:框架退出时调用,释放资源;失败返回 error(不应 panic)。
- Health:供 /health/ready 自报健康;无依赖可返回 nil。
- Enabled:是否由配置启用(通常读 go.config.used)。
func Clickhouse ¶
func Clickhouse() Plugin
func Elasticsearch ¶
func Elasticsearch() Plugin
Click to show internal directories.
Click to hide internal directories.