sql

package
v0.0.0-...-b34c890 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2022 License: MPL-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// SQLGroupManager是GroupManager结构体的全局变量
	SQLGroupManager = newGroupManager()
)

Functions

This section is empty.

Types

type Client

type Client struct {
	*gorm.DB
}

Client继承了*gorm.DB的所有方法, 详细的使用方法请参考: http://gorm.io/docs/connecting_to_the_database.html

func PartitionBy

func PartitionBy(partiton func() (bool, string, string)) *Client

type Group

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

func Get

func Get(name string) *Group

Get(name)等于SQLGroupManager.Get(name)

func NewGroup

func NewGroup(d SQLGroupConfig) (*Group, error)

NewGroup初始化一个Group, 一个Group包含一个master实例和零个或多个slave实例

func (*Group) Instance

func (g *Group) Instance(isMaster bool) *Client

Instance函数如果isMaster是true, 返回master实例,否则返回slave实例

func (*Group) Master

func (g *Group) Master() *Client

Master返回master实例

func (*Group) Slave

func (g *Group) Slave() *Client

Slave返回一个slave实例,使用轮转算法

type GroupManager

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

GroupManager提供了Add和Get操作, 用于管理Group

func (*GroupManager) Add

func (gm *GroupManager) Add(name string, g *Group) error

func (*GroupManager) Get

func (gm *GroupManager) Get(name string) *Group

func (*GroupManager) PartitionBy

func (gm *GroupManager) PartitionBy(partiton func() (bool, string, string)) *Client

type SQLGroupConfig

type SQLGroupConfig struct {
	Name      string   `toml:"name"`
	Master    string   `toml:"master"`
	Slaves    []string `toml:"slaves"`
	StatLevel string   `toml:"stat_level"`
	LogFormat string   `toml:"log_format"`
	LogLevel  string   `toml:"log_level"`
}

Jump to

Keyboard shortcuts

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