使用了微服务的 Java 会在一定程度上取代 PHP 吗?

2017-09-07 18:38:35 +08:00
 muyege

公司里就剩 4 个 PHPer 了,老大叫我们开了个会,叫我们没事多看看 java.哎~日子不好过

11095 次点击
所在节点    程序员
29 条回复
fcka
2017-09-07 23:19:41 +08:00
spring boot 内存占用太大了,不适合小内存机器
wdlth
2017-09-07 23:43:46 +08:00
服务是微了,JVM 可微不起来,毕竟资源是有限的,大部分用户自然希望利用有限的资源做更多的事……
cxbig
2017-09-08 01:37:46 +08:00
这是公司决策问题,如果你想要坚持 PHP,找个合适的新环境即可。
em84
2017-09-08 09:00:55 +08:00
java 不是炸了吗
mosliu
2017-09-08 09:38:31 +08:00
@fcka spring boot 一个也就占几百 M ? 对于服务器来说 级别称不上太大吧?
spring boot 表示用的很顺手。
fcka
2017-09-08 10:21:51 +08:00
@mosliu 400M 内存太大了,PHP 只需要 64M 内存就可以跑…
mosliu
2017-09-08 10:41:38 +08:00
@fcka 记得 Boot 大约 200 还是 300M 多点吧?
确实占内存大。。。
我的搬瓦工传家宝肯定跑不动。
hantsy
2017-09-08 11:21:06 +08:00
PHP 也可以一样快速实现 MS,Slim, Sliex, ZF, Symfony 都不错, API Gateway,Auth 单独作为服务,找一些成熟的方案(不管他是用什么技术去实现)就行了,配合容器技术实现 MS 一样很容易。

Spring Boot 有点过,自动配置加载太多东西,自动配置的大部分 Bean 都用不到,一半以上的系统资源被浪费掉了。

Spring 5 出来后,可能还是传统的手动配置好些, 几行代码就可以启动 Embedded Server。

通过个人代码比较,不使用 Boot,启动和系统资源都至少减半,Reactive Stream 很适合 REST APIs 开发。

https://github.com/hantsy/spring-reactive-sample

@WispZhan 里面也包括 Kotlin 程序,kotlin-gradle 是纯手动配置,gradle 脚本也是 Kotlin 写的, 不用 Boot,不用 Annotation,用 Spring 5 中的 BeanDefinitionDSL, RouterFnctionDSL 扩展。

Spring Cloud,如果你不用容器,它的确看起来不错。但是如果嫌 Boot 大,加上 Cloud 后,你会发现每一个 MS 服务都是庞然大物了。两年前一个项目,做过大量的 Research,最终我们放弃其核心的组件 ,因为大部分功能都是可以用容器实现,仅使用其中少部分组件,比如日志收集等,而 Cloud 中核心功能 Service Discovery,Load Balance,Failure Retries,Gateway/proxy 全部由容器去负责,这样应用轻量得多,容器的特性也充分利用,整个项目的 DevOps 也上来了。

当然国内看到不少开发使用 Spring Cloud 去实现**微服务**,仅仅在写代码层面,管理层面,运维都是老一套,还在用人肉上线,这样 MS 实施让人器笑不得。微服务不仅是写代码实现功能,DevOps 显得尤其重要,公司组织文化也应该随之变化。

还有一个最大误区,谈及微服务的时候,国内总是什么语言和框架挂上勾。微服务的特性决定了,每个服务有相对的独立性。一些成功的微服务转型案例,没有哪一个是一种语言或框架去实现的。基本都是各种技术(语言,框架)混搭,利用各技术最优秀的一面去实现相应的功能,如用中药一样,利用其偏性,各种药材放一起来解决问题。
jack80342
2017-12-16 22:14:05 +08:00
这几天翻译了 Spring Boot 最新的官方文档,https://www.gitbook.com/book/jack80342/spring-boot/details

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

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

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

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

© 2021 V2EX