V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
muyege
V2EX  ›  程序员

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

  •  
  •   muyege · 2017-09-07 18:38:35 +08:00 · 11094 次点击
    这是一个创建于 2663 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    29 条回复    2017-12-16 22:14:05 +08:00
    jy04149886
        1
    jy04149886  
       2017-09-07 18:42:51 +08:00 via Android
    用途都不一样,怎么取代
    Bigears
        2
    Bigears  
       2017-09-07 18:47:50 +08:00
    Spring Boot 和 Spring Cloud 最近确实很火......
    notreami
        3
    notreami  
       2017-09-07 18:48:56 +08:00
    PHP 比较尴尬,前有 nodejs,后有 java。java 不爽,可以上 go、python。再有 C#、Scala、Kotlin 虎视眈眈。
    carlclone
        4
    carlclone  
       2017-09-07 18:53:47 +08:00 via Android   ❤️ 3
    我觉得被取代的不是语言,而是没学习能力的人
    580a388da131
        5
    580a388da131  
       2017-09-07 18:54:17 +08:00
    py 有可能吧
    fasling
        6
    fasling  
       2017-09-07 18:55:45 +08:00
    spring boot 用起来确实比较爽,部署也方便,一个 jar 包全搞定。
    muyege
        7
    muyege  
    OP
       2017-09-07 19:01:25 +08:00
    @carlclone 手机取代了 bb 机,手机取代的是不想学着用手机的人?nginx 取代了 apache,nginx 取代的是不想学着用 nginx 的人?java 取代了 php,java 取代了不想学习 java 的(php)程序员?没听懂
    klgd
        8
    klgd  
       2017-09-07 19:03:10 +08:00
    我们公司最近也开始准备用 java 弄微服务了,我们 php 好尴尬啊,也不知道出路在哪儿
    codeyung
        9
    codeyung  
       2017-09-07 19:23:59 +08:00
    最近用 Spring Boot 做了 rest API 感觉很方便
    SlipStupig
        10
    SlipStupig  
       2017-09-07 19:25:53 +08:00
    用 python+docker compose 部署感觉也挺好的,不知道 java 有什么区别
    loveCoding
        11
    loveCoding  
       2017-09-07 19:34:51 +08:00
    确实很多公司在转 java
    macemers
        12
    macemers  
       2017-09-07 19:36:50 +08:00 via Android
    PHP 是最好的语言!
    jyf
        13
    jyf  
       2017-09-07 20:08:26 +08:00
    换个角度想 这是公司出钱供你学习 java 还有比这更好的事了么?
    askfilm
        14
    askfilm  
       2017-09-07 21:19:44 +08:00
    Java 会比 php 便宜高效吗?
    changhe626
        15
    changhe626  
       2017-09-07 21:21:03 +08:00   ❤️ 1
    java 表示我们不是应该去转前端吗?
    wenbinwu
        16
    wenbinwu  
       2017-09-07 21:49:22 +08:00
    spring boot + spring cloud netflix 用起来是很爽
    wenbinwu
        17
    wenbinwu  
       2017-09-07 21:49:58 +08:00
    貌似 sina 有人在搞 spring cloud netflix,在 github issue 里看到了
    huijiewei
        18
    huijiewei  
       2017-09-07 21:55:24 +08:00
    Spring Boot + Spring Cloud 是超爽,就是本地开发笔记本风扇转的有点痛苦
    WispZhan
        19
    WispZhan  
       2017-09-07 23:10:59 +08:00
    spring boot 2.0 之后 koltin 就可以慢慢展露头角了。
    BlueWolf
        20
    BlueWolf  
       2017-09-07 23:18:58 +08:00
    你们微服务是基于 RPC 还是 Restful 的架构,RPC 的话 PHP 确实不好做,没办法常驻进程等待外部调用
    fcka
        21
    fcka  
       2017-09-07 23:19:41 +08:00 via Android
    spring boot 内存占用太大了,不适合小内存机器
    wdlth
        22
    wdlth  
       2017-09-07 23:43:46 +08:00
    服务是微了,JVM 可微不起来,毕竟资源是有限的,大部分用户自然希望利用有限的资源做更多的事……
    cxbig
        23
    cxbig  
       2017-09-08 01:37:46 +08:00
    这是公司决策问题,如果你想要坚持 PHP,找个合适的新环境即可。
    em84
        24
    em84  
       2017-09-08 09:00:55 +08:00
    java 不是炸了吗
    mosliu
        25
    mosliu  
       2017-09-08 09:38:31 +08:00
    @fcka spring boot 一个也就占几百 M ? 对于服务器来说 级别称不上太大吧?
    spring boot 表示用的很顺手。
    fcka
        26
    fcka  
       2017-09-08 10:21:51 +08:00 via Android
    @mosliu 400M 内存太大了,PHP 只需要 64M 内存就可以跑…
    mosliu
        27
    mosliu  
       2017-09-08 10:41:38 +08:00
    @fcka 记得 Boot 大约 200 还是 300M 多点吧?
    确实占内存大。。。
    我的搬瓦工传家宝肯定跑不动。
    hantsy
        28
    hantsy  
       2017-09-08 11:21:06 +08:00   ❤️ 3
    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
        29
    jack80342  
       2017-12-16 22:14:05 +08:00
    这几天翻译了 Spring Boot 最新的官方文档,https://www.gitbook.com/book/jack80342/spring-boot/details
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   899 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:07 · PVG 06:07 · LAX 14:07 · JFK 17:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.