Run Jobs In Parallel

Run Jobs In Parallel

背景

这周的一个目标是把之前 Benchmark 的脚本改写,使它支持并发的跑 job。

之前的配置是使用 ini,不适合配置现在这种需求,也不想用之前的 xml 来配置,所以今天就简单的研究了下使用 yaml 来配置并运行。

Read more
Single Node Hadoop

Single Node Hadoop

背景

今天在阿里云机器上试着搭了一个单结点的 Hadoop, 记录一下过程。

资源准备

使用的 jdk 和 Hadoop 版本分别为:

  • jdk-8u40-linux-x64.gz
  • hadoop-2.7.3.tar.gz

系统是阿里云的 CentOS Linux release 7.4.1708 (Core)

Read more
Python Thread Lock

Python Thread Lock

背景

这两天在继续修改之前写的测试脚本。这两天想要实现并发跑一些任务,之后还要把结果写要 testresult.csv 中。

这样的话就涉及一个问题,因为是并发跑的,所以可以会出现资源争抢的问题,那么就需要对读写加锁控制。

在网上查了下,发现有第三方文件锁库 fcntl 可以使用,不过可惜的是Unix Specific

所以最直接的还是用线程锁来解决这个问题

Read more
Test Result DB Implement

Test Result DB Implement

背景

上周提到想要把测试的结果保存到数据库中,下面主要介绍实现的思路。

注意:在定义表名和字段的时候,最好使用小写开头,我下面的例子并不规范。

Read more
Java Annotation

Java Annotation

背景

开始回顾 Java 的一些基础知识,今天看了下注解。

像在 Spring 中,可以使用 xml 来配置类之间的关系与实例化,虽然结构清晰,但不是很方便。使用注解来让框架自己去识别你的意图,把配置放在了类定义中。

以下面上周写的简单 REST API 为例,通过使用 Spring MVC 相关注解就能配置方法与 HTTP Request 的对应。而使用 swagger 相关的注解,便很方便的生成对应的 API 文档。

而这些都是框架、第三方库通过反射得到注解的信息之后再得到的。

Read more
DB For Test Result

DB For Test Result

背景

之前做的自动化测试,最后的测试结果都是通过邮件发送给相关人员,没有做持久化,所以有时候想找一个版本的结果要去翻邮件列表,而且很有可能找不到。

接下来我希望能把最后的测试结果存放在数据库中,这样就可以方便对历史结果进行查询,充分利用数据库的特性。

Read more
String Pattern

String Pattern

背景

今天遇到的一个算法问题,感觉又回到了当年做 ACM 的时候,不过好久没动脑,不好使了,哈哈哈。

Read more
Swagger In One Page

Swagger In One Page

背景

利用 Swagger 官方的 Editor 和 UI 已经能够展示文档,但最后做为交付的文档,肯定是需要能直接打开的文档(e.g. html 格式)才行。所以这两天研究了之后,找到了几个解决方案

他们都是基于 Node.js 的,所以要先安装较新版的 node.js(v10),下面分别来介绍下怎么使用。

在下面打开的一些完整示例的时候,除 pretty-swag 外都是支持手机端的,不过在电脑上的效果最好。

Read more
Swagger in SpringBoot

Swagger in SpringBoot

背景

前两天提到项目组打算用 swagger 来做为 RESTful API 的解决方案,现在已经确定下来了。

之前看到有文章介绍 SpringBoot 中结合 Swagger 直接生成文档的方法,今天尝试了一下,入门还是比较简单的。

Read more
Python gRPC

Python gRPC

RPC

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。

Read more