自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (3)
  • 收藏
  • 关注

原创 jvm-sandbox-repeater时间mock插件设计与实现

我们拦截了org.springframework.web.method.support.InvocableHandlerMethod#doInvoke的入口,在执行之前repeatContext.setCanMockDate(true),执行之后 repeatContext.setCanMockDate(false);我自己经过多次测试,下面的实现方式是能够有效拦截并生效的,因此sandbox是有能力拦截java native实现的, 基于此,怎么实现就简单了;

2023-09-21 10:47:42 897

原创 jvm-sandbox-repeater源码解析-配置管理

通过代码最终,我们最后发现是在com.alibaba.jvm.sandbox.repater.plugin.http.HttpStandaloneListener#doBefore里,也就是真正的 切点通知逻辑做的, 在拦截http的每次请求后判断是否需要采集;我们去看代码com.alibaba.jvm.sandbox.repeater.plugin.java.JavaEntrancePlugin的实现,发现JavaEntrancePlugin重写了getEnhanceModels。

2023-09-20 15:20:49 774

原创 vue3集成jsoneditor

之前在做录制回放平台的时候,需要前端展示子调用信息,子调用是一个请求列表数组结构,jsoneditor对数组的默认展示结构是[0].[1].[2]..的方式,为了达到如下的效果,必须用到 onNodeName的钩子函数,因此深入调研了下vue3如何集成jsoneditor。其中options的定义是完全参考jsoneditor的api文档的,具体需要什么功能,自己去实现对应的options即可!

2023-09-06 14:59:55 2718 1

原创 Java elasticsearch scroll模板实现

这个过程需要对每个请求页重新进行提取+排序,效率很低,消耗很大,所以默认的最大可分页的数据是10000,超过10000是不建议的;这里我们定义了一个template如下,主要作用就是实现一个基于scroll的数据遍历模板,屏蔽开启scroll 以及 scroll遍历所有数据,通过。顾名思义,就是游标的意思,核心的应用场景就是遍历 elasticsearch中的数据;返回结果中会把scroll的id带上,再次查询的时候,直接用scroll id查询即可。的方式进行分页查询,使用。钩子函数进行数据处理。

2023-09-04 15:34:11 1481

原创 fastjson2 打开 AutoType

FASTJSON支持AutoType功能,这个功能在序列化的JSON字符串中带上类型信息,在反序列化时,不需要传入类型,实现自动类型识别。必须显式打开才能使用。和fastjson 1.x不一样,fastjson 1.x为了兼容有一个白名单,在fastjson 2中,没有任何白名单,也不包括任何Exception类的白名单,必须显式打开才能使用。这可以保证缺省配置下是安全的。支持配置safeMode,在safeMode打开后,显式传入AutoType参数也不起作用。

2023-09-01 15:14:04 1748

原创 Spring retry(二)- 源码解析-启动装配篇 @EnableRetry

我们快速介绍了下spring-retry的使用技巧,本篇我们将会剖析源码去学习。

2023-08-30 13:11:21 442

原创 Spring retry(一)-使用指南

spring retry 从2.0.2版本之后,从spring batch里剥离出来成为一个单独的工程,因此我们引入spring retry最新版本可以直接如下引入</</</</</</</</启动类上打上注解@EnableRetry。

2023-08-30 13:10:03 844

原创 spring retry

一、接入spring boot 2.7.14spring retry 从2.0.2版本之后,从spring batch里剥离出来成为一个单独的工程,因此我们引入spring retry最新版本可以直接如下引入<dependency> <groupId>org.springframework.retry</groupId> <artifa...

2023-08-25 17:31:00 80

原创 spring web mvc 集成 fastjson2

maven依赖参考文档 https://github.com/alibaba/fastjson2/blob/main/docs/spring_support_cn.md<!- spring5 使用这个 -><dependency> <groupId>com.alibaba.fastjson2</groupId> <a...

2023-08-23 19:36:00 328

原创 手工部署Kubernete 1.14.2 小记

简介最近在倒腾k8s, 这里记录下k8s的部署记录,以方便后续操作使用证书准备etcd/etc/etd/ssl/ca.pem /etc/etd/ssl/server.pem/etc/etd/ssl/server-key.pemkube-apiserver/etc/kubernetes/ssl/ca.pem/etc/kubernetes/ssl/s...

