自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rick的专栏

不弃的孩子~ http:\\l-angel.fun\

  • 博客(69)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于JavaAgent的Mock和回放系统

主要解决的问题依赖的第三方系统不稳定等情况,影响开发和测试流程UI测试,压力测试等去除IO操作目前市场上集几种Mock方案以及分析在代码中Coding代码逻辑。使用网络代理,将服务代理到指定服务器(JVM Proxy参数)。修改注册中心,将相应的服务地址修改到Mock服务。使用JavaAgent 修改字节码,将相应的IO的地方修改到某些地方。分析现有的主流Mock方案有上面的列出几种,尽管可以达到Mock的目的,但是存在和现有业务代码耦合性大,功能匮乏,对mock掌控力能力弱等

2020-07-27 17:45:42 2238 2

原创 基于JavaAgent的Mock,流量回放,耗时分析,全链路监控(实现中)系统-简介篇

一. 背景今天无心写代码,整理下文章看。应用对于第三方的依赖较多,由于第三方接口测试环境可靠性不高,容易导致测试人员测试堵塞;需要特定场景的数据,但是依赖相对复杂,伪造数据的成本较高等情况,对于接口,数据库,redis等Mock的需求还是比较大的。目前公司内部不同部门有多套Mock方案,但是都没有摆脱对代码的侵入,可扩展性不高。基于目前大部分服务已经是Java技术栈的前提情况下,通过JavaAgent修改字节码的方式达到Mock的目的的条件逐渐成熟,虽然该方案开发入门较高,但从可维护,推广简易,成本效益等

2020-05-08 21:01:40 2186

原创 LavCache

LavCahceIntroduction: LavCache是一款可以支持现有大多数业务场景的缓存框架,支持自定义存储媒介、项目初始化加载、过期重试、访问统计等多种特性,并且支持yml文件配置。技术水平有限,欢迎各位大佬批评指正([email protected])Poject Address:https://github.com/L-Angel/lavcache一...

2018-10-05 17:38:31 263

原创 G1 收集器介绍

G1收集器一. 名词解释MetaSpace 在Java8之后取代永久代方法区的内存部分,NativeMemoryMixed GC Event 所有Young Region和一部分Old Region的混合GC时间。Reclaimable G1 为了能够回收,创建了一系列专门用于对象回收的Region,存放在链表中,只包含存活率小于-XX:G1MixedGCLIveThr...

2018-02-24 04:27:04 5741 5

原创 基于Golang的Class文件解析工具

分享一下之前写的Class 文件解析的工具。Gom:https://github.com/LavGo/gomgo get -u github.com/LavGo/gomgo install github.com/LavGo/gomgom Xjre="ClassFile path"

2020-07-06 14:56:18 471

原创 Java 使用try-with-resource语法关闭GZIPOutputStream,返回Byte[]二进制数据不正确问题

try-with-resource语法try(xxxStream is=new xxxxStream()){ return is.xxx;}try-with语法实际上就是 try-finally对于流处理的一个语法糖,会在try的代码块执行完毕后自动添加Finally方法块,并调用流的Close方法。这么看来使用try-with-resources来处理gzip流并没有问题。使用try-with 处理gzip流问题gzip会在close方法中调用finish方法把结果输出。 try

2020-06-04 17:28:59 895

原创 神器之ByteBuddy,字节码注入分析代码执行性能

前文一路上看见晦涩难懂的ASM,小巧可人的Javassist。直到遇见了ByteBuddy才知世上竟有如此的冷艳简洁。JavaAgent从Jdk1.5开始Java开始支持Java Agent特性,可以通过premain方法,在Class字节码加载进虚拟机之前对底层的字节码进行修改。从而达到可以自定义特性的功能。给Aop的实现提供了一种更加简洁的方式。ByteBuddy字节码修改工具貌似从Java的诞生就一直存在,一开始的ASM,后来可以通过人类可以理解的方式修改字节码的Javassist,到现在的

2020-05-10 18:56:59 3712 6

原创 Shell 自动远程合并(Merge)分支

#!/bin/bash#----------------------------------------------------------# author : jiangcw# email : [email protected]# date : 2019-03-08## param :# git repo : the address of git re...

2019-03-29 10:55:45 1353

原创 根据被占用的端口杀掉(Kill)对应占用的线程

#!/bin/bashsudo kill -9 $(lsof -i:$1 | awk '{print $2}' |sed -n 2p)

2019-03-29 10:54:19 551

原创 Linux Shell 备忘 笔记

1. 输出重定向文件描述符含义0输入STDIN1标准输出 STDOUT2标准错误 STDERR0,1,2 为内置描述符,3-9为保留自定义描述符# 临时重定向echo "Test" >&1 #标准输出echo "Error&am

2019-03-10 00:00:40 240

原创 Zstd、GZip、Snappy等几种压缩方式时间效率对比

ZSTD 解压缩方式的时间与设置的非压缩的原数据大小有关小文件:KB级别,执行1000次普通文件:kb级别,执行100次大文件:4M+,执行10次ZSTD:解压缩分配空间等于压缩后的大小*5结论:Zstd压缩方式压缩比确实要高一些,对于小文件,在耗时上Zstd明显要好于其他的压缩方式,对于大文件耗时上和Snappy差异不大Small File :Snappy : S...

