十几年不搞 Java ,重新看起了微服务

2020-06-27 13:34:04 +08:00
 skyworker
十年内前搞过 java,当时主要搞得是 hibernate, spring,webwork 之类的 J2EE 框架, 后来工作后转行金融证券. 5 年前恢复搞 IT, 一直用 laravel, 相对于十年前 J2EE 的啰嗦, 觉得 laravel 非常不错.


最近接收一个项目, 是一个 app 项目的后台, 基本上就是一个论坛吧, 用户注册发帖什么的, 有 iOS/安卓 /微信客户端. 同事把原后台发来后, 看到是 java 的, 心头一震"又要搞这些啰嗦的玩意了", 但是拿到代码后,发现远比"啰嗦"更复杂.

原开发者把后台的 api 做成了 Spring cloud ribbon with eureka 的微服务架构, 用户认证 /帖子获取之类的接口用"微服务"来实现....

嗯, 这种方式很 JAVA, 很"企业级"

我也理解 ,当年有 Hibernate 或者 ORM 的时候, 有些人会说 "拼 SQL 才是最高效的,其他都是奇巧淫技". 用更高级的方法来替代原有的旧架构, 是发展的需要, 不要螳臂档车.

但是, 一个 app 的后台接口, 有必要用 ribbon/eureka 这类的"微服务"来实现吗? 没有太复杂的业务逻辑, 基本上都是对数据库的 CRUD, 难道不是这个项目的"发起人"又是某个 "企业级架构师" 主导的项目吧?


企业级 /架构师 /微服务 /J2EE....

这些玩意现在真是看一次, 吐一次
8994 次点击
所在节点    程序员
76 条回复
mreasonyang
2020-06-27 22:50:15 +08:00
@sampeng 人少分不出基础组件部门就直接用开源方案呗。。你可以了解下各大厂的人员分工情况
BBCCBB
2020-06-28 09:26:25 +08:00
你说的这些, 包括你自己的问题, 我感觉最后都是人的问题.
guolaopi
2020-06-28 09:42:06 +08:00
别问,问就是 Java,
别问,问就是 Spring Cloud,
别问,问就是微服务,
什么?都 2020 年了你还在用老掉牙的 Spring MVC ?
我学弟做学生管理系统的期末作业都用上 Spring Cloud 了,
你那都老掉牙了,不思进取,混开发经验的混子!

你问我微服务有什么好处?自己上网搜啊,一搜一大把!
“跨语言、不同业务之间互相调用、熔断限流、灵活部署......”

别跟我提什么业务体量,我们公司三个人微服务照样玩的溜!
自己技术菜就是自己技术菜,作为技术人,连新的技术 /框架 /架构都不去跟进,还好意思干这行?

