关于微服务架构想请教下

1 月 18 日
 Kinnikuman

我是个前端,想学习下后端以及 devops ,懂点 docker ,懂点 linux ,自己写过 golang 和 nodejs 。自己搞的都是单体应用。

但最近公司有个项目(项目不大)使用了 Java 技术栈,也就是 spring boot 那一套,spring cloud, nacos, rabbitmq/kafuka, redis/pg/es 。

其中 redis/pg/es 是和语言无关的,不管是 Java, golang 还是 rust 都是基础设施。其中还包括一些没列出来的 minio/grafana 看板,预警通知等功能。

但关于微服务架构(nacos),有点陌生,没学过 Java ,所以想请教下论坛中的大佬,如果换成其他的语言,比如 golang node 等,是不是没有这种架构?或者说不流行这种架构?只有 spring boot 这种的才流行微服务这一套?

比如使用 serverless 的 cf worker ,把各种功能分散到各个 edge 节点上。

或者直接使用 k8s 来做具体的运维(项目够大/用户够多)。


我写的有点乱,不知道大佬们是否能 get 到我的疑惑。

3892 次点击
所在节点    程序员
28 条回复
Ipsum
1 月 18 日
nacos 是注册中心是微服务的一部分。b 站多学习学习再来?
Kinnikuman
1 月 18 日
@Ipsum 大致了解这些,java 项目中多个业务切分开,然后使用 nacos 来治理这些 services ,它会做 gateway 和健康检查等功能。不想细致的学习这些,所以就来问问嘛。
lifei6671
1 月 18 日
微服务也是和语言无关的。nacos 是配置中心,可以实现服务注册和发现,类似的还是古老的 Zookeeper ,现代化的 Etcd ,consul 等。这都是和语言无关的。只要是微服务就得有配套的服务注册和发现机制。
cf 的 worker 本质上不是微服务呀,只是边缘节点的一个计算单元,不需要服务发现机制。
k8s 的数据源就是储存在 etcd 上,通过 coredns 做服务到 ip 的解析。一般情况下使用 k8s 就可以实现微服务架构了,如果想要深度的做服务治理,可以直接上 Service Mesh 。
mymx2
1 月 18 日
微服务嘛,我们自嗨的东西。

你是个前端。就按你理解的前后端分离(边界清楚了),数据和视图分离(耦合降低了)。

你觉得应该这么干的时候就可以上微服务了。
Need4more
1 月 18 日
微服务已死。你以后想转全栈的话后端也不要选 Java 。Java 是企业级语言,我下班了再也不想碰它,整个语言太重了,叠床架屋,不适合 AI 编程。
liumao
1 月 18 日
小项目用微服务就是浪费资源
nansshan
1 月 18 日
java 语言用 spring 就是封装的太好了,所有的轮子都造好了,很多公司都是为了微服务而微服务。大部分项目其实无需微服务,只需要单体就可以,如果会 go 那就继续研究 go 比 java 未来应用场景会多一些
SethShi
1 月 18 日
微服务编程语言级别的: Java SpringBoot, 其它语言都有对应的微服务框架(核心就是服务发现, 注册, 熔断等等 )
以下这些都是因为服务多了有对应的管理方案, 和语言无关
注册发现需要: Nacos / etcd 等服务 等同于单体服务中代码中调用某个内部服务的域名 ip 等
配置中心需要: Nacos 等同于单体服务中的配置文件
小项目用 K8S 也无所谓
sentinelK
1 月 18 日
微服务是一种理念。不是一个技术选型或技术选型组合。

nacos 只是阿里给微服务做的一个平台工具而已。你可以用,也可以不用。楼上举出了很多替代方案和其他的实现方式。
xiaomushen
1 月 18 日
别微服务了,真的。绝大多数系统,没必要微服务。
纯粹是后端架构师自嗨和挖坑
freemoon
1 月 18 日
提示词:“帮我介绍单体架构/SOA 架构/微服务架构/服务网格架构/无服务架构,它们逐级演进的故事”。
freemoon
1 月 18 日
serverless 严格来说不算是一种架构,只是处理某些狭窄场景的方案。微服务的下一步演进是服务网格。

当然,任何架构都是和语言无关,术与道的关系。
nbndco
1 月 18 日
@lifei6671 你可以认为 cf worker 已经通过域名(其实还可以通过 service binding )实现了服务发现了。
soleils
1 月 18 日
微服务就是坑
aarontian
1 月 18 日
微服务跟语言无关,java 用得到可以了解一下,不学也不会错过啥,很多资深后端也不一定会 java
lujiaxing
1 月 18 日
微服务并不限制编程语言. 你用 Java 可以微服务, 用 C# 可以微服务, 用 Golang 也可以微服务. 微服务不绑定某个编程语言, 甚至可以 A 模块用 C# 开发, B 模块用 Kotlin 开发, 没有任何问题. 随你便. 这也就是为什么好多企业招聘开发工程师时候不会说招聘 "高级 Java 开发工程师", 而是说招聘 "后端开发工程师". 因为他们是允许后端用不同的编程语言开发的, 反正都是微服务, 只要按时把活儿给老子交出来你用 Java 用 Golang 随你大小便. 反正交付出来的是 tar 包, 运行起来是 CI/CD 推到 Docker 集群.