2019-01-13 20:37:31 15016

原创 设计模式(Java)-观察者模式

类图Codingpackage WatchPattern;import java.util.List;/** * Created by jiangcw on 2017/2/4. */public interface ISubject { public void attachWatcher(IWatcher watcher); public void removeWarcher(

2017-02-04 10:57:23 302

原创 设计模式(Java)-装饰者模式

类图package DecoratorPattern;/** * Created by jiangcw on 2017/2/3. */public abstract class Component { public abstract void operate();}package DecoratorPattern;/** * Created by jiangcw on 2017/

2017-02-03 15:00:13 295

原创 Golang RPC

Server.gopackage mainimport ( "fmt" "net/rpc" "net" "log" "sync")type Arg struct { Param1 string}type Request struct{ Arg1 int Arg2 string Arg3 *Arg}type Respons

2017-01-06 03:49:59 506

转载 Vim插件管理利器——Vundle

Vundle是基于Git仓库的插件管理软件。Vundle将插件的安装简化为类似yum软件安装的过程,只要:BundleInstall插件就安装完了,:BundleClean之后插件就卸载了。 一、Vundle的安装和使用 1. Vundle的安装 [ruby] view plain copy 在CODE上查看代码片派生到我的代码片$ git clone http://github.com/g

2017-01-01 23:11:48 355

原创 在快节奏的路上,停下来,想一想,反思(2016-11-27杂记)

序:每一个人的经历,都是一本好书。真的的故事源自生活,好书的素材取自于生活。第一章:感谢自从七月份到携程实习以来,真的很感谢各位同事和同学帮助。czy同学在我还没有来上海就帮我安排了住宿事宜,真的很感谢,不然既要忙入职,还要忙找房子真的累人。cxj,zzh,sx,lk,mxw,zh等各位同学在我实习期间帮我搞定学校的各种麻烦事情。哈哈还有324,224,132实验室的各位大伙伴,小伙伴们。赵老师,王

2016-11-27 01:22:39 600

转载 C#委托 delegate

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Test1{ class Program { public delegate double MProcess(dou

2016-10-04 19:15:23 242

转载 Centos Redis 安装

wget http://redis.googlecode.com/files/redis-2.6.13.tar.gztar xzf redis-2.6.13.tar.gzcd redis-2.6.13make MALLOC=libcmake installcp redis.conf /etc/参数介绍:make install命令执行完成后,会在/usr/local/bin目录下生成本个可执行文件,

2016-09-21 22:30:12 229

转载 Tmux 快捷键

原文链接server服务器。输入tmux命令时就开启了一个服务器。session会话。一个服务器可以包含多个会话。window窗口。一个会话可以包含多个窗口。pane面板。一个窗口可以包含多个面板。操作类似各种平铺式窗口管理器,tmux使用键盘操作,常用快捷键

2016-09-21 22:26:03 315

原创 Shell 快捷键

CTRL+W 删除光标所在的单词CTRL+U 清除行Tab 自动补全CTRL+R 搜索历史命令CTRL+C 终止当前命令CTRL+D 退出登录SHELLESC+T 调换光标前的两个单词

2016-09-17 04:27:07 222

转载 一致性哈希算法(consistent hashing)

转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应

2016-09-13 11:09:59 192

原创 Google Protocol Buffer 的使用和原理

IBM介绍 https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/

2016-07-31 16:07:53 341

转载 Bat 语法

Bat语法1、 REM REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。 例: REM 你现在看到的就是注解,这一句将不会被执行。 2、 ECHO ECHO 是一个回显命令主要参数有OFF和 ON,一般用ECHO message来显示一个特定的消息 。例: Echo off Rem 以上代表关闭回显即不显示所执行的命令 Echo 这个就是

2016-07-31 16:00:26 427

原创 Git 使用简单入门

http://rogerdudler.github.io/git-guide/index.zh.html

2016-07-26 17:53:28 274

原创 Beego xsrf处理

服务端app.conf enablexsrf = true xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o xsrfexpire = 3600 Controlle func (this *HomeController) Get(){ this.XSRFExpire = 7200 this.Data["xsrfdata"]=

2016-07-16 12:13:47 2365

原创 MongoDB 基本使用

启动mongodb服务端mongod --dbpath="[directory of db data]" --smallfiles操作//select dbuse [dbname]//show databaesshow dbs//show collections(table)show collections// query datadb.[collectonsname].find([q

2016-07-16 10:50:49 265

转载 解析301与302重定向之间的区别

1、什么是301转向?什么是301重定向?   301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。   2、什么是302重定向?   302重定向又称之为302代表暂时性转移(Temporarily Moved ),英文名称:302 redirect。 也

2016-05-08 16:53:59 7097

原创 Beego 1.6+ 错误页面(404,500)自定义重定向

1.Beego 1.6+从Beego1.6开始Beego不再支持Errorhandler,建议使用ErrorController 2.

2016-05-07 19:03:36 1716

原创 标签、Id、Class权值谁先生效实验

通过实验证明Id>class>标签2.<!DOCTYPE html><html><head><link href="index.css" type="text/css" rel= "stylesheet"/><script src="index.js" language="javascript"></script></head><body><div class="divclass"

2016-05-07 12:58:51 563

转载 ln 软连接(-s) 和 硬链接(-d)的区别

在Linux中,经常看见软连接和硬连接的说法,尤其是软连接更是比较多,可一直都不是很明白,今天在网上查了一下,很多人也和我一样,正处在郁闷 中,哈哈,过于深入的东西没有研究,在使用的层面上对这两个东西做一个简单的总结,方便了自己记忆,也给其他处在郁闷中的兄弟姐妹一点帮助,有什么问题也 欢迎大家指正,哈哈。   先说软连接,一个认为这个比较好理解,一个也是因为柿子专挑软的捏啊,哈哈,创建一个软连接的

2016-05-07 12:48:36 21339

转载 Golang strings 包 用法详解

package mainimport ( "fmt" "strings" //"unicode/utf8")func main() { fmt.Println("查找子串是否在指定的字符串中") fmt.Println(" Contains 函数的用法") fmt.Println(strings.Contains("seafood", "foo"))

2016-05-05 14:04:52 5197 1

原创 携程2016技术培训生(机票研发部)面经

1.笔试在线笔试,和腾讯笔试用的同一套系统,题目分为四部分,前三部分为智力题目,就是IQ测试那种题目。最后一部分是编程题目,难度中等。2.一面(前端)2016年4月某一天的下午,在实验室正准备去吃饭突然接到携程国际打来的电话。然后问,您好我是携程的前端面试官,请问您有时间进行以下面试吗。突如其来的的面试电话,当然可以了。面试问题(大体上啊,忘得差不多了):(1)js的API分为哪几类 (2)给同一

2016-05-02 19:09:53 3983 3

原创 Http协议分析

1.状态码1XX-提示信息——表示请求已经成功接收,继续处理;2XX 成功——表示请求已被成功接收,理解,接受;3XX 重定向——要完成请求必须进行更进一步的处理;4XX 客户端错误——请求有语法错误或请求无法实现;5XX 服务器端错误——服务器未能实现合法的请求;

2016-04-18 20:53:07 292

原创 Hierbate 3.3+Spring 3.1 +SpringMVC+Myeclipse 10集成框架搭建

一.环境配置1.myeclipse 10 2.springmvc (Spring web) 3.spring3.1(Spring core) 4.Hibernate 3.3(3.3+支持注解功能,3.3-不支持注解功能) 5.jackson-Core-1.9二.创建Java Web项目三.相关包导入(Spring包)使用myeclipse集成环境自动导入相关包 四.web.xml<?xml

2016-04-15 16:56:11 2078

转载 Mysql 查看连接数,状态

命令: show processlist;如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。 show processlist;只列出前100条,如果想全列出请使用show full processlist; mysql> show processlist;命令: show status;命令:show status like '%下面变量%';Ab

2016-04-07 22:04:08 359

原创 Linux查看内存等硬件信息

1.Linux秉承一切皆文件的理念,所以所有的硬件设备均以文件的形式在系统中呈现出来,所以要查看硬件设备的信息只要找到相应的文件即可,一般放置在/proc目录下 获取内存信息 获取io缓存信息

2016-04-07 22:01:09 340

原创 人脸识别初探(Python)

1.利用opencv库sudo apt-get install libopencv-*sudo apt-get install python-opencvsudo apt-get install python-numpy2 .Python实现import osimport osfrom PIL import Image,ImageDrawimport cvdef detect_object

2016-04-01 21:29:05 1217

原创 A star

A星算法步骤: 1.起点先添加到开启列表中 2.开启列表中有节点的话,取出第一个节点,即最小F值的节点 判断此节点是否是目标点,是则找到了,跳出 根据此节点取得八个方向的节点,求出G,H,F值 判断每个节点在地图中是否能通过,不能通过则加入关闭列表中,跳出 判断每个节点是否在关闭列表中,在则跳出 判断每个节点是否在开启列表中,在则更新G值,F值,还更新其父节点;不在则将其添加到开启列表

2016-04-01 21:22:07 248

原创 快排QuickSort

#include<iostream>#include<cstdio>#include<cstdlib>#define MAX_LEN 10using namespace std;int Partition(int a[],int start,int finish);void QuickSort(int a[],int start,int finish){ if(start<f

2016-04-01 15:44:55 2205

原创 Apache Tomcat Web集群

http://www.jfox.info/guan-yu-java-tomcat-ji-qun-de-mian-shi-wen-ti

2016-03-31 20:18:27 240

Dais-CMX16实验指导书

Dais-CMX16实验指导书 很好的指导实验的整个过程,便于了解Dais-CMX16的组成及其平台色运用。

2015-11-26

电子表C++API

电子表 C++ API 基础 windows开发

2014-03-12

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

TA关注的人

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