![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
个人笔记
lovelyesz
没有我干不黄的公司
展开
-
k8s-api踩过的坑
Namespace mismatch. Item namespace:statement. Operation namespace:apps client.inNamespace(namespace).batch().jobs().create(job);添加inNamespace原创 2020-01-09 14:26:54 · 886 阅读 · 0 评论 -
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 · 18419 阅读 · 0 评论 -
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 · 521 阅读 · 0 评论 -
Spring中的那些钩子hook--ImportBeanDefinitionRegistrar
spring作为最为经典的架构之一最大的优势就是基于AOP设计和IOC容器,使得框架具有很好的可扩展性。那当我们将另一个框架与spring结合时我需要怎么做呢?这时候就需要使用spring为我们提供的各种各样的钩子(hook)了。ImportBeanDefinitionRegistrar@Configuration@Import(MyImportBeanDefinitionRegi...原创 2019-02-20 14:44:28 · 715 阅读 · 0 评论 -
Spring中的那些钩子hook--Aware
Aware中文的意思是”感知“很抽象,用本人的理解来解释这一类接口的意思是,让你在你自己定义的bean中获取到spring容器中使用的一些属性比如BeanName,BeanFactory,ApplicationContext等BeanNameAwarepublic class MyAware implements BeanNameAware{ @Override publ...原创 2019-02-20 15:57:51 · 1668 阅读 · 0 评论 -
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 · 242 阅读 · 0 评论 -
mybatis一级缓存和二级缓存的优先级
大部分开发都知道mybatis存在两种缓存--一级缓存和二级缓存一级缓存作用于sqlsession默认是开启的,但在spring环境需要开启事务才能使用,开启事务后执行到第二个dao的时候不会新建sqlsession,不开启事务及时是同一个方法中连续调用两次同一个dao同样的参数都不会触发一级缓存的二级缓存作用于namespase,默认是关闭的,并且不建议开启,集群环境会有bug的哦,单机...原创 2019-03-04 17:17:22 · 1693 阅读 · 3 评论 -
spring webflux
spring webfluxspringwebflux?什么东东?完全没听过吧,当然了这是spring5中的新概念,官方文档上的解释是反应式编程,这种解释好文艺啊,怎么理解?作为一种新的技术网上的完整文档很少但是坑很多,经过为期两天的学习终于弄明白了一些,首先springwebflux中有3中技术:nio 烂大街的技术了,我研究过内部原理,但是觉得太过概念化,很难想象其使用价值,后...原创 2019-03-18 09:46:47 · 149 阅读 · 0 评论 -
spring batch
spring batch在大数据当道的今天,谈起”批处理“概念似乎有点“过时”了,其实不然,以前一个大牛告诉过我:”没有最好的技术只有最合适的技术“,当时菜鸟期的我懵懵懂懂,现在看来这句话确实有道理,大数据的技术在今天变得不再那么神秘,那么作为一个spring工具型框架spring batch又有什么价值呢?今日被人接到了一个需求---加息,需求本身没什么难度,关键就是对数...原创 2019-03-18 09:48:02 · 968 阅读 · 0 评论 -
spring restdocs
spring restdocs最近不知道怎么了,我和一个同事疯狂了迷恋上了spring的一些工具型框架,不为人所知但是功能也很强大,今天就记录一下对springrestdocs的研究记录。rest-docs翻译一下restful风格的文档,这么说跟swagger很像喽?后来我才发现太小看swagger了,作为一个功能性框架springrestdocs的原理没什么亮点,它的功能...原创 2019-03-18 09:48:49 · 547 阅读 · 0 评论 -
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 · 1372 阅读 · 0 评论 -
JAVA线程池原理
java线程池在平时的开发中应用的很广,也会经常被人问到,今日我发现以前自己学习到的线程池的知识有些出入,所以特意的整理一下线程池构造方法中的参数我就不一一介绍了,这篇文章的主要目的是分析这些参数在运行期间的作用我们可以把线程池的结构想向成三个部分:1.核心线程池 2.缓存队列 3.非核心线程池我们想像这样一个场景,一间屋子里有成“吕”字型上下摆放的两个暖气片中间用一根管子链接,从下向...原创 2019-03-13 16:32:02 · 196 阅读 · 0 评论 -
动态规划法
最近遇到了一道挺有意思的算法题:四种硬币 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 · 306 阅读 · 0 评论 -
OKHTTP自动次数重试方案与连接池
连接池最近在工作中开始使用okhttp,详细的研究了一下源码,发现了关于连接池的部分与我之前的理解有些不符new OkHttpClient().newBuilder().connectionPool(new ConnectionPool(100,1,TimeUnit.MILLISECONDS))使用过okhttp的人都知道在构建client的时候就声明了连接池new Conne...原创 2019-06-20 18:28:34 · 6331 阅读 · 0 评论 -
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 · 1302 阅读 · 0 评论 -
Arthas线上代码诊断神器-定位问题
什么是ArthasArthas是阿里开源的一款优秀的代码诊断工具生产环境我们经常会遇到这样那样的bug,由于生产环境产生bug的不可复制性,开发人员经常对其束手无策,代码诊断工具应运而生。Arthas是阿里最新的一款诊断工具上,在此之前阿里分别开源了HouseMD、Greys,Arthas继承了上两代的优点,功能更加强大,交互更加方便。Arthas能做什么快速定位问题下面分...原创 2019-07-19 12:54:11 · 858 阅读 · 0 评论 -
redis个人感悟
redis是一款内存操作的基于K-V结构的高性能数据库,支持5中数据结构string、list、hash、set、zset,平时听很多人说redis是单线程的,其实这样描述是不准确的,单线程仅仅指的是redis的网络请求模块,内部其他的模块使用了很多多线程,一切都是以性能为优先的redis使用了IO多路复用epoll,这有点不好理解,涉及到了一些异步阻塞IO的知识;redis中使用了类似Has...原创 2019-02-25 11:24:56 · 177 阅读 · 0 评论 -
JAVA中的那些锁的概念
java中的锁的分类有很多,大多数都是根据锁的某项功能或者特性进行分类,所以在项目中选择哪种锁是门大学问乐观锁和悲观锁乐观锁乐观的认为不会有线程同时执行,最常见的就是sql中的,update table set a=更改值 where a=更改前的值;悲观锁悲观的认为肯定会有线程同时执行,在更新数据的时候先把资源锁住,当其他线程执行时会等待前一个线程释放锁,sql中的selec...原创 2019-02-25 10:51:57 · 161 阅读 · 0 评论 -
使用jvisualvm的jstatd方式远程监控Java程序
使用Java自带的jvisualvm调试Java程序,可以查看CPU、内存、类及线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows、服务端是Linux,并且是最小安装的Linux,没有图形界面,因此需要进行远程调试一、客户端:Windows 打开%JAVA_HOME%/bin/jvisualvm.exe,在“远程”节点,右键,“添加远程主机”,如下所示:...原创 2019-02-01 17:06:39 · 201 阅读 · 0 评论 -
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 · 120 阅读 · 0 评论 -
GC垃圾回收器
引用计数算法:优点算法简单,缺点多个类直接相互引用后会出现“永生”可达性算法:GC root 可达性算法CMS垃圾回收器:(Concurrent Mark Sweep Collecter)将堆内存分成了年轻代,老年代,持久代。年轻代以8:1:1比例分成了eden和两个survivor,当年轻代的内存满了,使用复制算法触发垃圾回收器,将存活的数据复制到另一个survivor中,survivo...原创 2019-01-22 11:08:23 · 211 阅读 · 0 评论 -
elk-安装配置使用
简洁elk=elasticsearch+logstash+kibana,这个概念不用多说官网上和很多帖子上都是这样介绍的,但是很少有帖子上会提醒你,如果这3种插件的版本号如果不一致有可能是用不了的我最开始使用的是6.3.0,然后由于kibana的配置有点乱,又重新安装了一次没注意版本号已经变成了6.3.1,启动后连接elasticsearch后返回403在大多数的企业服务中我们...原创 2019-01-22 11:09:08 · 291 阅读 · 0 评论 -
elk-安装配置使用-进阶篇logstash高级配置
logstash上篇已经说过了是用于在elk系统中是充当一个管道的作用,用来将filebeat中的数据传输到elasticsearch中。其实logstash还可以做一件事,设置elasticsearch的index、targer、field(索引、目标、字段),你可以做一个简单的理解索引是数据库,目标是表,字段就是字段咯,那么设置这些有什么用呢?1.搜索日志的时候可以用了做查询条;2.可...原创 2019-01-22 11:09:46 · 699 阅读 · 0 评论 -
索引算法
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html原创 2019-01-22 11:10:51 · 112 阅读 · 0 评论 -
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 · 234 阅读 · 0 评论 -
Eureka与ZooKeeper 的比较(转)
Eureka的优势1、在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程;客户端请求会自动切换到新的Eureka节点;当宕机的服务器重新恢复后,Eureka会再次将其纳入到服务器集群管理之中;而对于它来说,所有要做的无非是同步一些新的服务注册信息而已。所以,再也不用担心有“掉队”的服务器恢复以后,会从Eureka服务器集群中剔除出去的风...转载 2019-01-22 11:12:37 · 527 阅读 · 1 评论 -
排序算法理解笔记
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 · 86 阅读 · 0 评论 -
mybatis源码分析
mybatisSqlSession对外提供的api接口,可视作为与数据库间的对话窗口Executor生产sql语句和二级缓存命中与设置StatementHaldermybatis的核心,负责与jdbc的交互,转换param和resultSetParameterHandler(略)ResultSetHandler(略)TypeHandle(略)BoundSql...转载 2019-02-01 17:05:55 · 96 阅读 · 0 评论 -
设计模式整理笔记
个人理解 工作几年了,对设计模式的理解还是只停留在课本上的知识而已,大大小小经历了3-4家公司了,每家公司的面试题都少不了提一句设计模式,然而真正的工作中却很少有人使用,主要是存在以下两种原因:1、为什么使用设计模式2、使用了设计模式别人阅读代码起来不方便先回答第一个问题,设计模式可以拆成两个词来分析设计+模式,模式是指大多数人认可的一套对问题的处理解决方案,设计顾名思义,然...原创 2019-02-01 17:06:04 · 98 阅读 · 0 评论 -
spring事务整理
隔离级别1、默认使用数据库的(mysql:可重复读,oracle:已提交读)2、未提交读线程t1(写)和线程t2(读)同时访问一条资源数据,t1正在写入数据事务还未提交的时候t2进行读取,t2能读取到t1未提交的数据,进而产生了脏读会出现脏读、幻读、不可重复读3、已提交读线程t1(写)和线程t2(读)同时访问一条资源数据,t2会等t1的事务提交完再读取,这个等待的过程...原创 2019-02-01 17:06:13 · 101 阅读 · 0 评论 -
springcloud整理笔记
springcloud是一套分布式系统框架与doubbo的功能类似但是springcloud中的组件更加丰富,注册发现服务中心、熔断器、负责均衡、调用连式追踪等。想要用springcloud就一定要学习springboothttps://blog.csdn.net/forezp/article/details/701488331.服务注册发现中心eureka作为服务注册发现中心与z...原创 2019-02-01 17:06:21 · 198 阅读 · 0 评论 -
swagger中文中的坑
最近我改造了一个遗留的restful接口系统,没有文档,所以我打算加一个动态的api框架--swagger添加的过程中我发现了一个问题,就是当@Api(tags={})的值为中文时,那个接口是无法直接点击展开的,所以我去网上搜了各种词条,没一个靠谱的,后来添加一个swagger-ui-min.js的补丁就好了js补丁存放的位置这个是jar包里的js这个是兼容中文的js...原创 2019-02-01 17:06:29 · 2600 阅读 · 0 评论 -
redis不常用命令整理
exists判断key是否存在exists mykeyexpire设置key的剩余过期时间(单位:秒)expire mykey 10000pexpire设置key的剩余过期时间(单位:毫秒)pexpire mykey 10000expireat设置key的定位的过期时间(单位:秒)expireat mykey 1755292000pe...原创 2019-02-01 17:06:54 · 186 阅读 · 0 评论 -
二阶段提交,三阶段提交
二阶段提交二阶段提交是一种分布式事务协议,为了解决在分布式系统中数据一致性,首先需要一个协调者和多个参与者,首先协调组向参与者发起prepare请求,参与者接收到请求后会生产redo和undo日志并且响应协调者,协调者接收到所有参与者的ack响应后协调者发起commit请求,事务结束释放所有资源,当协调者接收到回滚响应后或某个参与者响应超时就会向各个参与者发起回滚,事务结束三阶段提交由...原创 2019-02-01 17:06:47 · 462 阅读 · 0 评论 -
jvm结构分析
堆创建的对象都放在这里方法区class加载的时候类的信息都放到这里,利用java反射获取的信息就是来自这里虚拟机栈每个线程都会分到一定的栈内存,方法中的临时变量都在这里本地方法栈给native方法单独使用的一块内存区域程序计数器用于记录每个线程中执行的代码行数,当多线程时栈侦在时间片中来回切换的时候,记录每个线程中执行的代码行数...原创 2019-01-22 11:06:45 · 73 阅读 · 0 评论