自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 k8s-api踩过的坑

Namespace mismatch. Item namespace:statement. Operation namespace:apps client.inNamespace(namespace).batch().jobs().create(job);添加inNamespace

2020-01-09 14:26:54 865

原创 feign-spring4的RPC路由方案

前言最近接手了一个为前端提供api的restful服务,前端框架是使用vue.js开发的,初略的查看一下发现前端框架依赖两个后端服务,通过vue的route配置进行分发这也是现在最常见的交互方案了,但这种方案也存在了一些缺点1.提供api的两个服务必须有比较明确的识别度,比如:一个服务是/user/**格式,另一个是/product/**格式2.后端服务无法统一的管理api,加...

2020-01-04 12:35:47 684

原创 Arthas线上代码诊断神器-定位问题

什么是ArthasArthas是阿里开源的一款优秀的代码诊断工具生产环境我们经常会遇到这样那样的bug,由于生产环境产生bug的不可复制性,开发人员经常对其束手无策,代码诊断工具应运而生。Arthas是阿里最新的一款诊断工具上,在此之前阿里分别开源了HouseMD、Greys,Arthas继承了上两代的优点,功能更加强大,交互更加方便。Arthas能做什么快速定位问题下面分...

2019-07-19 12:54:11 843

原创 JavaAgent使用笔记

JavaAgent的原理来源这里就不多说了,有兴趣的同学请参考一下两篇文章:https://www.cnblogs.com/beautiful-code/p/6424931.html https://www.jianshu.com/p/4e34d0ab47d1这篇文章主要时为了讲述JavaAgent在使用中的一些细节。对JavaAgent有所了解的人都知道,JavaAgent有两种启动...

2019-06-26 11:34:33 1263

原创 OKHTTP自动次数重试方案与连接池

连接池最近在工作中开始使用okhttp,详细的研究了一下源码,发现了关于连接池的部分与我之前的理解有些不符new OkHttpClient().newBuilder().connectionPool(new ConnectionPool(100,1,TimeUnit.MILLISECONDS))使用过okhttp的人都知道在构建client的时候就声明了连接池new Conne...

2019-06-20 18:28:34 6193

原创 动态规划法

最近遇到了一道挺有意思的算法题:四种硬币 1元3元4元5元 ,问:想要凑成n元钱最少几枚硬币?public class CoinsGameMain { public static void main(String[] args) { int[] is = {1,3,4,5}; fun(7,is); } public static...

2019-03-22 09:08:58 296

原创 beetlsql

git代码地址:https://gitee.com/study_and_discussion_group/beetlsql.git总结:beetlsql是集成了hibernate+mybatis两种orm框架的优点设计出来的,并且beetlsql摒弃了mybatis的sql-xml配置方式,而是采用了md文件,这使得sql语句的可视性大大的提高采用自有的@Table...

2019-03-18 09:49:31 1347

原创 spring restdocs

spring restdocs最近不知道怎么了,我和一个同事疯狂了迷恋上了spring的一些工具型框架,不为人所知但是功能也很强大,今天就记录一下对springrestdocs的研究记录。rest-docs翻译一下restful风格的文档,这么说跟swagger很像喽?后来我才发现太小看swagger了,作为一个功能性框架springrestdocs的原理没什么亮点,它的功能...

2019-03-18 09:48:49 538

原创 spring batch

spring batch在大数据当道的今天,谈起”批处理“概念似乎有点“过时”了,其实不然,以前一个大牛告诉过我:”没有最好的技术只有最合适的技术“,当时菜鸟期的我懵懵懂懂,现在看来这句话确实有道理,大数据的技术在今天变得不再那么神秘,那么作为一个spring工具型框架spring batch又有什么价值呢?今日被人接到了一个需求---加息,需求本身没什么难度,关键就是对数...

2019-03-18 09:48:02 863

原创 spring webflux

spring webfluxspringwebflux?什么东东?完全没听过吧,当然了这是spring5中的新概念,官方文档上的解释是反应式编程,这种解释好文艺啊,怎么理解?作为一种新的技术网上的完整文档很少但是坑很多,经过为期两天的学习终于弄明白了一些,首先springwebflux中有3中技术:nio 烂大街的技术了,我研究过内部原理,但是觉得太过概念化,很难想象其使用价值,后...

2019-03-18 09:46:47 145

原创 JAVA线程池原理

java线程池在平时的开发中应用的很广,也会经常被人问到,今日我发现以前自己学习到的线程池的知识有些出入,所以特意的整理一下线程池构造方法中的参数我就不一一介绍了,这篇文章的主要目的是分析这些参数在运行期间的作用我们可以把线程池的结构想向成三个部分:1.核心线程池 2.缓存队列 3.非核心线程池我们想像这样一个场景,一间屋子里有成“吕”字型上下摆放的两个暖气片中间用一根管子链接,从下向...

2019-03-13 16:32:02 192

原创 mybatis一级缓存和二级缓存的优先级

大部分开发都知道mybatis存在两种缓存--一级缓存和二级缓存一级缓存作用于sqlsession默认是开启的,但在spring环境需要开启事务才能使用,开启事务后执行到第二个dao的时候不会新建sqlsession,不开启事务及时是同一个方法中连续调用两次同一个dao同样的参数都不会触发一级缓存的二级缓存作用于namespase,默认是关闭的,并且不建议开启,集群环境会有bug的哦,单机...

2019-03-04 17:17:22 1675 3

原创 线上程序诊断工具

有没有一个工具能让我看到代码运行时的报错信息呢?1.加日志,辛苦的翻日志,有时日志文件会把服务器内存占满2.加探针听云,cat…,还要向总部申请,再说测试环境怎么办?线上诊断工具有好多,用哪种呢?接下来介绍几种常见的:1.Profiler2.Btrace3.HouseMD4.Greys(主角)5.Arthas哪种好呢?没有最好的技术,只有最适合的技术一....

2019-03-01 16:33:44 785

转载 java应用死循环排查方法或查找程序消耗资源的线程方法

如果遇到线上应用cpu飙升,并出现OutOfMemery怎么办?首先线上应用的jvm配置要养成良好的习惯,增加一下配置则可以在jvm发生oom的时候自动dump日志了 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/log/dump/jvm-oom.log如果遇到线上应用特别消耗cpu资源怎么去排查?ps:首先普及...

2019-03-01 15:27:58 510

原创 SpringBoot-mongodb集群环境配置

spring: data: mongodb: host: 192.168.1.1:27017 username: test_user password: pass@123 database: tdb这是spring-mongodb的配置,当mongodb使用了集群之后我尝试着直接修改     host: 192.168.1...

2019-02-25 18:34:12 18305

原创 redis个人感悟

redis是一款内存操作的基于K-V结构的高性能数据库,支持5中数据结构string、list、hash、set、zset,平时听很多人说redis是单线程的,其实这样描述是不准确的,单线程仅仅指的是redis的网络请求模块,内部其他的模块使用了很多多线程,一切都是以性能为优先的redis使用了IO多路复用epoll,这有点不好理解,涉及到了一些异步阻塞IO的知识;redis中使用了类似Has...

2019-02-25 11:24:56 176

原创 JAVA中的那些锁的概念

java中的锁的分类有很多,大多数都是根据锁的某项功能或者特性进行分类,所以在项目中选择哪种锁是门大学问乐观锁和悲观锁乐观锁乐观的认为不会有线程同时执行,最常见的就是sql中的,update table set a=更改值 where a=更改前的值;悲观锁悲观的认为肯定会有线程同时执行,在更新数据的时候先把资源锁住,当其他线程执行时会等待前一个线程释放锁,sql中的selec...

2019-02-25 10:51:57 157

原创 Spring中的那些钩子hook--InitializingBean和PostProcessor

InitializingBeanpublic class MyAware implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { System.out.println("InitializingBean.afterProperties...

2019-02-20 17:10:57 234

原创 Spring中的那些钩子hook--Aware

Aware中文的意思是”感知“很抽象,用本人的理解来解释这一类接口的意思是,让你在你自己定义的bean中获取到spring容器中使用的一些属性比如BeanName,BeanFactory,ApplicationContext等BeanNameAwarepublic class MyAware implements BeanNameAware{ @Override publ...

2019-02-20 15:57:51 1659

原创 Spring中的那些钩子hook--ImportBeanDefinitionRegistrar

spring作为最为经典的架构之一最大的优势就是基于AOP设计和IOC容器,使得框架具有很好的可扩展性。那当我们将另一个框架与spring结合时我需要怎么做呢?这时候就需要使用spring为我们提供的各种各样的钩子(hook)了。ImportBeanDefinitionRegistrar@Configuration@Import(MyImportBeanDefinitionRegi...

2019-02-20 14:44:28 704

转载 Java技术学习整理

前几天在交流群里有些小伙伴问面试相关的试题,当时给出了一些问题,苦于打字太累就没写下去了,但觉得这是一个很不负责任的表现,于是下来整理了一下近几年的私藏,特分享给大家!此套面试题适用于Java开发的各个阶段面试,不过更偏向初级和中级开发人员!由于每一个问题的答案不唯一且都可以在网上搜索到答案,这里只给出问题,不列出参考答案,有兴趣的可以留言讨论,也欢迎大家的补充!一、基础篇1.1、Ja...

2019-02-20 10:18:35 126

原创 greys anatomy使用经验整理

  基于字节码监控运行中代码的工具,使用场景很多,监控某个java代码的某个包某个类某个方法的调用次数,响应时间,失败率等信息

2019-02-01 17:07:30 775

原创 spring源码解析记录-DefaultListableBeanFactory

 org.springframework.beans包beans包是spring框架的核心用于将配置好的beans初始化到spring的容器中其中最核心的两个类:1.org.springframework.beans.factory.support.DefaultListableBeanFactory /* * Copyright 2002-2018 the origi...

2019-02-01 17:07:07 1001 2

原创 redis不常用命令整理

exists判断key是否存在exists mykeyexpire设置key的剩余过期时间(单位:秒)expire mykey 10000pexpire设置key的剩余过期时间(单位:毫秒)pexpire mykey 10000expireat设置key的定位的过期时间(单位:秒)expireat mykey 1755292000pe...

2019-02-01 17:06:54 182

原创 二阶段提交,三阶段提交

二阶段提交二阶段提交是一种分布式事务协议,为了解决在分布式系统中数据一致性,首先需要一个协调者和多个参与者,首先协调组向参与者发起prepare请求,参与者接收到请求后会生产redo和undo日志并且响应协调者,协调者接收到所有参与者的ack响应后协调者发起commit请求,事务结束释放所有资源,当协调者接收到回滚响应后或某个参与者响应超时就会向各个参与者发起回滚,事务结束三阶段提交由...

2019-02-01 17:06:47 455

原创 使用jvisualvm的jstatd方式远程监控Java程序

使用Java自带的jvisualvm调试Java程序,可以查看CPU、内存、类及线程等信息,还可以进行Dump,无疑是一个利器  由于客户端是Windows、服务端是Linux,并且是最小安装的Linux,没有图形界面,因此需要进行远程调试一、客户端:Windows    打开%JAVA_HOME%/bin/jvisualvm.exe,在“远程”节点,右键,“添加远程主机”,如下所示:...

2019-02-01 17:06:39 196

原创 swagger中文中的坑

最近我改造了一个遗留的restful接口系统,没有文档,所以我打算加一个动态的api框架--swagger添加的过程中我发现了一个问题,就是当@Api(tags={})的值为中文时,那个接口是无法直接点击展开的,所以我去网上搜了各种词条,没一个靠谱的,后来添加一个swagger-ui-min.js的补丁就好了js补丁存放的位置这个是jar包里的js这个是兼容中文的js...

2019-02-01 17:06:29 2594

原创 springcloud整理笔记

springcloud是一套分布式系统框架与doubbo的功能类似但是springcloud中的组件更加丰富,注册发现服务中心、熔断器、负责均衡、调用连式追踪等。想要用springcloud就一定要学习springboothttps://blog.csdn.net/forezp/article/details/701488331.服务注册发现中心eureka作为服务注册发现中心与z...

2019-02-01 17:06:21 197

原创 spring事务整理

隔离级别1、默认使用数据库的(mysql:可重复读,oracle:已提交读)2、未提交读线程t1(写)和线程t2(读)同时访问一条资源数据,t1正在写入数据事务还未提交的时候t2进行读取,t2能读取到t1未提交的数据,进而产生了脏读会出现脏读、幻读、不可重复读3、已提交读线程t1(写)和线程t2(读)同时访问一条资源数据,t2会等t1的事务提交完再读取,这个等待的过程...

2019-02-01 17:06:13 88

原创 设计模式整理笔记

个人理解    工作几年了,对设计模式的理解还是只停留在课本上的知识而已,大大小小经历了3-4家公司了,每家公司的面试题都少不了提一句设计模式,然而真正的工作中却很少有人使用,主要是存在以下两种原因:1、为什么使用设计模式2、使用了设计模式别人阅读代码起来不方便先回答第一个问题,设计模式可以拆成两个词来分析设计+模式,模式是指大多数人认可的一套对问题的处理解决方案,设计顾名思义,然...

2019-02-01 17:06:04 96

转载 mybatis源码分析

mybatisSqlSession对外提供的api接口,可视作为与数据库间的对话窗口Executor生产sql语句和二级缓存命中与设置StatementHaldermybatis的核心,负责与jdbc的交互,转换param和resultSetParameterHandler(略)ResultSetHandler(略)TypeHandle(略)BoundSql...

2019-02-01 17:05:55 95

原创 排序算法理解笔记

1.插入排序public void insertArray(Integer[] in ) { int tem =0; int num =0; int upnum =0; for (int i =0; i < in .length; i++) { for (int j = i -1; j >=0; j--) { ...

2019-01-22 11:13:54 85

转载 Eureka与ZooKeeper 的比较(转)

Eureka的优势1、在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程;客户端请求会自动切换到新的Eureka节点;当宕机的服务器重新恢复后,Eureka会再次将其纳入到服务器集群管理之中;而对于它来说,所有要做的无非是同步一些新的服务注册信息而已。所以,再也不用担心有“掉队”的服务器恢复以后,会从Eureka服务器集群中剔除出去的风...

2019-01-22 11:12:37 527 1

原创 idea 远程debug

nohup /usr/local/jdk1.8.0_172/bin/java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9999 /opt/ptc/prophetell-api/prophetell-api-qa/prophetell-boot-1.0.0-SNAPSHOT.jar --spring....

2019-01-22 11:11:45 232

原创 索引算法

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html    

2019-01-22 11:10:51 112

原创 elk-安装配置使用-进阶篇logstash高级配置

logstash上篇已经说过了是用于在elk系统中是充当一个管道的作用,用来将filebeat中的数据传输到elasticsearch中。其实logstash还可以做一件事,设置elasticsearch的index、targer、field(索引、目标、字段),你可以做一个简单的理解索引是数据库,目标是表,字段就是字段咯,那么设置这些有什么用呢?1.搜索日志的时候可以用了做查询条;2.可...

2019-01-22 11:09:46 691

原创 elk-安装配置使用

简洁elk=elasticsearch+logstash+kibana,这个概念不用多说官网上和很多帖子上都是这样介绍的,但是很少有帖子上会提醒你,如果这3种插件的版本号如果不一致有可能是用不了的我最开始使用的是6.3.0,然后由于kibana的配置有点乱,又重新安装了一次没注意版本号已经变成了6.3.1,启动后连接elasticsearch后返回403在大多数的企业服务中我们...

2019-01-22 11:09:08 288

原创 GC垃圾回收器

引用计数算法:优点算法简单,缺点多个类直接相互引用后会出现“永生”可达性算法:GC root 可达性算法CMS垃圾回收器:(Concurrent Mark Sweep Collecter)将堆内存分成了年轻代,老年代,持久代。年轻代以8:1:1比例分成了eden和两个survivor,当年轻代的内存满了,使用复制算法触发垃圾回收器,将存活的数据复制到另一个survivor中,survivo...

2019-01-22 11:08:23 208

原创 java内存溢出解析

Java堆内存溢出java.lang.OutOfMemoryError: Java heap spaceJVM Args:-Xms(最小堆内存) -Xmx(最大堆内存)虚拟机栈和本地方法栈内存溢出java.lang.StackOverflowErrorJVM Args:  -Xss栈内存创建线程导致内存溢出java.lang.OutOfMemoryError:unabl...

2019-01-22 11:07:46 118

原创 jvm结构分析

堆创建的对象都放在这里方法区class加载的时候类的信息都放到这里,利用java反射获取的信息就是来自这里虚拟机栈每个线程都会分到一定的栈内存,方法中的临时变量都在这里本地方法栈给native方法单独使用的一块内存区域程序计数器用于记录每个线程中执行的代码行数,当多线程时栈侦在时间片中来回切换的时候,记录每个线程中执行的代码行数...

2019-01-22 11:06:45 72

swagger中文bug的js补丁

最近我改造了一个遗留的restful接口系统,没有文档,所以我打算加一个动态的api框架--swagger 添加的过程中我发现了一个问题,就是当@Api(tags={})的值为中文时,那个接口是无法直接点击展开的,所以我去网上搜了各种词条,没一个靠谱的,后来添加一个swagger-ui-min.js的补丁就好了 路径:src/main/resources/META-INF/resources/webjars/springfox-swagger-ui/swagger-ui.min.js

2018-12-06

空空如也

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

TA关注的人

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