数据层是否可以独立为RPC?
假设有多个应用,调用同一套Models
数据,多个应用都需要各自实现数据访问层方法,有大量的重复代码,所以想是否可以将这部分代码独立为RPC
,这样不管是模型声明还是方法只需要实现一次,各个应用通过调用RPC实现数据读写。
实践中这样是否可行?
回复
1个回答
test
2024-07-05
从道理上来说是可行的,最近我针对用户部分就做了一套类似的东西,用k8s部署在同一套内网损耗不了多少性能。
但是用golang的话,且都是用的同一套数据库或者说数据库、表结构一致,可以作为一个 pkg
不同项目引入进来就行了,使用起来更方便,然后统一维护这套 pkg
就行了,不需要搞得那么复杂。
然后以我的经验来说一下用RPC做数据层的场景:
- 控制不同应用拿到的数据不同,可以放到
RPC
里统一做控制。 - 底层数据库部分对于实际应用访问来说,不能完全暴露,只有后台才可以访问全部数据,那么基于这种情况考虑可以独立成
RPC
调用,并把这一层的数据库独立出来专门用这套服务来做管理。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容