从微服务走向单体化

280 天前
 xhwdy26

CEO 觉得微服务部署极其繁琐,什么 nacos 、mq 、redis 都好复杂,远不如零几年的开发一条龙从后台到前端那么简单。

要求把十来个微服务(用户、订单、后台、网关等)合并成一个。

简化部署,只一台机器搞定。

试问,这种单体程序最后以怎样的方式崩溃。

15050 次点击
所在节点    程序员
165 条回复
javalaw2010
279 天前
我觉得一家公司如果在技术架构上使用单体还是使用微服务有争议,那大概率就不必使用微服务。
guotie
279 天前
毫无问题

单体为啥不能扩展????
zen1
279 天前
先搞懂什么是单体,什么是微服务吧。微服务不是银弹,单体也不是什么 low 货!
xuelu520
279 天前
看着我 source tree 里面的 20 多个微服务项目,开发一个需求涉及 N 个服务,太鸡儿麻烦了
我司部门什么东西搞个微服务,有点为了微而微的感觉了。
Pdk5a8759cbeD6CH
279 天前
@mbeoliero123 单体是指把所有服务揉进一个项目吧,又不是单机不能搞负载均衡。你微服务不搞多台机子 流量大的时候也扛不住啊。
Gll910802
279 天前
@lqw3030 的确,我们目前就这么处理的。想 all in one ,就单独启动一个 jvm 引入所有包的那个工程。想微服务,就各自模块单独工程单独 jvm 启动
ciki
279 天前
@yinmin #5 单体和用不用消息队列没关系,消息队列只是个中间件
ciki
279 天前
@yinmin #29 看你上面疯狂回复一堆,我建议你重新学习下基本概念吧
tongqe
279 天前
要看自己的系统是否是复杂系统,复杂系统中的每个元素的行为和关系是不一致的,比如几个关键指标,高可用,高吞吐,高扩展花成一个三维坐标轴,比如银行的交易服务,对高可用,高吞吐要求极高,而一些统计模块的实时性要求没那么高。这种元素之间的差异性是天然存在,无法避免的,自然要拆分。如果再带入组织架构和人类协作的方式上,拆分微服务是当下比较合适的方案。至于楼上一些帖子说,spring 和 Java 作为基础设施占用内存的问题,其实是优先级非常低的问题
runlongyao2
279 天前
docker 把服务部署到一台机器,这样要改的少点
runlongyao2
279 天前
@yinmin 哪儿那么多百万级的业务...如果有,迁出来这一个单独部署和维护就好
Pdk5a8759cbeD6CH
279 天前
@hdfg159 # 90 这种情况微服务和单体没任何区别,我们的微服务的数据库、proto 文件,项目地址都拆分开的,负责用户服务的就拉用户服务的代码。
runlongyao2
279 天前
@xhwdy26
把原本部署方案改成用 docker 容器部署,每个项目都是一个镜像就行,这些镜像都部署到一台机器上,
源码层面不需要动
Pdk5a8759cbeD6CH
279 天前
@yinmin 单体和用不用消息队列有啥关系?难道单体的都没有处理过购买未付款,然后等 20 分钟自动取消订单然后归还库存的业务吗?
fcten
279 天前
如果这些功能只要 3 ~ 5 人一个团队就能维护,单体服务并没有什么问题
runlongyao2
279 天前
@keller 老兄明白人
uRQDd07Pt2UWOtOF
279 天前
单体系统为了解决自身的各种内部问题,分化为多个微服务系统,当各个问题解决解决后,又合并为一个新的单体系统,螺旋型进化,往复这个循环
lvlongxiang199
279 天前
harry90
279 天前
业务量如何 增长如何 多大规模 未来预期如何 什么样的团队 任何架构选择都可以考虑实际情况
runlongyao2
279 天前
@ryalu 微服务最大问题就是,容易导致成本失控,这种失控不像项目失败一样,它是隐形的。

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

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

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

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

© 2021 V2EX