自身情况:熟练掌握其他语言,go 看了一下午现在勉强能写。
需求:实现一个类似数据库中间件,帮忙处理一些解协议、读取数据、归纳等等的请求。想了想感觉这种纯 IO+计算的任务,还是 Go 比 Java 更适合需求。项目定位不是特别企业化流程那种的,大概是需要实现微服务和容器化,但不需要大规模组织部署管理这样的。
想问下现在构建类似的项目主流依赖的环境都有哪些?有无老哥列一些关键字,让我搜索学习。感觉大概就是消息队列、网络通信、稍微有那么一丁点科学计算、日志、监控这几个主要环节吧。不想用特别新或者特备旧的框架。(后端是 RocksDB ,开源项目没查到比较满意的,想自己做一个实现)
1
Akitora 299 天前
Java 和 Go 的异构微服务我是用 Consul 做注册/配置,服务间通信用 grpc
|
2
lsk569937453 298 天前
表达能再清楚一点???
数据库中间件做什么用?兼容什么协议(mysql/postgresql/mssql 协议)? |
3
kuituosi 298 天前
可以参照 geth, 以太坊的 go 实现
|
4
me1onsoda 298 天前
写这种基础设施还要用框架吗,不是应该直接上手撸吗
|
5
Richard14 298 天前
@lsk569937453 挺清楚的吧,OP 写的类似中间件+RocksDB ,你这 mysql/pg/mssql 什么鬼
|
6
mightybruce 298 天前
中间件不怎么用各种框架,都是想法设法减轻对第三方依赖的,这不是业务开发,中间件要想可控性强,就别用什么框架,一些通用的 bug 少的库可以用用
|
7
sztink 298 天前
开发中间件是没有什么框架的,你可以参考其他开源中间件怎么实现的。一般都是 reactor 模式,在 go 语言里面套路都一样,accept 客户端连接,然后开个 goroutine 处理。推荐看看 nsq ,nats, rpcx 等开源项目。
|
8
lsk569937453 298 天前
@Richard14 看来你已经理解的很清楚了,中间件+RocksDB 。
那你能解释一下,这个中间件的主要功能是什么? |
9
jimrok 298 天前
我记得这种中间件有人实现过,可以做数据库高可用的代理,做拆库的数据聚合,查询的性能优化。
|
10
aw2350 298 天前
帮忙处理一些解协议、读取数据、归纳等等的请求
----------------------------------------------- 感觉你这个纯业务,称不上中间件 |
12
bthulu 298 天前
用什么中间件, 直接用 go 写一个开源数据库啊
|
13
dayeye2006199 298 天前
我看了两遍没看明白 OP 想弄个啥,盲猜一个 envoy ?
|
14
noyidoit 298 天前
感觉解协议、读取数据、连接池管理之类是 driver 做的事,而日志和监控需要自己封装 database/sql ,至于归纳和科学计算,虽然知道是什么意思,但结合你这个场景不知道是什么意思
|
15
liprais 298 天前
做了你就知道 jdbc/odbc 的好了
|
16
shellcodecow 298 天前
database proxy???
ORM? gorm xorm??? |