zoukankan      html  css  js  c++  java
  • go xorm,负载均衡

    创建引擎组时,我们可以指示特殊的负载平衡策略。xorm上有5个负载平衡。它们是RandomPolicyWeightRandomPolicyRoundRobinPolicyWeightRoundRobinPolicyLeastConnPolicy您还可以根据GroupPolicy界面实施自己的策略

    • 随机政策
    import (
        _ "github.com/lib/pq"
        "xorm.io/xorm"
    )
    
    var eg *xorm.EngineGroup
    
    func main() {
    	conns := []string{
    		"postgres://postgres:root@localhost:5432/test?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test1?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test2?sslmode=disable",
    	}
        
        var err error
    	eg, err = xorm.NewEngineGroup("postgres", conns, xorm.RandomPolicy())
    }
    
    • 权重随机政策
    import (
        _ "github.com/lib/pq"
        "xorm.io/xorm"
    )
    
    var eg *xorm.EngineGroup
    
    func main() {
        conns := []string{
    		"postgres://postgres:root@localhost:5432/test?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test1?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test2?sslmode=disable",
    	}
        
    	var err error
    	// set the weights
    	eg, err = xorm.NewEngineGroup("postgres", conns, xorm.WeightRandomPolicy([]int{2, 3}))
    }
    
    • RoundRobinPolicy
    import (
        _ "github.com/lib/pq"
        "xorm.io/xorm"
    )
    
    var eg *xorm.EngineGroup
    
    func main() {
        conns := []string{
    		"postgres://postgres:root@localhost:5432/test?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test1?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test2?sslmode=disable",
    	}
        
        var err error
    	eg, err = xorm.NewEngineGroup("postgres", conns, xorm.RoundRobinPolicy())
    }
    
    • WeightRoundRobinPolicy
    import (
        _ "github.com/lib/pq"
        "xorm.io/xorm"
    )
    
    var eg *xorm.EngineGroup
    
    func main() {
        conns := []string{
    		"postgres://postgres:root@localhost:5432/test?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test1?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test2?sslmode=disable",
    	}
        
        var err error
        // set the weights
    	eg, err = xorm.NewEngineGroup("postgres", conns, xorm.WeightRoundRobinPolicy([]int{2, 3}))
    }
    
    • 最低Conn政策
    import (
        _ "github.com/lib/pq"
        "xorm.io/xorm"
    )
    
    var eg *xorm.EngineGroup
    
    func main() {
        conns := []string{
    		"postgres://postgres:root@localhost:5432/test?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test1?sslmode=disable;",
    		"postgres://postgres:root@localhost:5432/test2?sslmode=disable",
    	}
        
        var err error
    	eg, err = xorm.NewEngineGroup("postgres", conns, xorm.LeastConnPolicy())
    }
  • 相关阅读:
    PHP使用Memcache来存储session 其他【转载】
    Linux 学习记录 20170218
    php 数组去重
    关于php的array_diff和array_diff_assoc的使用总结
    使用谷歌浏览器调试WEB前端的一些必备调试技巧
    MySql 赋值操作符"="与":="
    移动设备检测类Mobile_Detect.php
    PHP Filter 函数 日常可用
    以符合人类阅读的方式打印php数组【转载】
    JavaWeb:HttpSession(一)
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12717964.html
Copyright © 2011-2022 走看看