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