关于微服务设计的一个问题

2020-03-11 07:19:30 +08:00
 Aliberter

公司关于微服务项目的设计中,打算把所有关于数据库的操作都集中到单独的服务中,每一个其他微服务有数据的增删改查都要去调用这个服务获取,我想问这有必要吗,甚至说这是不是已经违背了微服务的设计原则了?我感觉除了带来服务之间耦合性之外,也让数据事务的控制变得很难,增加了网络消耗,甚至也让开发层面变得异常困难与繁琐,想不通为什么要这么搞,感觉毫无优点可言。请大佬们指点一下。

9213 次点击
所在节点    程序员
64 条回复
sampeng
2020-03-12 12:53:39 +08:00
100 人以下别玩微服务。1000 万级访问量别玩微服务。年盈利亿以下别玩微服务
no1xsyzy
2020-03-12 15:18:17 +08:00
@TingHaiJamiE 本身成为瓶颈太少见了,服务本来就可以伸缩…… 不能的话那根本就不是微服务,只是进行分离的一大块。就好像说,我不会称竞泳为比基尼。
no1xsyzy
2020-03-12 15:25:26 +08:00
这样的做法还想要符合微服务,有一种办法:多版本数据服务共存。A 组件依赖数据服务 1.0,B 组件依赖数据服务 1.1
最终都读同一个数据库,并且相互不影响。某天 B 组件想升 2.0 也就升了,仍然不需要考虑 A 是否能兼容 2.0。
xmsz
2021-08-17 15:57:10 +08:00
不知道是你们公司架构的问题还是你理解的问题(因为初期的表现确实就是个数据库增删改查的接口封装)

一般架构思想其实很简单,就是

原来都是单体应用,维护麻烦,崩得也很彻底

维护麻烦怎么办?拆应用呗,1 个单体应用拆成 5 个业务应用,每个业务应用还可以不同人维护,这样不就解决了。


---------------

我们知道了用拆可以解决问题,那理论上拆得越多问题解决越彻底,当然这肯定有副作用(需要自己权衡)


--------------

而你遇到的问题其实在于怎么拆?

如果仅仅只是把数据库的读写拆出来,那这个肯定是很无语的,因为根本没有解决问题

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

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

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

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

© 2021 V2EX