使用了微服务的 Java 会在一定程度上取代 PHP 吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
muyege
V2EX    程序员

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

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

    公司里就剩 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     Solana     993 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:41 PVG 02:41 LAX 11:41 JFK 14:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86