但是在 2026 年一月份的当下, 微服务正在从 "通用方案" 回归到 "特定场景方案". 无他, 微服务架构对于很多中小型企业来说没有任何意义. 微服务架构解决的是极端复杂的产品或者巨大团队的开发协作问题. 比如一些系统复杂得如蛛网一般, 新人上手的时候光理解既有的代码库可能就需要一两个月的时间. 但是如果拆分为微服务, 每个小模块都是很简单的逻辑. 模块之间通过标准的 RPC 接口通信. 负责维护的人只需要理解这一小模块的逻辑即可, 无论是后期离职交接还是新人上手都可以相对快.

但是微服务的代价也是非常昂贵的. 有一句话叫 "程序复杂性从来都不会消失, 只会转移". 微服务把单体里 "开发时的耦合复杂性", 转移成了 "运行时的维护的复杂性", 但从未真正地消解掉过这些复杂性. 原本大单体那种东西只要简单地把程序集往服务器上一丢了事. 有问题, 有问题看日志啊! 日志连具体哪行代码出的问题都能给你记下来. 但是一旦上了微服务, 就必然要考虑每次上线时候的模块依赖问题, 以及部署、监控、日志、扩容问题, 必须引入服务注册发现 (Nacos/Eureka)、链路追踪 (SkyWalking)、配置中心 (Apollo)、可观测性 (OpenTelementry) 等各种各样的组件. 否则一旦出现生产环境问题完全就抓瞎. 而这些东西就必然涉及到额外的成本. 而且据我所知, 这些东西在各种云服务上, **价格都不低**. 而在 2026 年中国大陆经济整体自由落体的大环境下, 基本上除了大厂以及外企以外几乎没有哪个企业乐意把钱花在这种毫无意义的地方. 所以你可以看到前些年大搞微服务, 云原生的各种厂正在大规模下云, 逐渐回归 "单体 + 分布式部署" 的模式. 毕竟对于大多数中厂小厂来说, 他们的产品一年产生的利润都未必能抵消支撑微服务所需要的成本. 一个日均 PV 连十万都不到, 下线 10 分钟收不到一个投诉电话的产品, 整那么多没用的干啥? 咱做的是商业产品, 又不是艺术品.

而大厂们虽然确实依然在推行微服务/云原生, 但是目前来说, 大厂的门槛已经高到天上去了. 基本你可以不考虑大厂. 而外企目前由于中美冲突, 大部分外企都锁 HC 了, 随时准备裁撤中国研发中心 (如 Microsoft, Marvell). 所以这节骨眼去学研究微服务, 学 DevOps 可以说是不太明智了. 更何况剩下还在头铁搞微服务的中厂小厂, 现在也更倾向于招聘有实际落地项目的 DevOps 工程师. 你现在才学, 学完了根本没有机会让你在简历上添上一个微服务架构的项目经历, 真需要 DevOps 岗位的企业不清楚你对 DevOps 的理解程度大概连面试都不会给你.

总之: 不建议为了转岗而空学 DevOps.

但是即便不去研究什么微服务, RabbitMQ, 容器化跟 Kubernetes 也还是有必要深入研究的. 这些组件现在的重要程度跟当年的 IIS, Tomcat 一样重要. 是现代互联网开发的基础设施. 即便单体架构也用得到.
lujiaxing
1 月 18 日
而如果你这个项目业务逻辑没那么复杂, 你团队的人数也没有百人之众, 完全没必要上微服务. 纯粹是给自己找不痛快.
franklinyu
1 月 19 日
一句話,選擇微服務是需要理由的,不選擇微服務不需要理由。除非做過調研,默認選擇應該是庫,不是微服務
superhot
1 月 19 日
推荐看看周志明老师的《凤凰架构》,你的疑惑在里面有解释:
https://icyfenix.cn/
kifile
1 月 19 日
一句话解释一下为什么选型用微服务:

微服务帮你包装了远程调用通信协议和内部服务发现能力,你可以把微服务当成你本地的一个接口方法直接去调用;所以当单体服务拆分时,或者多站点部署时,可以简单快速的完成服务重用,而不需要自己通过 HTTP 或者其他方式去重写一套内部交互逻辑。

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

https://study.congcong.us/t/1186555

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

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

© 2021 V2EX