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

Go 语言实现一个数据库中间件项目应该采用什么框架?

  •  
  •   FlyingBackscratc · 311 天前 · 3042 次点击
    这是一个创建于 311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自身情况:熟练掌握其他语言,go 看了一下午现在勉强能写。

    需求:实现一个类似数据库中间件,帮忙处理一些解协议、读取数据、归纳等等的请求。想了想感觉这种纯 IO+计算的任务,还是 Go 比 Java 更适合需求。项目定位不是特别企业化流程那种的,大概是需要实现微服务和容器化,但不需要大规模组织部署管理这样的。

    想问下现在构建类似的项目主流依赖的环境都有哪些?有无老哥列一些关键字,让我搜索学习。感觉大概就是消息队列、网络通信、稍微有那么一丁点科学计算、日志、监控这几个主要环节吧。不想用特别新或者特备旧的框架。(后端是 RocksDB ,开源项目没查到比较满意的,想自己做一个实现)

    16 条回复    2024-01-22 17:32:26 +08:00
    Akitora
        1
    Akitora  
       311 天前
    Java 和 Go 的异构微服务我是用 Consul 做注册/配置,服务间通信用 grpc
    lsk569937453
        2
    lsk569937453  
       311 天前
    表达能再清楚一点???

    数据库中间件做什么用?兼容什么协议(mysql/postgresql/mssql 协议)?
    kuituosi
        3
    kuituosi  
       311 天前
    可以参照 geth, 以太坊的 go 实现
    me1onsoda
        4
    me1onsoda  
       311 天前
    写这种基础设施还要用框架吗,不是应该直接上手撸吗
    Richard14
        5
    Richard14  
       311 天前
    @lsk569937453 挺清楚的吧,OP 写的类似中间件+RocksDB ,你这 mysql/pg/mssql 什么鬼
    mightybruce
        6
    mightybruce  
       311 天前
    中间件不怎么用各种框架,都是想法设法减轻对第三方依赖的,这不是业务开发,中间件要想可控性强,就别用什么框架,一些通用的 bug 少的库可以用用
    sztink
        7
    sztink  
       311 天前
    开发中间件是没有什么框架的,你可以参考其他开源中间件怎么实现的。一般都是 reactor 模式,在 go 语言里面套路都一样,accept 客户端连接,然后开个 goroutine 处理。推荐看看 nsq ,nats, rpcx 等开源项目。
    lsk569937453
        8
    lsk569937453  
       311 天前
    @Richard14 看来你已经理解的很清楚了,中间件+RocksDB 。
    那你能解释一下,这个中间件的主要功能是什么?
    jimrok
        9
    jimrok  
       311 天前
    我记得这种中间件有人实现过,可以做数据库高可用的代理,做拆库的数据聚合,查询的性能优化。
    aw2350
        10
    aw2350  
       311 天前
    帮忙处理一些解协议、读取数据、归纳等等的请求
    -----------------------------------------------
    感觉你这个纯业务,称不上中间件
    aw2350
        11
    aw2350  
       311 天前
    @Richard14 大哥,中间件不去解析协议,那叫个毛中间件?
    bthulu
        12
    bthulu  
       311 天前
    用什么中间件, 直接用 go 写一个开源数据库啊
    dayeye2006199
        13
    dayeye2006199  
       311 天前
    我看了两遍没看明白 OP 想弄个啥,盲猜一个 envoy ?
    noyidoit
        14
    noyidoit  
       311 天前
    感觉解协议、读取数据、连接池管理之类是 driver 做的事,而日志和监控需要自己封装 database/sql ,至于归纳和科学计算,虽然知道是什么意思,但结合你这个场景不知道是什么意思
    liprais
        15
    liprais  
       311 天前
    做了你就知道 jdbc/odbc 的好了
    shellcodecow
        16
    shellcodecow  
       311 天前
    database proxy???

    ORM? gorm xorm???
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3234 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:54 · PVG 20:54 · LAX 04:54 · JFK 07:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.