数据层是否可以独立为RPC?

作者站长头像
站长
· 阅读数 6

假设有多个应用,调用同一套Models数据,多个应用都需要各自实现数据访问层方法,有大量的重复代码,所以想是否可以将这部分代码独立为RPC,这样不管是模型声明还是方法只需要实现一次,各个应用通过调用RPC实现数据读写。

实践中这样是否可行?

回复
1个回答
avatar
test
2024-07-05

从道理上来说是可行的,最近我针对用户部分就做了一套类似的东西,用k8s部署在同一套内网损耗不了多少性能。

但是用golang的话,且都是用的同一套数据库或者说数据库、表结构一致,可以作为一个 pkg 不同项目引入进来就行了,使用起来更方便,然后统一维护这套 pkg 就行了,不需要搞得那么复杂。

然后以我的经验来说一下用RPC做数据层的场景:

  1. 控制不同应用拿到的数据不同,可以放到 RPC 里统一做控制。
  2. 底层数据库部分对于实际应用访问来说,不能完全暴露,只有后台才可以访问全部数据,那么基于这种情况考虑可以独立成 RPC 调用,并把这一层的数据库独立出来专门用这套服务来做管理。
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容