非得用微服务吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
tianshunovel2
V2EX    云计算

非得用微服务吗?

  tianshunovel2 2023-12-31 21:38:55 +08:00 via Android 9276 次点击
这是一个创建于 726 天前的主题,其中的信息可能已经有所发展或是发生改变。
一开始我用 go 写了个单体架构的小说网站。
后来感觉业务流程没有梳理好,模型也有些乱,打算重构。
研究了微服务,ddd 什么的,我的目的是能够在用户增加的情况下能够很方便的提升负载能力。
但是我发现要划分好多微服务出来,但是就我一个人来开发,有必要弄得那么复杂吗?
而且边界也不好划分啊,就怕到最后互相调用,性能下降不说,改动一个功能,可能就得改动好几个服务,部署好几次。

能同时部署几个单体应用来负载均衡吗?
或者在单体应用里,对某些路由实现微服务?
如何监控到底是哪些接口占用资源高呢?
29 条回复    2024-09-29 09:03:19 +08:00
ruxuan1306
    1
ruxuan1306  
   2023-12-31 21:41:03 +08:00   8
没必要,微服务的架构本质来自组织架构。
Hurriance
    2
Hurriance  
   2023-12-31 22:21:49 +08:00
认同一楼的,技术的演化并不完全来自技术本身
frankies
    3
frankies  
   2023-12-31 22:22:56 +08:00 via Android
没必要
lovedebug
    4
lovedebug  
   2023-12-31 22:23:36 +08:00
没必要,微服务和单体都有自己的场景,千万不要为了微服务而微服务
Solix
    5
Solix  
   2023-12-31 22:25:55 +08:00 via iPhone
等你有十万用户量再改微服务也不早
BeijingBaby
    6
BeijingBaby  
   2023-12-31 22:27:46 +08:00 via iPhone   2
单体够你用到项目消失
hefish
    7
hefish  
   2023-12-31 22:36:36 +08:00
楼上的大佬们说的对,根据自己需要来搞。合适够用是原则。
est
    8
est  
   2023-12-31 22:41:04 +08:00
微服务是用来 ppt 的东西啊。这玩意从概念到推广到实施都是一家软件外包公司发明的啊。。
你没必要跟自己过意不去。
CHUB
    9
CHUB  
   2023-12-31 22:48:33 +08:00 via Android
这么说吧,以前我们组人多,每个人负责自己的模块,自己交自己的,开发速度嘎嘎快

现在人也少了,项目也少了,偶尔会几个人都集中在同一个项目里干活,互相卡进度的时候想死,merge 的时候也想死,以及,维护老项目那一坨,改一个小的有很多个地方都要一起改,也很想死,有利有弊吧。

省流:微服务适合很多个开发者一起干活的场景,人少单例完全够用。
kuituosi
    11
kuituosi  
   2023-12-31 23:12:10 +08:00
先搞明白什么是微服务
不是用了微服务框架就叫微服务
fregie
    12
fregie  
   2023-12-31 23:30:45 +08:00   4
你需要的不是微服务,是容器化+无状态服务,要扩容直接加副本
FrankAdler
    13
FrankAdler  
   2023-12-31 23:36:18 +08:00 via Android
你这种,模块划分清楚就行了。规模大了,团队大了,涉及到不同研发(团队)负责不同功能开发,单独迭代单独发版啥的才是考虑拆分的时候
blackeeper
    14
blackeeper  
   2023-12-31 23:46:52 +08:00
一个人开发,没必要弄得这么复杂

问题 1:可以,前面部署个 NG ,部署 N 个单体应用,然后负责均衡就可以了
问题 2:你可以在 NG 上转发到你拆分的微服务应用
问题 3:监控应用接口是多个层面的,要统计分析:有哪些接口,以及接口的 [调用频次,应用处理时间、SQL 处理时间、调用其它的时间、消耗 CPU 、内存,磁盘 IO]
cheng6563
    15
cheng6563  
   2024-01-01 00:36:47 +08:00
把表弄好一点就够了
Kumo31
    16
Kumo31  
   2024-01-01 00:59:58 +08:00
微服务不解决你说的负载能力问题
pigspy
    17
pigspy  
   2024-01-01 11:48:52 +08:00
单体架构足够你用到网站倒闭了
codewld
    18
