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

334 天前
 FlyingBackscratc

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

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

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

3059 次点击
所在节点    Go 编程语言
16 条回复
Akitora
334 天前
Java 和 Go 的异构微服务我是用 Consul 做注册/配置,服务间通信用 grpc
lsk569937453
333 天前
表达能再清楚一点???

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

ORM? gorm xorm???

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1010488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX