V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
yuancoder
V2EX  ›  Go 编程语言

go 练手写了个小项目 mysql 代理连接池

  •  
  •   yuancoder · 2022-11-03 18:54:37 +08:00 · 1552 次点击
    这是一个创建于 780 天前的主题,其中的信息可能已经有所发展或是发生改变。
    go 练手写了个小项目,mysql 代理连接池, 大家帮忙看看点点 star

    https://github.com/lyuangg/umyproxy
    6 条回复    2022-11-04 16:42:43 +08:00
    bthulu
        1
    bthulu  
       2022-11-04 09:14:33 +08:00
    是类似 mysql 企业版的那种连接池吗?
    heybuddy
        2
    heybuddy  
       2022-11-04 09:24:56 +08:00
    这个可以用在生产环境吗?我想学习学习怎么实现这个连接池
    yuancoder
        3
    yuancoder  
    OP
       2022-11-04 10:01:34 +08:00
    @bthulu 企业版的没用过,这个是代理 client 端的连接。


    @heybuddy 不建议在生成环境下用,学习的话可以看看源码,代码也不复杂。
    xx6412223
        4
    xx6412223  
       2022-11-04 12:32:53 +08:00
    golang 的 sql package 本来有 cache connection 的
    另外,是不是应该加一个 select 1 的心跳功能,
    yuancoder
        5
    yuancoder  
    OP
       2022-11-04 15:06:36 +08:00
    @xx6412223 连接的时候会设置 keepalive ,而且还有一个空闲时间,所以我觉得心跳就没有必要加了。
    lesismal
        6
    lesismal  
       2022-11-04 16:42:43 +08:00
    @xx6412223 心跳用 db.Ping()就行了。但 Ping 也只是单个连接,如果要每个连接 7 层 keepalive 可能还是要自己封装下。
    @yuancoder conn 的 keepalive 只是 4 层的,不过也还好,数据库都内网,比较稳定,够用了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:37 · PVG 20:37 · LAX 04:37 · JFK 07:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.