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

今年看到讨论 Vert.x 的比较多。所以来聊聊 Vert.x

  •  4
     
  •   yizmaoaa · 12 天前 · 2701 次点击

    正好由于我找不到工作,已经转行做外卖小哥,所以有时间来聊一聊

    1:关于 SpringWebFlux 与 Vert.x 究竟要选那一个?

    对于这两个之间要选那一个其实很简单,如果你要性能要吞吐量那么我建议 Vert.x

    对于普通并发量不高,业务比较复杂的情况我建议你用 SpringBoot 。因为 WebFlux 目前在 techempower 上的性能测试并不出众,引入了复杂度但是吞吐量并没有显著的提升。这是得不偿失的。

    2:使用 Vert.x 话要使用那个版本?

    如果是为以后的技术选型做考虑目前不着急的话,建议等待 4.0 发布后直接上。因为变动还是比较大的。

    而且相比于 3.8/3.9 API 变化是一部分,还有就是 4.0 会新添加很多让代码量减少的东西。

    如果现在的项目要上的话,有能力的也可以使用 4.0 的里程碑版。因为有认识的人已经将这个版本使用在生产环境了

    为稳重考虑的话也建议使用 3.8.5 以上的版本,如果使用 Kt 的话也挺舒服的。

    3:担心 Vert.x 靠不靠谱的问题?

    相比于 Spring 来说,Vert.x 在这个方面肯定是不如 Spring 的。

    Vert.x 的主要开发人员是红帽的,开发人员基本 Base 在法国

    Vert.x 项目有 3 个是直接归属于 Eclipse 基金会旗下的。仓库组织就在 eclipse-vertx 这个组织下

    其他的一些文档,以及各种 Client 等等都在 vertx-x3 下。属于社区项目

    Vert.x 的社区活跃度也还可以,Github 、Gitter 、Twitter 、国内 QQ 群。而且国内有不少贡献过 Vert.x 的

    所以这方面可以放心,至少你出了问题是有人管的。

    不过 Vert.x 在国内使用的公司不多。关于 Vert.x 的资料等等也是比较少的。还有就是招聘问题,可能比较难找到对 Vert.x 很熟悉的。

    4:关于 Vert.x 的异步代码问题

    在 Vert.x 里面处理异步代码目前有 4 个解决方案,CallBack 、Future/Promise 、Rxjava 、Kotlin 的协程

    在 4.0 以前,代码默认都是 CallBack 的,自己针对每个 API 去封装 Future 代码量也会变多。所以 Rxjava 与 Kotlin 是一个不错的选择。

    4.0 后所有的异步 API 都原生支持返回 Future,所以如果用 Java 那么 Future 就是第一选择了。

    5:关于多语言

    Vert.x 的多语言其实是依赖自身的一个 CodeGen 库生成的,这点在 Graalvm 后会有所改变。例如衍生的项目 ES4X

    6:关于 Vertx 的生态

    其实在异步生态里面,Vert.x 算目前 Java 里最好的了,所有第三方的 Client,Vert.x 都自身根据协议开发了自己的 Client,但是需要注意的是,由于人手啊等等问题,Vert.x 所提供的库都是很基础的。例如操作数据库的基本和原生 JDBC 写法差不多。。

    所以为了好用,你不得不自己去在这些基础库上进一步的开发。

    不过前两天看到 Hibernate 的仓库也写了一个基于 Vert.x 的异步库。相信后面开发会越来越方便的

    7:如何对 Vert.x 贡献

    这个其实和其他项目一样,等 4.0 发布之后可以参与翻译官方的文档啊之类的。

    对于目前仓库的一些 ISSUES,你也可以在问题区参与讨论后 Fork 仓库进行代码提交,当然测试用例是必须的。

    另外对于 Eclipse-Vert.x 下的项目,因为属于 Eclipse 基金会,所以你提交代码后需要签署一下 Eclipse 的一个协议。对于 Vert.x-X3 下的项目则不用。。

    就先想到这里了.........

    第一次在 V2 发技术帖,大佬们轻喷。

    第 1 条附言  ·  11 天前
    顺便提一下外卖的事情,赚的不多。没有在魔都普通程序员赚的多。

    就是时间自由点。
    第 2 条附言  ·  11 天前
    再来说一个 Hibernate-Reactive 这个库,目前发现他们的开发者与 Vert.x-SQL-Client 的之间的沟通还是挺多的

    希望越来越好
    36 条回复    2020-05-27 09:20:01 +08:00
    yizmaoaa
        1
    yizmaoaa   12 天前
    - -没人看啊我擦
    dcoder
        2
    dcoder   12 天前
    因为没人用 Vert.x 啊
    presoul
        3
    presoul   12 天前 via Android
    外卖小哥 这不是钓鱼吗🐶
    sagaxu
        4
    sagaxu   12 天前 via Android
    Vertx 现在还是非常小众的,我问过好多做过 Java 开发的,大都表示没听说过。

    4.0 用于生产环境我是不建议的,尤其是刚开始熟悉的人,出了问题很难界定是用的不对还是框架 bug,还是从 3.9.1 开始吧。

    我从 3.4 一直用到 3.9,几乎每个版本必更,一个遇到过两个 bug,一个是 CPU 使用率暴增的,另一个是 redis client 线程安全问题,第一个问题很快修复了,第二个严格按照一个 client 一个 vertcle 使用不会触发。
    voidxx
        5
    voidxx   12 天前
    昨天那个帖子第一次听说这东西
    lhx2008
        6
    lhx2008   12 天前
    生产环境还是没什么人敢上的,如果要性能直接换 Go 还更可控一点。
    zpf124
        7
    zpf124   12 天前
    因为懂得真不多,网上各类文档教材也都是做个小 demo,能从请求到数据库再渲染出页面来就算完了。
    从没见过几个真正的完整实现了一个基本网站的小项目。
    所以只敢看个热闹,不知道该怎么用这玩意做一个和平时随手搭的 spring 项目功能一致完整项目。
    PDX
        8
    PDX   12 天前
    vert.x 真的是个好东西,希望能火起来

    spring 那套太笨重了
    chendy
        9
    chendy   12 天前
    都是好东西,可是有这类需求还不如直接换语言
    或者啥时候 java 本身也能用同步语法写异步了再说吧…
    ZSeptember
        10
    ZSeptember   11 天前
    没必要用。
    生产力重要
    passerbytiny
        11
    passerbytiny   11 天前 via Android
    我怀疑楼主本质在打广告,但是我不在意,因为我把整个反应式 web 接口都打进了“以后再说”的冷宫。
    janus77
        12
    janus77   11 天前
    所以做外卖是什么体验?赚的多吗
    yizmaoaa
        13
    yizmaoaa   11 天前
    @janus77 不多。几千块钱
    yizmaoaa
        14
    yizmaoaa   11 天前
    @presoul 没钓鱼,因为我真是在送外卖。
    yizmaoaa
        15
    yizmaoaa   11 天前
    @sagaxu 我在上面也提出了,如果自身实力不允许,还是不要使用 4.0 。我也遇到几个 Bug,提 PR 修复掉了。

    共享 Client 出问题,是 4.0 之前的 Client 和 Verticle 是不一定在同一个 Context 时会出现的。
    abcbuzhiming
        16
    abcbuzhiming   11 天前
    @PDX 我曾经也觉得 spring 太笨重了,想把 spring 换掉,然后我就发现,spring 最大的优势就是它涉及的东西太广了,你要换就要换整个生态圈,vert.x 在这方面还是远远不够
    moneyloveme8866
        17
    moneyloveme8866   11 天前
    我去 大佬 送外卖 能带上我吗
    ideacco
        18
    ideacco   11 天前
    某日正愁找不到 bug,结果卤煮送外卖经过,悠悠的说了一句:你上面的 CallBack 没有正确传值…………然后深藏功与名
    rockyou12
        19
    rockyou12   11 天前
    在使用 vertx 的 mqtt client 与 emq 通信,使用还是好用,但确实看得出生态还是缺位的,连自动重连这种基础功能都没有封装……
    yizmaoaa
        20
    yizmaoaa   11 天前
    @rockyou12 确实。。人手不够是一个原因,毕竟官网那么多子项目都是这几个人在搞。以前 Redis 都没有自动重连这种。后面才加上的。估计其他 Client 后面也会提上日程的。。现在就是所有东西最基础的有了。但是都功能上不是很完备
    BBCCBB
        21
    BBCCBB   11 天前
    等 java 协程是最香的
    sagaxu
        22
    sagaxu   11 天前 via Android
    @rockyou12 redis client 自动重连也是 3.9 才有,不过文档里一直都有自动重连的例子。这应该是产品理念的问题,不够接地气。
    cheng6563
        23
    cheng6563   11 天前 via Android
    没携程都是写得很蛋疼的
    sagaxu
        24
    sagaxu   11 天前 via Android
    @lhx2008 国内用的是不多,但也不至于不可控,毕竟只是 netty 加个皮,netty 还是相当普及的
    NoKey
        25
    NoKey   11 天前
    有技术的外卖小哥 👍
    mango88
        26
    mango88   11 天前
    3.2 的时候上的车, 后面经历了 future 变成 promise
    再后来折腾起 quarkus
    lancelock
        27
    lancelock   11 天前
    资料太少了,没有参考,不知道怎么组织代码结构比较好
    wowawesome
        28
    wowawesome   11 天前
    送外卖一天你大概能赚多少
    yizmaoaa
        29
    yizmaoaa   11 天前
    @wowawesome 200 多
    yizmaoaa
        30
    yizmaoaa   11 天前
    @lancelock 代码结构比较自由,这个看个人.....
    yizmaoaa
        31
    yizmaoaa   11 天前
    @NoKey 见笑了。。
    yizmaoaa
        32
    yizmaoaa   11 天前
    @moneyloveme8866 别开玩笑了,好好写代码。跑外卖赚不到多少钱
    cloudopt
        33
    cloudopt   10 天前
    推荐 Cloudopt Next: https://github.com/cloudoptlab/cloudopt-next

    Cloudopt Next 底层是基于 Vertx 的,做了大量的封装,有效的降低了使用成本以及配备了大量平常会使用的插件,帮助后端开发者快速上手、快速开发。


    Cloudopt Next 是基于 Kotlin 、Vertx 的一个面向下一代的极其轻量级的微服务框架,您可以处理 Url 的解析,数据的封装,Json 的输出等等,从根本上减少开发时间、提升开发体验。Cloudopt Next 吸收了 Spring Boot 、JFinal 、Resty 、Vertx 等优秀项目的思想,不仅拥有非常好的开发体验还拥有着极低的学习曲线。

    ** Cloudopt Next 主要拥有以下特点:**

    简单 极简设计,几乎不要任何配置,不依赖 Tomcat 、Jetty 等 Web 容器。

    异步 基于 vertx 轻松实现高性能的异步服务。

    扩展 支持 vertx 体系的各种组件,同时支持通过插件扩展功能,官方也提供了大量好用的插件。

    中文 全中文文档、中文社区,帮助中文开发者快速上手。
    HolmLoh
        34
    HolmLoh   10 天前
    刚好最近在尝试,你说的 vertx 的第三方 client 不完善的问题确实非常严重..
    rabbitMQ 的 Client 更是一穷二白,ConfirmListener 都没得添加。虽然在 issues 里面已经看到有人提到,但只是处于“在做了”的进度...
    路漫漫其修远兮,希望越来越好把
    ZiLong
        35
    ZiLong   6 天前
    不如外卖小哥系列。。。
    yizmaoaa
        36
    yizmaoaa   6 天前
    @ZiLong 想想我找不到工作,去送外卖 你就知道我不如你
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4305 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 05:37 · PVG 13:37 · LAX 22:37 · JFK 01:37
    ♥ Do have faith in what you're doing.