golang实现mysql代理读写分离示例代码

代码语言:golang

所属分类:其他

代码描述:golang实现mysql代理读写分离示例代码,后端mysql数据库集群是一主多从。

代码标签: golang mysql 代理 读写 分离 示例 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

package main

import (
    "fmt"
    "log"
    "net"
    "strings"
    "sync"

    "github.com/go-mysql-org/go-mysql/client"
    "github.com/go-mysql-org/go-mysql/mysql"
    "github.com/go-mysql-org/go-mysql/server"
)

const (
    readHost  = "127.0.0.1:3306" // 只读副本 MySQL 服务器地址
    writeHost = "127.0.0.1:3306" // 主 MySQL 服务器地址
)

func main() {
    // 启动代理服务器
    l, err := net.Listen("tcp", "127.0.0.1:3307")
    if err != nil {
        log.Fatal(err)
    }
    defer l.Close()
    log.Println("Proxy server is listening on 127.0.0.1:3307")

    for {
        conn, err := l.Accept()
        if err != nil {
            log.Println(err)
            continue
        }

        go handleConnection(conn)
    }
}

func handleConnection(conn net.Conn) {
    // 确保连接在所有情况下都被关闭
    defer conn.Close()

    // 创建一个新的MySQL连.........完整代码请登录后点击上方下载按钮下载查看

网友评论0