设置 Engine 组策略

    • 随机访问负载策略
    • 权重随机访问负载策略
    1. _ "github.com/lib/pq"
    2. "xorm.io/xorm"
    3. )
    4. var eg *xorm.EngineGroup
    5. func main() {
    6. conns := []string{
    7. "postgres://postgres:[email protected]:5432/test?sslmode=disable;",
    8. "postgres://postgres:[email protected]:5432/test1?sslmode=disable;",
    9. }
    10. var err error
    11. //此时设置的test1数据库和test2数据库的随机访问权重为2和3
    12. eg, err = xorm.NewEngineGroup("postgres", conns, xorm.WeightRandomPolicy([]int{2, 3}))
    13. }
    • 轮询访问负载策略
    • 权重轮询访问负载策略
    1. import (
    2. _ "github.com/lib/pq"
    3. "xorm.io/xorm"
    4. )
    5. var eg *xorm.EngineGroup
    6. func main() {
    7. "postgres://postgres:[email protected]:5432/test?sslmode=disable;",
    8. "postgres://postgres:[email protected]:5432/test1?sslmode=disable;",
    9. "postgres://postgres:[email protected]:5432/test2?sslmode=disable",
    10. }
    11. var err error
    12. //此时设置的test1数据库和test2数据库的轮询访问权重为2和3
    13. eg, err = xorm.NewEngineGroup("postgres", conns, xorm.WeightRoundRobinPolicy([]int{2, 3}))
    14. }
    • 最小连接数访问负载策略
    • 自定义负载策略
    1. type GroupPolicy interface {
    2. }