vertx
司青-已停止更新
本博客已停更;
展开
-
【vert.x准备篇1】同步和异步,阻塞和非阻塞概念澄清
为了能更好的理解vert.x的线程模型,我们必须要先明确几个概念:同步(Synchronous)和异步(Asynchronous),阻塞(Blocking)和非阻塞(Non-Blocking)。关于这几个名词的解释网络上也是众多纷纭,每个人说法都不太一样,但说的又似乎很有道理。其实造成这种情况的最主要原因是这四个概念并不是完全隔离、互斥的,而是相互之间有重叠。例如,当提到异步时那调用一定是非阻塞的...原创 2019-02-27 20:31:13 · 1910 阅读 · 0 评论 -
【Vert.x准备篇2】C10K问题与Reactor模式
C10K问题是1999年一个叫Dan Kegel的美国人提出的概念,其中C为concurrently, 10K指的是1万个网络连接, 结合起来意为如何能够做到并发处理1万个连接。这里首先要澄清一下,并发(concurrency)和并行(parallel)虽然都是用来描述"同时"干多件事的名词,但他们是有本质区别的。并发指的是CPU通过在不同的线程之间快速切换来营造出一种多个线程同时在执行的假象...原创 2019-03-03 01:14:04 · 629 阅读 · 1 评论 -
【Vert.x初体验1】4行代码实现HTTP Server
4行代码上古时代的Java程序员如果想写一个HTTP服务,需要按下面的步骤操作:编写Servlet, 实现doXXX()方法打成war包部署Tomcat将war包copy到指定目录下进行"部署"访问8080一顿操作猛如虎,旁边的小弟小妹对你佩服的五体投地。我可能只是想说一句Hello World而已,需要这么装X么?到了中古时代,事情变的更麻烦了。虽然不需要直接写servle...原创 2019-03-11 19:38:34 · 586 阅读 · 0 评论 -
使用Vert.x + SpringBoot编写业务系统
这一期文章主要为大家介绍如何将Vert.x与SpringBoot结合起来编写最最最常见的业务系统,即数据库增删改查。谈两句SpringBootSpringBoot大家都很熟了,一个快速开发框架,其最大的特点是可将Spring应用打成可执行jar包,从而不再依赖外部容器,如Tomcat。可能绝大多数人在使用SpringBoot时一定离不了嵌入式Tomcat, 从而造成了一想到SpringBoot...原创 2019-03-28 21:03:24 · 3314 阅读 · 2 评论 -
使用Vertx编写HTTP客户端
谈谈Apache的HTTP Client谈到HTTP客户端, 在Java界最有名的当属Apache HTTP Client库了。我相信绝大多数人在使用Apache HTTP Client时都是使用的同步版本,即请求发起后需要一直等待响应返回。如果你对程序的吞吐有着更高的要求,可能会尝试使用HttpAsyncClient, 但是使用起来貌似并不那么优雅,而且还有点"浪费"。不优雅指的是其API的设...原创 2019-04-19 12:52:00 · 1977 阅读 · 0 评论 -
Vert.x与Netty的区别
虽然Vert.x是基于Netty的更高级封装,但它们解决的问题是不太一样的。可以认为Vert.x是Netty的超集,它利用Netty的Eventloop为开发者提供了更友好的编程模型。Netty解决了如何支撑大量连接的问题Netty作为一个网络I/O工具,使用起来随时都能清晰的感受到你在操作网络,在操作字节等这些与业务不太相关的东西。很明显,Netty解决的同高吞吐的网络I/O问题,而不是编程...原创 2019-06-18 15:08:31 · 12521 阅读 · 0 评论 -
Vert.x + Protobuf二进制协议解析
这一期介绍如何解析二进制私有协议。先说几句题外话,就是绝大多数情况下,可能根本用不着使用私有二进制协议,除非你的业务对性能极其敏感,否则HTTP足矣。协议我们的协议非常简单,先是一个4字节的整数表示数据长度,然后紧接着就是protobuf序列化后的字节数组。proto定义如下:syntax = "proto2";package cn.fh.vertx.demo.proto;optio...原创 2019-06-26 11:33:46 · 2710 阅读 · 0 评论