难道所有项目都要滥用中间件吗?

2023-07-28 16:32:51 +08:00
 csw3983931

首先本人是一个 Java 程序员,Java 生态还是比较周全的,像注册中心,配置中心,日志收集,调用链追踪,分库分表等等。

但是我心中突然有一个疑问,为什么一定要用上这些东西,真的有必要吗?比如说注册中心,没有一定的用户量,或者不是容器化,搞什么注册中心? nginx 转发不是根据高效?还有配置中心?又不是几百上千个应用,才几个应用上什么配置中心。

我发现很多小的创业公司,上来就是搞什么微服务,真的有必要?难度不是徒增资源的成本和维护成本?

我觉得任何中间件都是对应困境中而产物,如果没有遇到这些困境,为了用而用,是不是纯粹的在炫技?

6855 次点击
所在节点    程序员
65 条回复
leegradyllljjjj
2023-07-29 13:40:09 +08:00
我微服务容器化 k8s 都上了,怎么没人来访问啊,老板你说句话呀
没有淘宝的命得了淘宝的病
salmon5
2023-07-29 16:17:53 +08:00
你说的对的,不搞这些怎么搞 KPI 呢?怎么拿公司联手呢?反正代价也是公司付出。
大多数人在一个公司也就 1-2 年,练完手,拍拍屁股就走了
bigbrother
2023-07-29 16:31:45 +08:00
为了写简历啊
daimubai
2023-07-29 16:37:09 +08:00
嗯,其实单体项目完全足够了的,再加两台服务器部署个集群也完全可以的。
nkidgm
2023-07-29 17:07:53 +08:00
其实很多玩微服务的人连单体应用都还没玩明白。。。
ClericPy
2023-07-29 17:26:51 +08:00
没有三年以上运维给你支撑, 用任何第三方中间件都是在给接手的人添乱

尤其是连服务治理都不做的情况下滥用微服务, 年份越大灾难越重
angryfish
2023-07-29 17:36:47 +08:00
如果后端开发就 3,5 个人的话写微服务拆分得太细会很痛苦。对于小公司,从公司角度还是建议一个单体 jar 走天下。
但对于个人发展,当练手吧。
brookegas
2023-07-29 20:53:19 +08:00
这已经是公开的秘密了
其实道理都懂,以用户量来看根本用不上注册中心、分库分表这些花活
但是大家都这么玩,把简单的应用工作量放大了好几倍
好处是经济上行时多了几倍的码农岗位,高薪摸鱼乐无边
坏处是拉低了效率,经济下行时企业死得快,码农跟着一起堕入深渊
ashuai
2023-07-29 21:10:14 +08:00
公司去投项目,项目一般不大,2C4G 的物理机足以支撑,但那帮不懂的麻瓜好像感觉中间件用得越多越牛 x 。搞安全的都不知道缩哪去了
jiangzm
2023-07-29 21:22:06 +08:00
小公司上微服务倒不一定有问题,就怕瞎拆分几个人能拆 10 几个服务,除了浪费资源也没太大实际好处。
xuanbg
2023-07-29 21:45:01 +08:00
微服务从来没有说要多少用户量才值得上,微服务主要解决的是系统复杂度的问题。解决量的问题,是分布式系统的事,只不过微服务天然就支持分布式而已。

所以,只要系统比较复杂,哪怕只是为了能够方便维护和扩展功能,只要会用一些 devOps 工具,譬如会简单使用 k8s 来解决运维领域的问题的话,微服务就是最好的解决方案,没有之一。

我上个月接了个活,才 6w 。如果我从无到有给他搞单体服务,估计 2 个月才能搞得定。而采用微服务方案,上线时间就变成 20 天了。
tin3w5
2023-07-29 22:37:32 +08:00
格局小了,你只是从你的角度来看,他是个小微企业,从老板的角度来看,万一以后要扩容呢?客户量大了,需要拆的时候再重写?
与其未来 capacity 不足的时候手忙脚乱的拆服务,不如初期设计的时候就做好,免得以后麻烦。
咱们都是搞技术的,没必要过多干涉上面的决策。他们搞多大项目,咱们要多少钱,只要钱到位,什么花活咱都会。
diagnostics
2023-07-29 22:48:12 +08:00
因为留有扩展的余地吧,拿基金头部的软件恒生来说,他们的 o32 也是单体,和你们的思路一样,单体做到极致,后果就是:

1. 很多功能没法加,代码已经非常庞大了
2. 扩展性非常差,只能一直堆最好的硬件

1 、2 都导致了很多功能做在其他系统,导致恒生和其他第三方厂商做的系统没啥区别。

恒生自己也在做 o45 ,然后就落后别人了,很多券商也在做去恒生化了。当然未来可能不一定

所以,为什么要搞这些?当然小公司,没发展空间就可以没必要了,另外其实新技术挺方便的,尤其是 有一套 k8s 对于开发来说,测试非常方便,压测也很方便。
olaloong
2023-07-29 23:18:54 +08:00
都是成熟的东西,使用成本没你想得那么高,顺手就用上了
真等后期需要了再改,那成本可高多了
akira
2023-07-30 00:20:35 +08:00
你要是说小的创业公司的话,那可以 php 一把梭 验证商业模型
去到一定量级以后再用 java 整体重构
snBDX1b0jJM4ogKd
2023-07-30 01:38:34 +08:00
有没有可能,对他来说,一个 jar 就默认搞定了这些东西,部署也是驾轻就熟。
如果因为项目太小,非要让他重新搞一个精简的出来,他的工作量可能更多。那不是另一个角度的过度设计?
jdOY
2023-07-30 03:16:35 +08:00
老板说要什么你就搞什么
gejun123456
2023-07-30 09:37:04 +08:00
没必要,小公司弄单体应用就行,做大做强再优化
murmur
2023-07-30 10:07:15 +08:00
中间件就是 tomcat ,你不会连这个都不知道吧
murmur
2023-07-30 10:07:27 +08:00
更正:tomcat 就是中间件的一种

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

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

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

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

© 2021 V2EX