正好由于我找不到工作,已经转行做外卖小哥,所以有时间来聊一聊
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 发技术帖,大佬们轻喷。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.