codewld  
   2024-01-01 13:42:52 +08:00 via iPhone   1
微服务各模块独立自治,不会一坏皆坏,提高的是可用性,和负载能力没有直接关系。
如果只是希望提升负载能力,应该考虑将服务改成无状态,然后按需扩容服务层。
fgsqqq
    19
fgsqqq  
   2024-01-01 17:35:51 +08:00
微服务 是使 单个服务 的业务内聚性更高
不同的业务 放到不同的地方
对系统解耦 维护扩展更高效

当然 还得看项目规模 和复杂度
小项目 或几个人玩的 可以不用
大厂的 服务 基本上 微服务 因为 业务复杂,承接功能多
抽取独立成一个 ,更易于 维护
R4rvZ6agNVWr56V0
    20
R4rvZ6agNVWr56V0  
   2024-01-01 18:16:49 +08:00
任何架构模式都是顾及了康威定律而设计的。一个人的项目不需要遵守这些复杂模式。
Godjack
    21
Godjack  
   2024-01-01 19:52:44 +08:00
当然不是非得用微服务,前些年掀起了一阵微服务热,我最近时不会在 hacker news 首页上看到一些反思微服务的文章

https://blogs.newardassociates.com/blog/2023/you-want-modules-not-microservices.html

https://renegadeotter.com/2023/09/10/death-by-a-thousand-microservices.html

> 后来感觉业务流程没有梳理好,模型也有些乱,打算重构。

不管是否用微服务,都要把模块划分好

> 研究了微服务,ddd 什么的,我的目的是能够在用户增加的情况下能够很方便的提升负载能力。

单体架构也能「 方便」(对于你的小说应用来说应该够用了)提升负载能力。

有时间的话可以看看这个 https://icyfenix.cn/architecture/architect-history/
hangszhang
    22
hangszhang  
   2024-01-01 20:46:07 +08:00
组织架构决定系统架构,你这就一个人,单体就好
afeiche
    23
afeiche  
   2024-01-02 11:32:46 +08:00
以前我们领导天天让我把系统改微服务,都让我顶回去,微服务部署、运维、监控都得有,要是公司不提供这些,自己搞折腾死了
shellcodecow
    24
shellcodecow  
   2024-01-02 14:09:24 +08:00
根据实际的情况出发,流量很一般 不需要自动横向扩容,什么微服务,容器化都没必要..

不过既然你是用 go 我觉得可以学习下一些现成的框架..没必要自己研究这些,这些都是面向领导开发的
me1onsoda
    25
me1onsoda  
   2024-01-02 16:44:57 +08:00
回过头来看,很多微服务都是开发给自己简历贴金用的
petergui
    26
petergui  
   2024-01-02 18:22:05 +08:00
个人觉得是基于几层:
1. 开发人员和项目的数量
2. 流量特点, 热点服务(有多热?),热点路径
把这些分析清楚了,自然就清楚微服务不微服务。 楼上说的对 你需要的是高可用。
微服务架构本身提供的应该是多节点多服务隔离,管理,发现,扩展 等功能便捷性。
xycost233
    27
xycost233  
   2024-01-03 16:22:41 +08:00
估算一下你未来的用户规模,然后纵向切割,横向扩展,只要纵向切割得好,横向业务耦合度高一点问题也不大
zx900930
    28
zx900930  
   2024-01-04 09:44:28 +08:00
技术选型是服务实际需求的,如果你们预估的业务规模不会大规模横向扩张,没有多个项目组分开开发发版的需求,根本就没必要上微服务。
danielxxx
    29
danielxxx  
   2024-09-29 09:03:19 +08:00
14 年,后端开发 10 几个人。cto 和架构师都是新来的,上来就给原来.net 一顿重构成 java 微服务,当时微服务的 rpc 也不稳定,别说 springcloud 和 dobbo 了,那会儿 dubbo 没人用基本。
于是领导自己搞了一套 rpc ,后端基于 ddd 开发,有 facade 层,开发只关心业务代码,controller 不用管,吭哧写了 2 年后来进了阿里内网,换成了 hsf 。
所以有时候不是技术框架不合适,而是领导战略要求。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     862 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 25ms UTC 21:49 PVG 05:49 LAX 13:49 JFK 16:49
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86