2023-08-23 17:27:00 56

原创 elasticsearch创建索引带mappings和settings

一、通过kabana控制台创建我们在kabana控制台创建一个record_feature_tag的索引,对应的mapping配置如下PUT /record_feature_tag{ "mappings": { "properties" : { "_class" : { "type" : "keyword" }, ...

2023-08-23 17:25:00 349

原创 基于mysql的异步事件框架的设计&实现

背景事件驱动模型编程是程序设计中经常会用到的方法技巧,本质上是为了解耦事件的发布者和订阅者,实现组件之间的松耦合,提高应用程序的扩展性;另外,在一些业务场景中,顺序、阻塞式的执行任务会遇到一些比较耗时的中间步骤,但是往往我们不希望整个流程都停下来等待这些中间过程完成,这个时候我们就会考虑异步执行这些中间步骤; 综上所述,我们需要的是一个可异步执行的事件模型框架;这里就很容易想到...

2023-08-23 16:23:00 111

原创 spring boot 集成 Elasticsearch

一、背景  最近在做录制回放平台, 因为需要把部分数据存储到ES,因此特地实践和调研了一把,把相关材料记录一下;  elastcishearch 版本:7.14.2 spring boot版本:2.6.13 spring-boot-starter-data-elasticsearch: 2.6.13 版本参考文档https://docs.spring.io/s...

2023-08-17 16:36:00 177

原创 jvm-sandbox动态修改java.util.Date

jvm-sandbox 修改Date

2022-11-23 13:50:33 337 1

原创 启动停止tomcat的shell脚本

#!/bin/shexport JAVA_HOME=/home/jdk1.8.0_11export JRE_HOME=/home/jdk1.8.0_11/jre tomcat_home=/home/apache-tomcat-8.5.23/SHUTDOWN=$tomcat_home/bin/shutdown.shSTARTTOMCAT=$tomcat_home/bin/startup....

2019-09-27 08:55:03 318

原创 linux 文件句柄数不够 Error: EMFILE: too many open files

今天在服务器上构建的时候,出现如下报错:Error: EMFILE: too many open files, open 'xxx/static/UE/dialogs/template/images/.svn/all-wcprops'npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! vueadmin@1.0.5 build: `node b...

2019-09-25 14:57:57 6742

原创 VUE “无感”刷新页面

vue 无感刷新当前页面,主要方法如下修改App.vue, 修改如下<template> <div id="app"> <router-view v-if="isRouterAlive" /> </div></template><script>export default { name: '...

2019-09-20 10:50:35 2515

原创 StringTokenizer的使用

今天阅读jmeter源码,StringTokenizer,用来分割字符串的工具类,其构造函数1. StringTokenizer(String str) 构造一个用来解析str的StringTokenizer对象。java默认的分隔符是空格、制表符(\t)、换行符(\n)、回车符(\r)2. StringTokenizer(String str, String delim)构造一个...

2019-09-12 16:34:19 512

原创 Bind for 0.0.0.0:8087 failed: port is already allocated

今天使用docker-compose启动influxdb的时候,首先是出现了如下错误exec: "docker-proxy": executable file not found in $PATH'解决办法:打开docker服务的配置文件/usr/lib/systemd/system/docker.service, 其中有一行配置如下:--userland-proxy-path=...

2019-09-10 10:54:24 2746 2

原创 记一次性能测试问题TIME WAIT巨多的问题

问题现象:性能测试,Loadrunner 大量http 502报错,但是反观系统的CPU和内存使用均正常,数据库也基本上没有什么压力。然后去看nginx的日志,发现了大量如下报错:no live upstreams while connecting to upstream然后从监控上看到如下现象,发现TIME Wait状态的socket连接异常多,这就意味着操作系统存留了大量待回收的已关闭so...

2019-08-27 19:24:15 468

原创 记一次docker里面,开启tomcat8 jmx监控

今天为了定位部署在docker里面的java应用的内存问题,折腾了半天开启JMX监控,采坑较多。在tomcat的bin目录下,修改setenv.shexport CATALINA_OPTS="$CATALINA_OPTS -Xms1024m -Xmx4096m -Dcom.sun.management.jmxremote.rmi.port=6666 -Dcom.sun.managemen...

2019-07-18 19:24:57 1233

原创 记一次K8S node not ready 问题定位

昨天晚上,针对K8S环境做了一次压测,50路并发实施,早上起来看监控,发现昨晚8点之后,系统好像都宕掉了,一看master节点和一个node节点状态变成了not ready,主要定位手段如下:1. 查看master kubelet状态systemctl status kubelet 状态正常2. 查看master kube-proxy状态systemctl status kube-...

2019-07-16 11:19:58 4057

原创 docker oracle jdk 1.7/1.8

https://hub.docker.com/r/primetoninc/jdk一直在找oracle jdk的docker镜像,这里找了一个不错的,特此记录下docker pull primetoninc/jdk:1.7docker pull primetoninc/jdk:1.8

2019-07-15 08:56:29 1892

原创 docker构建nginx+vue+spring boot的基础镜像,并进行部署

构建Spring boot+vue+nginx的Docker镜像Spring Boot + VUE + Ningx 前后端分离部署部署结构准备文件Docker构建镜像使用镜像进行测试后续思考Spring Boot + VUE + Ningx 前后端分离部署spring boot + vue 前后端分离,会遇到跨域问题,所以一般使用nginx作代理,以避免跨域。最近本人在做一个工具,使用前后端分...

2019-07-01 21:11:36 2394 1

原创 docker swarm 管理页面portainer搭建

先览为快:搭建过程如下:首先在swarm的master节点下下载相关imagedocker pull docker.io/portainer/portainer然后执行命令docker run -d -p 9999:9000 -v /var/portainer/data:/data --restart=always portainer最后再浏览器上打开 http:/...

2019-06-26 15:17:40 1609

原创 docker selenium grid2 环境搭建

目录selenium grid2环境搭建使用docker构建selenium grid分布式环境selenium grid2环境搭建Selenium Grid实际它是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。...

2019-06-25 19:59:16 363

原创 VMware安装Centos mini没有网络的问题解决

使用VMware 安装Centos mini 最小化版本之后,设置VMware网络连接方式为nat桥接方式,但是发现还是没有网络。执行命令ip addr,发现网口为ens33, 解决办法如下:修改配置文件/etc/sysconfig/network-script/ifcfg-ens33, 配置项onboot将其由no,改为yes,然后重启网卡重启网络systemctlres...

2019-06-12 08:41:04 698

原创 charles4.2.8 注册码获取

详情参考https://www.zzzmode.com/mytools/charles/请正确选择要破解的版本建议安装使用最新版,官方下载地址https://www.charlesproxy.com/download/描述此工具用于生成破解后的charles.jar文件,blog介绍:https://blog.zzzmode.com/2017/05/16/charles-...

2019-05-08 11:26:21 3137

原创 jmeter 非GUI模式运行

Jmeter 有两种模式,GUI模式和非GUI模式,通常使用GUI模式编辑脚本,使用非GUI模式运行压测,官网上有强调,尽量使用非GUI模式,因为GUI模式下,jmeter UI组件本身在压测过程中会占用很多物理资源命令行运行jmeter// -n 表示non gui,./apache-jmeter-3.3/bin/jmeter -Jnum=50 -Jtime=43200 -n -t t...

2019-03-24 10:30:16 5752

原创 JAVA模拟WebSocket客户端,支持wss ssl证书

背景:websocket在Html5里面有着举足轻重的地位,最近工作中需要对websocket接口进行压测,使用jmeter的websocketsample进行,但是一般现网的websocket都是采用的wss://协议,直接使用ws://协议的较少,毕竟安全还是非常重要的,这里就涉及到ssl协议,模拟websocket客户端,使用证书和公钥,摸索了半天终于摸索出来了。java webso...

2019-03-21 19:30:29 18279 1

原创 Linux 配置ssh免密登录

使用场景:在本地开发经常需要连接服务器进行文件传输,每次连接都需要输入用户名密码,比较复杂,所以就想办法配置免密登录。网上的教程多半要么太过复杂,要么太过简单,因此这里简单叙述下步骤:第一步、ssh-keygen生成公钥在本机电脑上使用ssh-keygen命令生成公钥有输入的地方,连着3次enter就可以了,使用默认值第二步、ssh-copy-id拷贝公钥到服务器上s...

2019-03-20 10:01:27 4778

原创 分享一个vue头像组件 vue-avatar

这两天做前端项目,用到头像,之前用的是组件是自己写的,但是不够酷炫,网上找了个头像组件vue-avatar, 感觉还是非常好用的。安装npm installvue-avatarvue中引入和使用import Avatar from 'vue-avatar' export default { ... components: { Avatar }, .....

2019-03-19 18:44:30 19855 12

原创 vue项目使用docker部署

vue项目在构建打包(docker build)之后,变成静态文件,静态文件的发布可以使用tomcat或者nginx,我们这里使用nginx进行发布配置。首先编写Dockerfile,如下:FROM nginx:1.15MAINTAINER xiuzhu &lt;xiuzhu@qq.com&gt;COPY dist/ /usr/share/nginx/html/ADD defa...

2019-01-14 20:47:35 9745

原创 Centos 安装nodejs到最新版本

centos下使用yum进行安装首先安装epel工具包yum info epel-release然后执行命令yum install nodejs安装成功之后, 执行node -v发现版本还在6.11.3, 但是最新的node已经到11了,因此需要更新首先安装淘宝镜像源 npm install -g cnpm --registry=https://registry.npm...

2019-01-08 10:15:50 5586 1

原创 docker java 应用日志时间与系统不一致的问题

问题描述:java日志里面打的时间比容器时间晚了8小时问题解决:第一步、启动应用的时候挂载时区docker run --name myapp -p 9090:8080 -v /etc/localtime:/etc/localtime -m 1000M -d app:latest第二步、dockerfile新增配置FROM open-jdk-jira:0.1RUN ec...

2018-12-27 10:09:53 6375

原创 pip 安装国内源

pip安装国内源,只需要在pip命令上带上信任源即可:pip install  --index http://mirrors.aliyun.com/pypi/simple/  httpclient当然,也可以建立配置文件,永久配置,在用户 user 目录下建一个pip目录,并在里面创建一个pip.ini文件然后写入内容[global] index-url=http://m...

2018-12-07 09:03:23 506

原创 spring boot devtools使用和源码解析

spring boot 提供devtools工具spring-boot-devtools用于开发的时候热部署,其实这个特性在nodejs项目里面经常用到,修改一个文件,项目就会自动重启并刷新浏览器,这个特性在开发的时候非常有用。实践创建一个spring boot工程,并引入spring-boot-devtools:&lt;dependencies&gt; &lt;dependenc...

2018-12-03 20:00:34 2451

原创 Testng IHookable 监听器

IHookable 监听器提供一种类似于AOP的方式,对测试method进行环绕编程。主要的应用场景:1. 动态重写测试method (替换测试方法为空运行)2. 动态决定是否跳过测试method (例如鉴权)3. 自定义注解,例如@ignore, 当检测到有这个注解的时候,跳过测试执行IHookable监听器定义的接口如下 public void run(IHookCall...

2018-11-27 20:38:09 1814

原创 influxDB 控制台时间格式调整(指定时区)

influxdb 控制台,命令如下:influx -database 'csdn' -host '127.0.0.1' -port '8086'执行查询命令select * from access,查询结果如下:时间的默认显示使用的是unix时间戳,执行命令precision rfc3339 设置时间格式,显示如下但是这里显示采用的时区为UTC时区,与中国时区差了8个小时,...

2018-11-06 10:28:19 24305 4

原创 nightwatch 使用Expect进行浏览器元素校验 (三)

自动化测试一个非常重要的特性就是校验,nightwatch提供Expect库和Assert库,接下来我们分别就这两个库进行介绍。本文翻译自http://nightwatchjs.org/api/#expect-api    上一篇 nightwatch + selenium 基于浏览器的web自动化测试 教程(二) 目录Expect 语法链.equal(value)/.co...

2018-11-05 19:48:07 1163

集成小工具,可执行jar包

里面有很多代码

2017-07-07

JSON 解析工具

本资源为一个工具,用于将JSON解析并格式化成TreeView,代码公开,JSON解析并格式化的工具

2014-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除