我编不下去了。。。。(滑稽
v2orz
2020-06-28 09:49:46 +08:00
这是人的问题,不是特定技术的问题
包括你自己的问题

42L +1
glaucus
2020-06-28 10:02:47 +08:00
过度设计与语言无关
wysnylc
2020-06-28 10:22:47 +08:00
@guolaopi #41 Spring Cloud 也还是 Spring MVC
guolaopi
2020-06-28 10:32:52 +08:00
@wysnylc
那该换成啥,不做 java 不知道,SSM ?(滑稽
keaideren
2020-06-28 10:34:20 +08:00
所以想搞微服务有啥经典的书可以看?
RyanArthur
2020-06-28 10:40:40 +08:00
@sampeng 微服务没有“专职运维”这个概念,无论你去哪个大厂,都不会有“专职“,只有 Devops 和 SRE 。
RyanArthur
2020-06-28 10:42:27 +08:00
@keaideren 《 Microservices Patterns:With Examples in Java 》,这本书真不错
keaideren
2020-06-28 10:45:01 +08:00
@RyanArthur 谢了,看这书是不是还得把 Java 学学
RyanArthur
2020-06-28 10:51:03 +08:00
@keaideren 其实不用。它只是用 Java 举的例子。
微服务的思想没有那么晦涩,Java 的例子换成你使用的语言,比如 Golang,对应 Golang 生态内实现某一个思想的轮子是哪些。
sampeng
2020-06-28 11:06:57 +08:00
@RyanArthur 现在是 V2EX 人均大厂了? SRE 和 devops 不是发展出来的一个职位?十几研发的小公司整个 SRE 或者 devop 团队?

就算有公司这部门。微服务带来的开发效率低下是肉眼可见的。真的微服务解放了程序员?那就不要再抱怨业务逻辑简单,天天 CRUD 。微服务让研发真的成了工具人。你以为你懂了微服务,其实任何人都可以替代你…想想是不是很可怕
realpg
2020-06-28 11:08:18 +08:00
@casillasyi #9
然后一堆瑞士军刀都被改造成了 JAVA 的样子
winglight2016
2020-06-28 13:05:35 +08:00
20 年前开始用 j2ee 做项目,刚开始是 JSP/servlet,后来加上 EJB,再后来用上 struts1.x,再加上模板,出了 spring 和 hibernate 之后,刚开始感觉是一种简化和进化,后来 spring 越搞越大,必须 DI/IoC,不用 Spring 全套就不行,整个框架比当初的 j2ee 还大了,我干脆用 play 代替 Spring,再到后来连 java 也不用了,nodejs 、python 用起来更顺手。实际从事项目开发的时候,个人感觉,开发团队在 100 个人以下的时候应该用不上微服务,这样几乎排除了 9 成以上的项目,所以很多用微服务的项目大概率是开发人员在积累微服务的项目经验。
swulling
2020-06-28 13:35:33 +08:00
首先 50 个人以下的团队没必要用微服务
其次 不要以以后可能要 scale 的想法去提前上微服务

过早优化和过度设计就是万恶之源
firefox12
2020-06-28 13:43:28 +08:00
微服务 是历史选择,自然竞争的结果。JAVA 也是。

不要问为什么,想一想 Java 为什么能从百家争鸣 到现在独领风骚。如果觉得不是,那么请从 0 开始,自己写框架,开发一个 springboot 这样级别的项目。你觉得需要多久?

就像现在的收集太无趣了,20 年前 每个手机都不一样,现在每个手机都基本一样,这是为什么?因为目前的条件看,这就是最好的。
Vegetable
2020-06-28 13:49:24 +08:00
都在强调不是 Java 的问题,是人的问题。
可是这个明明就是 Java 人的普遍问题,社区流行这个,大厂大企业话语权过重,市面上流行的就是这个,你想向上走这套必须都得过一过。过度设计的情况必然会出现,没办法的事。
NoString
2020-06-28 13:50:13 +08:00
我觉着要是 ToB 或者确定量不会激增的业务单服务 php 一把梭挺好的,又快又简单。
工程结构和技术框架升级是为了解决问题的,不是为了升级而升级。
看楼主描述就是一个“论坛”,我们也不知道有多少日活,访问量怎么样,以及团队规模怎么样,大家是会 Go 的多还是 Php 多还是 Java 多,楼主说没有太复杂的业务逻辑,基本上都是 CRUD,但微服务解决的问题不是满足复杂业务逻辑,单服务的 PHP/Python 照样可以满足复杂的业务逻辑,而是在可用性、稳定性上微服务有更强的 Buff,如果业务增量低、团队人数少、日活不咋滴,那有一说一,确实是面向简历编程,又臭又烂了
哈哈哈 还是比较理解楼主的
tctc4869
2020-06-28 14:05:13 +08:00
@sun1993

“人家提供了微服务周边的一系列工具,比如注册&发现、熔断&限流等”,这些网上不是说是微服务的基础的么?这些是微服务的扩展?微服务最基本的是什么?

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

https://tanronggui.xyz/t/685030

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

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

© 2021 V2EX