Vert.x???

今天加个班终于把jmq前后端都跑起来了,就在熟悉代码流程的时候,遇到的不是熟悉的SpringBoot,而是vertx,所有的映射都是通过route.xml文件配置的,因为对于这个框架完全没有听过,所以就花了一些时间进行了解,本文只是个人思考的痕迹,并没有太大的学术价值😩

首先我的思考就是为什么要引入这个东西,Spring全家桶他不香嘛,但是虽然我在项目中看到了vertx的身影,但是最终的项目启动仍然是以SpringBoot方式启动的,在知乎上看到了一些答案,很多人都在考虑会不会取代Spring的问题,我觉得这有点杞人忧天了,这很难,不仅是因为性能或者技术优劣,Spring这么多年奠定的生态是很难被撼动的,并且追溯起来,vertx也是源自Spring的,他们不需要比较个孰优孰劣,甚至可以很好的共存,在我目前接触的项目中他们就是共存在一起的,目前国内使用这个框架的应该是少之又少,我甚至觉得一只手都能数的过来,从网上搜索的答案数目上就能看出来,好像目前华为在用,为什么jmq中会引入vertx呢,我想这还是有架构师这么做的道理的:

  • 性能:
    在网上的一些测试案例中,可以看到vertx在高并发以及集群情况下性能是好于Spring的,为什么会获得性能优势,这就要追究到内部的架构思想和实现原理呢,目前只是看到了这个结论
  • 打通上下游异步:
    这个概念刚看到也是不太理解的,这就要和Spring作比较,虽然目前Spring 的最新版本也是支持异步,但是不彻底,地下的tomcat,数据库连接还是做不到异步这点,举个例子,就是虽然路上的垃圾桶是分类的,但是装到垃圾车上之后还是混在一起的,这就失去了意义,而vertx在创建之处的初心就是面向异步,所以整个上下游都做到了异步,这是一个优势
  • 侧重点不同
    vertx将精力全部放在性能、异步和分布式集群上面,而Spring主要面向的是web
  • IO,mqtt
    我想在IO处理上面,vertx还是占据优势的,当初Spring和Java自带多线程模型,有效解决了多核处理器的性能使用,这是前些年计算机主要面临的问题,就是多核处理器的利用率问题,而如今在分布式系统的背景下,我想主要需要解决的就是机器之间的IO问题,而mqtt协议就是满足这一条件的,这个协议低成本,低带宽,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务
  • 他们不冲突!

说了这么多也说服了自己接受这门技术,认识到了他的必要性,因为所在的部门属于基础架构,在分布式集群情况下,注重的是性能和稳定,异步和IO就显得尤为重要,而其他的一些基础业务部门,就完全可以使用Spring全家桶来解决所有的问题,没必要搞这花里胡哨的!

上面只是个人的一些思考,如有不对的地方欢迎指正!

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://hadoo666.top/archives/vertxmd