OpenResty记录日志输出到kafka

安装zookeeper(基于docker安装)

  1. docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3.1'
services:
zookeeper:
image: zookeeper
container_name: zookeeper
restart: always
network_mode: "bridge"
ports:
- "2181:2181"
volumes:
- /home/docker_volume/zookeeper/zoo.cfg:/conf/zoo.cfg
- /home/docker_volume/zookeeper/data/:/data/
- /home/docker_volume/zookeeper/logs/:/datalog/
  1. docker-compose up -d

XXL-JOB日志获取分析

XXL-JOB日志获取分析

现状

xxl-job在任务执行时,可以看到日志,并且是实时、一行一行的展示出来。起初我认为是执行器在执行时,在每一个关键步骤向调度中心输出日志,而调度中心展示的日志也是实时接收到执行器返回的,后来在跟代码时,发现我的认知是错误的!其实是间隔一段时间(3s)就去执行器读取执行器服务器本地的日志文件!

模拟任务阻塞处理策略

模拟任务阻塞处理策略

官方描述

阻塞处理策略:调度过于密集执行器来不及处理时的处理策略;

  1. 单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行;
  2. 丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败;
  3. 覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;

为了验证并且更加熟悉XXL-JOB这一块的功能,遂做了如下的实验:

使用PowerMockito+MockServer测试外部服务

前言

    我们在项目开发中,很有可能会与第三方服务进行通讯,比如发短信、导入账单等等,这些服务写好后,如何能保证是OK的?这就需要进行**单元测试,但是每次跑持续集成**时,不可能真实的去调用这些发送短信、导入账单的真实接口,所以这里就需要用到强大的mock来模拟这些接口,以实现这些接口。
    所以这里我们用到了powermock和mockserver两个强大的工具。

powermockito和mockito的区别:

  1. mockito用代理实现mock,而powermockito是直接去修改字节码实现更强大的mock。
  2. 所以说powermockito是mockito的一个更加强大的扩展。
  3. mockito不能mock静态、final、私有方法等。
  4. powermockito号称是无所不能的PowerMock,上面mockito的缺陷都可以很好的弥补掉。

使用mockito进行单元测试

写这篇文档的原因:
现在项目中的mock单元测试配置有一点问题:

  1. 单元测试很慢,测试类继承BaseTest,每次测试时都会去加载xml文件到spring容器中,而这个是没有必要,因为mock测试就是用于模拟 被测试类 所调用的其他类的方法,设定这些方法的返回值(即打桩),因此,不需要加载任何spring文件,除非你要调用真实方法操作数据库或者dubbo服务等接口。
  2. 代码中既使用了注解@mock,又使用了spring的配置方式,产生了冗余配置。基于上面问题,说明使用者对mockito的使用并不是很了解,所以在这边简单介绍一下。