java vertx http_佛系学习Vert.x之创建你的HttpServer

大噶好,最近关注了一个叫Vert.x的东西

cc2aa2eecf7c

这是一个Logo

简单的说这是一个事件驱动的NIO框架,底层基于Netty。(这里我要上个测评)在 Web框架性能测试Round16中的各项指标表现还是很不错的,说Vertx是框架其实也不是很精确,应该说是个Toolkit。打开官网我们可以看到Vertx中所有的模块

cc2aa2eecf7c

甚至还有IoT

这些模块可以无缝接入你的Java程序中组合成各种功能,Vertx官方也在文档中多次告诉开发者

cc2aa2eecf7c

你想怎么用就怎么用那么如果我不写Java呢,我就是喜欢写一些10天就发明出来还为了蹭热度加了一个前缀的语言呢?

完全O那啥K,让我们看一下Vertx另一个特点:

cc2aa2eecf7c

polyglot是一个GRE单词

是的,这是一个封装的比较高级的Toolkit,目前支持了7种语言。当你使用Vertx的时候,这7种语言写的应用之间可以无缝对接传递数据。个人感觉作为后端开发的话跟JVM生态融合的很好了,点开任何一个模块都可以看到:

cc2aa2eecf7c

各种语言的文档

当然Vertx还有很多优秀的地方我就不一一介绍了,同学们闲下来可以去官网看看自己探索一下。初见的话我们来写一个简单的HttpServer体验一下。

首先我们在工程中引入web模块,我这里用的是Maven工程:

cc2aa2eecf7c

web模块

然后我们新建一个类,在Vert.x中我们要使用Vertx实例的createHttpServer方法创建一个HttpServer对象:

cc2aa2eecf7c

"不,是你的服务器"

"然后是不是监听个端口就完事了?"... 是的。不过我们再加一个路由吧这样显得工作量比较饱满

cc2aa2eecf7c

突然就Restful了

创建Router对象之后我们接受get请求,然后传入一个匿名函数作为handler来处理这个请求(快把你电脑里的Jdk6卸载了),context创建一个response然后写一下报头的参数,之后调用end方法返回一个字符串。这个地方也可以用write方法写返回数据,但是需要写Content-Length参数指定长度,而end方法会自己计算长度,我们这里为了方便就用end了。接下来我们在HttpServer对象调用requestHandler传入刚才的路由(Jdk6卸载完了吗),然后监听一个端口就ok啦。跑main方法然后我们来看看用起来怎么样,这里我们使用postman这个工具来测试get请求:

cc2aa2eecf7c

你的HttpServer

到这里一个朴素的httpserver就完成了,interesting!

自己研究了这一段时间感觉Vert.x有种解放生产力的感觉?多语言范式的设计也相对超前一些,跟openjdk在做的GraalVM理念比较吻合,估计以后就可以某种程度上解决你们程序员最喜爱的争论语言环节。然而目前中文社区的力量太小了,不过搞CS基本还是英语看一手资料吧。关于Vert.x还有很多好玩的东西有待探索比如eventLoop、RxJava以及类Akka actor-model的Verticle等等等我再踩坑一段时间总结出来吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值