自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(248)
  • 资源 (15)
  • 收藏
  • 关注

原创 记一个maven依赖关系错乱的问题

场景:一个项目下有两个不同目录下的独立根pom.xml这两个根pom.xml即可以两个独立打依赖树,也可以其中一个作为另一个的module依赖。现在根pom.xml 1下的一个模块A依赖了spring framework 5.3.20,另一个根pom.xml下的模块B依赖了模块A。问题:打出来的依赖树却显示模块B依赖树中的模块A依赖的spring framework是5.3.14版本。实际上可以确定模块A依赖的spring framework是5.3.20,因为是主动依赖的,后来反复检查发现,是模

2022-06-25 14:28:36 405

原创 将k8s容器内端口映射到容器外部访问

1、在master节点创建一个yaml文件,比如service.yaml文件内容如下然后执行kubectl create -f service.yaml命令就可以将容器内1888端口的服务映射到node节点上的3888端口给外部访问

2022-06-16 20:23:10 3421

原创 使用javaassist动态修改字节码文件

package mock;import javassist.ClassPool;import javassist.CtClass;import javassist.CtMethod;import javassist.LoaderClassPath;public class ModifyClass { private static final String LINE_SEPARATOR = "\n"; private ModifyClass() { } /*

2022-01-14 17:04:04 690

原创 使用maven打jar包的相关pom.xml配置

主要是配置打包使用的相关maven插件,简单的配置如下:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId>

2022-01-14 16:43:43 1435

原创 java判断数据库连接是否有效的方法

java.sql.Connection类有两个方法可以判断连接是否有效一个是java.sql.Connection#isValid一个是java.sql.Connection#isClosed这两个方法的应用场景区别还是很大的首先看isClosed方法org.apache.commons.dbcp2.DelegatingConnection#isClosed这方法是判断java对象Connection对象是否是连接状态,而不是到数据库的连接是否正常。比如数据库宕机,Connection对象的状

2021-11-03 15:04:08 10502

原创 远程主机强迫关闭了一个现有的连接

问题现象服务端报远程主机强迫关闭了一个现有的连接,抓包发现,返回给客户端RST问题分析,从抓包看是服务端返回给客户端RST,是服务端主动关闭了连接,但是服务端实际上是报错,关闭了连接。java.io.IOException: 远程主机强迫关闭了一个现有的连接。 at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[?:1.8.0_222] at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.

2021-11-02 10:13:46 25530 3

原创 arthas监控程序运行状态

Arthas可以在不方便远程debug的情况下监听生产环境接口调用轨迹,方法出入参,jvm运行状态等多种功能。一、安装包下载https://arthas.aliyun.com/doc/download.html二、环境准备1、将下载的安装包传入待监控的linux环境2、比如是压缩包可以通过unzip arthas_tool.zip解压,然后dos2unix *转换文件格式三、监听方法调用1、运行arthas服务java –jar arthas-boot.jar输入需要监听的java进程的序

2021-08-30 15:39:23 972

原创 使用httpclient5启动https协议桩请求报SSLPeerUnverifiedException

SSLConnectionSocketFactory sslFactory = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());HttpClientConnectionManager connMgr = PoolingHttpClientConnectionManagerBuilder.create().setSSLSocketFactory(sslFactory).build();return HttpCl.

2021-07-21 21:17:41 1951

原创 熔断超时不生效及动态加载配置不生效问题

1、问题描述在本地环境测试调用南向服务超时会记录失败次数,达到阈值熔断,服务器上却不生效。2、定位过程经过远程debug,发现是由于在服务器上的executionTimeoutEnabled配置是false导致的,感觉很奇怪,因为默认值配置是true,也没有指定为false,只能在代码里传入这个配置项,置为true,具体代码跟踪流程如下:Hystrix是在com.netflix.hystrix.AbstractCommand#executeCommandAndObserve方法中进行是否开启

2021-07-03 09:49:26 1103 1

原创 SOAP UI模拟响应延迟

使用SOAP UI模拟服务端响应延迟在SOAP UI的服务桩的响应脚本中添加如下语句:def timeout = 61000Thread.sleep(timeout)时间单位:毫秒

2021-06-21 14:15:00 300

原创 使用Hystrix实现熔断

在使用Hystrix实现熔断的过程中遇到了两个问题1、在修改了熔断配置之后不生效的问题2、熔断后不恢复的问题对于第一个问题,查看hystrix源码可以看到,如果有缓存配置是优先使用的缓存的,因此如果配置更新,必须要更新缓存,不能使用Hystrix.reset()方法来更新缓存,这个方法清理全局缓存,会影响其他commandkey的熔断状态。public static HystrixCircuitBreaker getInstance(HystrixCommandKey key, Hystri

2021-06-09 09:46:34 472

原创 https证书相关命令

查看当前keystore秘钥库中的证书keytool -list -v -keystore trust.keystore将p12文件转成jks文件keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore keystore.jkskeytool -importkeystore -srckeystore tomcat.keystore -destkey

2021-05-18 17:46:51 363

原创 双向认证时客户端没有发送身份证书给服务端

场景:双向认证的客户端身份证书快要过期了,因此更换了客户端证书的证书库中的身份证书。调服务端报找不到证书或者证书验证失败,经过抓包,发现,服务端发送了服务端身份证书,且请求客户端发送客户端身份证书,但是客户端没有发送身份证书。原因:双向认证场景,服务端发送身份证书的同时,告诉客户端服务端运行接受的CA列表,然后客户端根据这个列表在证书文件(导入的双向认证证书文件)找这个证书,如果没找到就发送空证书导致这种情况出现的原因是,客户端更换了身份证书,但是服务端证书库却没有导入更新的证书,导致发

2021-05-14 11:12:09 614

原创 docker、k8s命令

1、查看运行中的容器docker -ps2、进入运行中的容器docker exec -it containername /bin/bash3、将docker容器中的文件复制到宿主机docker cp containerid:path/文件名 ./4、将宿主机上的文件复制到docker容器内docker cp ./文件名 containerid:path/5、删除容器内root用户的文件docker exec -it -u root containerid bash -l6、宿主机端口映射

2021-03-24 15:52:39 472 1

原创 comons-io包实现文件动态读取

package demo;import org.apache.commons.io.filefilter.FileFilterUtils;import org.apache.commons.io.monitor.FileAlterationListener;import org.apache.commons.io.monitor.FileAlterationMonitor;import org.apache.commons.io.monitor.FileAlterationObserver;.

2021-01-29 16:50:10 257

原创 使用Archaius监听文件变化

package com.teriste.database;import com.netflix.config.AbstractPollingScheduler;import com.netflix.config.ConfigurationManager;import com.netflix.config.DynamicConfiguration;import com.netflix.config.FixedDelayPollingScheduler;import com.netflix.con.

2021-01-29 16:28:49 461

原创 jvm相关监控

首先执行top命令查看cpu占用过高的进程id接着执行top -Hp 进程id获取进程内cpu占用最高的线程idTIME列是各个java线程耗费的cpu时间,将线程id使用printf "%X\n" 线程id转成十六进制然后使用jstack 进程id | grep 线程id十六进制,找到这个线程的堆栈,然后分析代码逻辑。使用jstat命令查看jvm监测统计jstat -gc PID 毫秒间隔 统计次数jvm的堆内存分为新生代、老年代、永久代,其中新生代又分为Eden区和Surivor区,S

2020-12-10 15:04:39 133

原创 linux恢复已删除的文件(文件被其他进程占用的情况下)

linux可以恢复已删除的文件,前提是该文件正在被其他进程占用,比如有进程挣通过less命令查看该文件内容。通过lsof命令可以查看已被删除文件被占用的进程id,然后通过cat命令恢复文件lsof | grep 文件名可以看到该文件已被删除,但是还在被进程88149占用,进入该进程目录可以看到该文件的副本cd /proc/88149/fd/可以看到该目录下的链接文件,根据lsof命令也可以知道删除的是类型4的文件,通过cat命令重写到一个新文件中cat /proc/88

2020-10-29 10:47:20 1689

原创 此ca根目录证书不受信任

如果请求的服务器是https协议的,没有将服务的证书导入请求方的信任列表库,会出现找不到可信任证书的报错,这时候需要浏览器打开请求的地址,点击地址栏左侧的锁或者三角,点击证书,点击第二栏,导出证书,选择base64格式。导出证书后将证书上传到应用中配置的证书目录,然后执行下面的命令keytool -import -alias client -file server.cer -keystore servertrust.keystore其中的server.cer是请求的服务上导出的证书,serve

2020-10-27 15:47:32 19874

原创 获取字符串形式的xml报文的有效字段名称并转为map

public static org.dom4j.Document createDocument(String text) throws DocumentException { String encoding = getEncoding(text); InputSource source = new InputSource(new StringReader(text)); source.setEncoding(encoding); Docume.

2020-09-18 20:52:55 270 1

原创 String字面量做同步锁存在的问题

碰到一个问题就是想要使用两个对象锁控制同一个类的两个方法在多线程环境的同步问题。目标是两个方法可以同时由不同的线程获取不同的锁同时执行,互不影响。通过定义两个String对象作为对象锁存在的问题。如果用两个String变量使用相同的字面量定义由于代码中定义的字面量编译后在字符串常量池中引用的都是相同的对象,因此实际上两个String对象是同一对象锁所以使用String对象做Synchr...

2020-04-22 09:34:46 285

原创 Maven打jar包配置

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m...

2020-04-20 20:13:01 464

原创 Java动态代理

一、JDK动态代理jdk动态代理本质上是使用被代理对象的类加载器,通过被代理类实现的接口在运行时动态构造出代理类来增强原始类的功能的方法,需要使用Java的反射机制,通过实现InvocationHandler接口实现JDK动态代理。1、先定义一个接口package com.teriste.fanshe;public interface HelloWorld { void ...

2020-03-26 16:47:27 564

原创 win10切换git账号

1、打开控制面板,选择用户账户->管理你的凭据2、点击Windows凭据,选择相应的git凭据,删除或修改3、在git命令行界面输入以下命令修改用户名git config --global user.name “username”注意不执行这一步,在idea中提交代码还会是原来的账号4、通过idea提交代码,会提示重新输入git账号,然后提交。...

2020-02-07 11:56:02 2208

原创 直接查询不设过期时间的缓存的注意事项

需求:前台系统通过RPC调用中台系统接口查询图片url。中台考虑到图片地址在资源服务器上传之后是不会改动的,因此通过管理后台上传之后,持久化到中台的Redis缓存中,且没用设置key的缓存时间。前台请求中台接口时直接请求缓存,不回源到数据库,提高并发量及响应速度。问题:后期考虑到架构设计,将前台系统和中台系统共用的Redis分离,前台请求前台的redis,中台请求中台的redis。这就导致在切...

2019-10-25 17:07:33 576

原创 狄克斯特拉算法DijKstra Algorithm

广度优先算法适用于计算有向无权图计算最短路径。狄克斯特拉算法是有向加权图计算最小开销的算法,不适用于负权边的情况。下面是代码示例,起点是start,经过a点权重是6,b点的权重是2,a点到终点fin的权重是1。b点到a点的权重是3,到fin点的权重是5,现在计算从start到fin的最小权重路径。package com.teriste.algorithm;import org.a...

2019-10-24 20:12:51 529

原创 HTTP状态码

状态码 状态含义 详细描述 100 继续 请求者应当继续提出请求。服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分。 101 切换协议 请求者已要求服务器切换协议,服务器已确认并准备进行切换。 200 成功...

2019-09-17 17:49:12 218 1

原创 使用fiddler抓取手机请求url进行本地环境测试

有时候存在需要测试登录情况下的接口请求数据,比如业务逻辑中需要获取用户id的,这时在本地环境debug时是无法获取到用户登录信息的,因为没有cookie信息。所以这时后就可以通过手机连接到服务端的网络,安装fiddler证书,然后通过手机app登录,使用同一接口发起请求,然后将fiddler抓到的url修改未本地域名,然后发起请求就可以在本地环境获取到登录信息了。操作要点手机连接电脑网络注...

2019-09-11 20:41:31 1831

原创 无法解析单元测试引入的xml

在使用testng进行单元测试时,idea提示无法解析引入的xml文件:这是由于没有将Test Resources引入class路径中导致的,以idea为例,可以进入Project Structure菜单,选择相应的项目模块,点击Test Resources按钮,就可以引入测试资源了。...

2019-09-06 10:23:33 782

原创 屏蔽Sonar问题

如下代码:private T result;Sonar报没用序列化,但是我这里是泛型类型,具体类肯定是实现序列化接口的,因此这里就需要屏蔽sonar的检查。private T result; // NOSONAR...

2019-09-02 15:29:36 1635

原创 使用testNG进行功能测试

我们使用spring的testng也可以实现像junit一样的功能测试。1、引入jar包<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId></dependency><de...

2019-08-28 20:51:22 1475 1

原创 发布jar包到maven仓库

本地中台提供rsf接口给外围系统,需要将代码打成jar包发布到maven仓库供外围系统引用。注意:发布的jar包接口定义要一次完成,否则再次发布就无法使用原来的版本号,不论是SNAPSHOT还是RELEASE版本。如果接口定义不修改,仅仅修改方法内的代码就没有关系。1、修改setting文件要将jar包上传到maven仓库需要用户名密码:2、上传的jar包名称和版本号由项目内的...

2019-08-28 19:03:53 495

原创 Idea中回滚到提交的某一版本

1、复制版本号08a2a576a041ff1f3bcdf0749527f95ecf3f46202、在idea命令行输入如下命令:git reset --hard 08a2a576a041ff1f3bcdf0749527f95ecf3f46203、将本地的变更推送到修改的分支git push –f –u origin 分支名称注意:一旦执行,之前提交的代码都会被删除掉...

2019-08-23 11:18:37 9124

原创 使用Collections.shuffle方法生成随机顺序的List

使用Collections.shuffle方法生成随机顺序的List,shuffle方法可以根据是否传入random实例决定list随机顺序的生成方式。package com.teriste.web;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context...

2019-08-18 16:39:36 1303

原创 使用Jute进行序列化

Zookeeper在网络传输时使用的是Jute进行序列化和反序列化,官方也提出过要使用类似于Apache Avro、Thrift或是Google的protobuf这样的组件来替换Jute,但考虑到新老版本组件的兼容性,官方对替换序列化组件工作的推进持保守和观望态度。下面来看看如何使用Jute来完成对象的序列化和反序列化,以MockReqHeader类为例,需要实现Record接口。pac...

2019-08-18 10:21:41 2433

原创 waf使用场景

waf主要功能是用于流控,包括UA+IP策略的流控和IP流控两种,目前没有开发单独针对UA的流控。流控可以真正应用级别或针对url的模糊匹配级别。老的waf流控使用的是spark,只能配置周期为10s、30s、60s的监控,拦截不够及时,新的waf流控使用flink开发,可以做到秒级的监控和拦截。配置准实时流控没有高级流控及时,如果有高级别的流控配置可以不用配置准实时流控。waf有...

2019-08-16 11:31:04 1189

原创 使用jmeter进行性能测试

Apache JMeterTM 应用程序是开源软件,是一个100% 纯 Java 应用程序,旨在加载测试功能行为和测量性能。 它最初设计用于测试 Web 应用程序,但后来扩展到其他测试功能。Apache jmeter 可用于测试静态和动态资源(Web 动态应用程序)上的性能。 它可以用来模拟服务器、一组服务器、网络或对象上的重负载,以测试其强度或分析不同负载类型下的总体性能。1、下载jme...

2019-08-07 20:32:13 2038

原创 lombok教程

https://objectcomputing.com/resources/publications/sett/january-2010-reducing-boilerplate-code-with-project-lombok

2019-08-07 16:56:39 240

原创 git-commit-id-plugin插件

添加git-commit-id-plugin插件,该插件用来产生git的版本信息<!--获取Git版本信息的插件--> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-...

2019-08-05 20:01:52 7696

原创 根据文字或图片来生成用于Banner输出的字符画

http://patorjk.com/software/taag http://www.network-science.de/ascii/ http://www.degraeve.com/img2txt.php

2019-08-05 17:19:32 3123 1

没用处的word自定义样式

没用处的word自定义样式

2023-03-17

IBMjvm内存分析工具

jvm堆快照分析工具,用于定位jvm内存泄漏或者死锁等问题

2021-03-20

jvmgc日志分析工具

适用于jvm运行生成的gc日志文件可视化分析

2021-03-20

tcp连接转储tcpdump

进行tcp连接监控,定位tcp连接的各种问题,可通过wireshark加载分析,找出连接关闭等各种连接问题的原因。

2020-11-13

AxureRP_for_chorme_0_6_2.zip

用于使用Chrome打开本地html项目时,无法查看本地文件出现的问题。

2019-07-25

redis-desktop-manager-0.7.6.15.rar

用于Windows系统管理redis数据库,提供图形化的界面连接到redis并添加、修改、删除相应的key值,并可以方便的切换数据库。

2019-06-18

jdbc驱动包.rar

用于Tomcat的jdbc驱动包,包括与msql的连接、与mq的连接,将压缩包解压,放入tomcat的lib目录下即可。

2019-05-18

JsonView桌面版

Json作为我们前后端交互以及服务之间交互的常用数据格式,受到广泛使用,JsonView正是用于格式化Json字符串,便于开发者查看的一个工具,这里是Windows桌面版的JsonView。

2019-05-07

jQuery+Bootstrap美化弹出框

基于jQuery和Bootstrap的弹出框,替代使用浏览器弹出的警告框,优化后弹出框样式。

2018-12-05

vsftpd-2.2.2-24.el6.x86_64.rpm

文件是vsftpd-2.2.2-24.el6.x86_64.rpm,安装方法很简单,输入rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm即可安装,可以到/etc/vsftpd/vsftpd.conf编辑配置文件

2018-08-31

plsql和oracle客户端安装包

plsql安装包和相应的oracle客户端安装包,安装完成后需要配置ORACLE_HOME

2018-08-30

Jedis简明教程

Jedis连接池使用方法,Jedis数据类型操作及事务简单介绍

2018-05-08

JavaScript学习笔记

JavaScript从入门到精通的学习笔记和代码案例,涵盖了基本的JavaScript开发用法。

2018-02-23

MyEclipse反编译插件

在工程中引入的Jar包,我们想要在MyEclipse中直接反编译打开时,可以使用此工具。

2018-01-19

MyEclipse中SVN插件

用于IDE进行代码版本关联,与SVN服务器进行交互,将压缩包解压后直接放到MyEclipse的dropins目录下即可,打开MyEclipse即可创建SVN项目、连接SVN服务器、从SVN服务器下载工程。

2017-12-29

空空如也

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

TA关注的人

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