🌓

性能封神的数据库访问库reactive-pg-client初探

不知道有没有人关注过TechEmpower的Web Framework Benchmarkshttps://www.techempower.com/benchmarks/ ),一种把各种Web后端开发技术都罗列起来,在同样的机器下跑最简单的业务逻辑,来对比各技术性能的竞赛。参与跑分的技术代码,都是开源的,甚至很多代码就是由Web技术本身的作者维护的。
虽说,跑分不能代表性能,性能更不能代表技术的优劣。但是有着么一个性能维度的粗浅比较,还是能带给我们不一样的收获。
比如,在2018-06-06的最新一场比拼中,Vert.x搭配PostgreSQL的组合,在部分比试时表现十分抢眼,性能一骑绝尘且大幅领先第二名。被它踩在脚下摩擦的对手,不乏我们熟知的技术方案,比如gonodejsspringphp,还有mysqlmongodb等数据库。(这里我无意引战,有兴趣的朋友可以查看具体跑分结果相关代码
查看具体跑分代码可知,Vert.x之所以能位居榜首,与其使用的数据库客户端是密不可分的。作为一套基于Java的技术解决方案,Vert.x没有使用Java程序员所熟知的JDBC,而是使用了一种叫reactive-pg-client的技术。
reactive-pg-clientJDBC最大的区别就是前者是针对PostgreSQL数据库单独开发的,利用了PostgreSQL异步特性,最大限度了挖掘了数据库的访问性能。
现在我们就来简单尝试下reactive-pg-client,首先添加依赖

阅读全文

给异步的Vert.x程序做单元测试

异步的程序先天不好单元测试,尤其是按照传统的JUnit思路来弄,肯定是不行的。好在Vert.x想到了这一点,所以提供了vertx-unit包,专门考虑了对异步代码的测试。
使用起来也很简单,首先

testCompile "io.vertx:vertx-unit:3.5.3"

阅读全文

再谈CompletableFuture

今天是还之前欠的一个账,当时在Vert.x异步方法转同步这篇文章里,我提到其关键点是CompletableFuture类,今天我们就沿着当时的代码继续掰扯一下这个强大的类。
先来回顾下当时的代码

阅读全文

iTerm最佳实践


阅读全文

Groovy迭代器中的return陷阱

groovy从不会让人失望,如果有,那就是接下来我要说的这种情况:

def list = [1, 2, 3, 4, 5, 6, 7]
def test(List list) {
list.each {
if (it > 3) {
return it
}
}
}

println test(list)

阅读全文

用JavaScript在PostgreSQL中写存储过程

首先交代一个概念,在PostgreSQL中,函数、存储过程都是一回事,创建语法都是create function。之所以本文标题使用存储过程的叫法,是为了方便其他数据库的使用者容易理解。
先来看看PostgreSQL默认支持的创建数据库函数的写法,如:

阅读全文

使用Google Trends了解某一技术的全球态势

今天想介绍的东西很简单了,但却异常强大,就是Google Trends。使用方法非常简单,访问trends.google.com即可。
那么来看看我自己通过Google Trends发掘的一些有意思的事情吧。



阅读全文

IntelliJ IDEA中那些锦上添花的小技巧

IntelliJ IDEA作为相当主流的Java开发工具,网上分享其使用技巧的如汗牛充栋。今天我从自己的角度,分享一些经常被人忽视,同时也不怎么重要的使用技巧,权作锦上添花之用。

Toolbox来管理IntelliJ IDEA

自己安装IntelliJ IDEA诚然没什么难度,但是架不住其更新频率实在太高,而且有时候还没有升级包可用。所以通过Toolbox来保持IntelliJ IDEA永远在最新版本是一种相当有效的做法。

阅读全文

免百度网盘客户端下载大文件并突破非会员限速

在网盘市场洗过几次牌后的今天,百度网盘可以说是如今的头牌了。网上充斥的各种资源,几乎都在用百度网盘分享。但是百度这家公司怎么说呢,就是骨子里,有一点X你懂的。遇到稍微大一点的文件,不让从浏览器直接下载不说,限速起来更是毫无人性。
不过正所谓道高一尺,魔高一丈。在互联网的江湖,一切皆有可能。今天我们就来介绍一种借助浏览器插件突破百度网盘限制的一种方法。

阅读全文

ubuntu里查看软件包信息

postgresql-10-plv8这个软件包为例,需要知道软件包的一些必要信息,比如版本、项目主页、大小、简单说明之类的,可以用如下命令查看:

apt show postgresql-10-plv8

阅读全文