美文网首页
Verty.x初识

Verty.x初识

作者: GG_lyf | 来源:发表于2021-10-28 11:49 被阅读0次

    前言

      在使用spring boot的时候,总是会用到一些异步的和一些高并发的东西。都知道spring boot的内部使用的是tomcat,但是这个东西的局限性太大,并且在使用的时候启动很慢,配置没配好还会出现一些不知名的BUG,在面向并发编程的时候还要使用一个@async的一个注解。使用python的flask框架开发网站的时候确实很爽,但是,还是高并发的问题对于我这种Java开发的来说确实不是很友好。有人说,Nginx可以啊,它确实是可以,但是,这个东西再怎么说也是一个服务器,总不能在每一个开发的项目都放到Nginx中吧!其实这也未尝不可,只是,局限性有点大,另一台服务器如果没了Nginx那这个项目只能在编译器中运行了。基于这些情况,Vert.x是一个比较好的选择,一方面Vert.x是支持各种语言的,另一方面,对于想要开发一个高并发的项目的成员来说,它的能力完全不输于springboot。因为这玩意儿的底层是基于netty的。


    开搞

    1.先上官方文档
    中文文档
    英文文档

    注:使用官方的英文文档就可以看出,这个项目是用Java写的。

    2.项目整体介绍
    core:可以使用最简单和最核心的包来创建项目(用过)
    web: 是一系列用于基于 Vert.x 构建 Web 应用的构建模块。可以把它想象成一把构建现代的、可伸缩的 Web 应用的瑞士军刀。(用过)
    web client:(Web客户端)是一个异步的 HTTP 和 HTTP/2 客户端。(还没用过)
    databases:简单的理解为就是可以进行数据库的连接操作,都是一些最主流的数据库,包括非关系型的(还没用过)
    messaging:和最新的消息中间件交互使用(还没用过)
    integration:感觉就像是在做客户端用的,各种中间件等消息传递的客户端(还没用过)
    event-bus-bridges:网桥(还没用过)
    monitoring:这个和zipken功能相似(还没用过)
    services:做服务气的代理(还没用过)
    reactive:没学过,不知道,不了解(还没用过)
    microservices:这个东西像是用来构建一个个的微服务(还没用过)
    (还有一些我没写出来,因为我还没学过或者是相似的还没学过,请谅解)

    3.使用maven项目构建一个小的demo

    <dependency>
      <groupId>io.vertx</groupId>
      <artifactId>vertx-core</artifactId>
      <version>3.4.2</version>
    </dependency>
    

    先把包导入,这个包可以放在本地,在不使用maven的项目中也是可以使用的,这个是和 springcloud的最大的区别,springcloud在床架一个个微服务的时候总是要创建一个父项目,在父项目中引入用于版本控制的一系列包和插件,都知道springcloud的每一个版本都是使用的伦敦地铁站命名的(如果地铁站的名字被使用完了岂不尴尬?),在创建子项目的时候一个不小心会出现整个大的项目直接就爆红。当一个爆红没有解决可能影响整个项目的进度。这些爆红大部分是由于对应的子项目的包版本出错引起的。排查起来很麻烦的。

    4.使用

    public static void main(String[] args) {
            // 创建服务
            VertxTest test= new VertxTest();
            Vertx vertx = Vertx.vertx();
            // 部署服务,会执行VertxTest的start方法
            vertx.deployVerticle(test);
        }
     
        @Override
        public void start() throws Exception {
            // 在这里可以通过this.vertx获取到当前的Vertx
            Vertx vertx = this.vertx;
            // 创建一个HttpServer
            HttpServer server = vertx.createHttpServer();
            server.requestHandler(request -> {
                // 获取到response对象
                HttpServerResponse response = request.response();
                // 设置响应头
                response.putHeader("Content-type", "text/html;charset=utf-8");
                // 响应数据
                response.end("响应成功");
            });
            // 这个端口和springboot的yml配置很像,随便写就行,别把自己电脑的端口冲了就行
            server.listen(10086);
        }
    

    5.运行起来在网页上就能看到结果了。

    写在最后:有人说,又出新技术了,老技术还没学会呢!我只想说,技术是出了,学不学只有看自己,想学,可以,不想学,也可以。没人强迫你;在我看来,技术只有用着舒服不舒服,没有老不老一说,就如同老早以前的技术JSP,在HTML中镶嵌Java代码,这让我用着很不方便,那我就改啊!学过原生JS后,感觉好复杂,操作个HTML文档还要这么复杂,那我就用jQuery吧,既然JSP中的数据来源于后端,但是复杂,我何不把JSP和jQuery整合在一起呢,直接做一个假的前后端分离也是可以的,并且开发的难度也是可以下降很多的。直到最后的最后Vue统一了我的前端架构。

    相关文章

      网友评论

          本文标题:Verty.x初识

          本文链接:https://www.haomeiwen.com/subject/bikfaltx.html