V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JamesChen
V2EX  ›  随想

好奇一问,对于工作 2 年以上的人去学 reactor-core 那套异步框架,难学吗?

  •  
  •   JamesChen · 2021-05-08 11:01:02 +08:00 · 1374 次点击
    这是一个创建于 1290 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于我个人平日在服务端几乎只写异步的 workflow (就是一个 request 进来,各种处理,然后一个 response 回去。用 reactor-core 那套),写异步代码就跟其他人写同步代码一样,没什么特别感觉。

    只是偶尔会在网上看人讨论 reactor 或 Java 其他异步框架的时候,总有一些人会吐槽“巨难写,没人接手”。
    但更诡异的是:总所周知,Java 面试很擅长问造火箭问题,各种 GC 日志分析、JVM 性能调优,不准备个高并发面试必备套餐都不好意思去面试(滑稽的是大多数项目还用着 BIO 模型)。这表明大伙至少心里还是渴望追求高性能的(不然面个锤子)。
    而实际上,各种调优带来的效果微乎其微(通常就保持默认配置,改一些常规参数),升级个版本号比很多“专家”瞎折腾好多了。反倒是 reactor-netty 那套异步模型,配合 R2DBC/MongoDB 或诸如此类的以 reactor-netty 为客户端驱动的整个应用架构,能带来吞吐量质的飞跃。

    造成了一个滑稽局面就是:每个人都在研究如何在 shi 上雕花更美,却不肯直接展示花。

    而且相比网上的一些言论,聊起 c++默认模式就是:各种高级+复杂+刁钻特性,如数家珍。但是看 Java 一说异步框架,一堆人“巨难写,没人接手”劝退的。虽然知道 c++/java 圈子不一样,但我不相信大家对“难”的理解,有这么大的差距。

    如果在大家真心追求高性能的前提下,reactor-core/netty 那套东西真得难学吗?

    PS:
    1. 异步框架的 debug 确实麻烦
    2. Spring WebFlux 包的就是 reactor-netty
    7 条回复    2021-05-09 12:57:39 +08:00
    GopherDaily
        1
    GopherDaily  
       2021-05-08 12:29:03 +08:00
    吞吐和耗时不一样。
    单次请求的耗时短,和服务整体的吞吐高没有关联。
    JamesChen
        2
    JamesChen  
    OP
       2021-05-08 12:42:50 +08:00
    @GopherDaily 老哥,我就提醒一下,不要在自己不熟悉的领域给老司机“纠错”,尤其看你这名称好像还是做技术公众号的
    emSaVya
        3
    emSaVya  
       2021-05-08 12:53:16 +08:00
    手里拿个锤子 以为全世界都是钉子 让你的 cpu 拉满 能申请到机器就行 选什么模型重要吗?
    gotonull
        4
    gotonull  
       2021-05-08 13:35:16 +08:00
    之前公司有个项目就是用的这一套,我感觉学起来资料好少 而且那个响应式编程 我一直 get 不到他的精髓
    GopherDaily
        5
    GopherDaily  
       2021-05-08 13:40:42 +08:00
    @JamesChen 不做,有错可以指出,阴阳怪气也不是不行
    ch2
        6
    ch2  
       2021-05-09 10:46:08 +08:00 via iPhone
    可能他们的业务没有多少 qps,cpu 就已经被拉满了,这种情况异步不异步没啥区别
    ccde8259
        7
    ccde8259  
       2021-05-09 12:57:39 +08:00 via iPhone
    面向工资编程的情况下,谁都不愿意拿一个出了问题毫无头绪的东西,把自己的 KPI 丢进抽奖箱。
    上线性能不行就是机器不够,再申请就是了。这种手段比起你上 Reactor 榨性能来说,没有任何风险。
    假如性能成为瓶颈又申请不到机器,是不是考虑一下你的业务压根不赚钱了。这种时候无论你用再优雅的 Reactor 抬了多少性能都没有意义。这种情况都是穷途末路,早晚要死。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5592 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:52 · PVG 14:52 · LAX 22:52 · JFK 01:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.