- 博客(22)
- 收藏
- 关注
原创 接口测试用例规范
通常,设计接口测试用例需要考虑以下几个方面:(1)是否满足前提条件有些接口需要满足前提,才可成功获取数据。常见的,需要登录Token逆向用例:针对是否满足前置条件(假设为n个条件),设计0~n条用例(2)是否携带默认值参数正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其他不填写,设计1条用例(3)业务规则、功能需求这里根据时间情况,结合...
2020-04-14 13:48:26 615
原创 Spring 理解
一.SpringBean的生命周期图1 bean实例化过程接下来对照上图,一步一步对 singleton 类型 bean 的生命周期进行解析: 实例化 bean 对象,类似于 new XXObject() 将配置文件中配置的属性填充到刚刚创建的 bean 对象中。 检查 bean 对象是否实现了 Aware 一类的接口,如果实现了则把相应的依赖设置到 bean...
2020-03-23 15:15:14 124
原创 Mybatis和Spring IOC框架设计对比
相同点:1.Spring 里面抽象出了BeanFactory容器用来管理Bean,开始解析各个配置文件,将bean配置信息放在BeanDefinition中2.Mybatis抽象出一个sqlsessionFactory,用来管理sqlSession,入口是用XMLConfigBuilder去解析配置文件,将解析完成的结果保存在一个Configuration里面,一个映射文件的一段sql对应...
2020-03-23 14:21:23 158
原创 JVM的一些案例
谈谈自己的思路:业务稳定运行之前,新上线之后,观察GC的频率和变化情况。业务稳定之后,观察多久一次YGC,每次YGC之后会剩余多少存活对象,这些对象经过多久被转移到老年代,老年代多久发生一次FullGC.根据这个实际情况,合理调整Y和Old的比值。。调整E和S的比值:默认4:1:1.。调大GC分代转移年龄...
2020-03-22 16:42:52 155
原创 JVM调优
调优的目标:合理分配各个内存空间的占比。让对象尽可能停留在年轻代,让不被引用的在年轻代被回收。而不被放到老年代,尽量减少fullGC的次数引申:(1)为什么老年代回收慢呢:1.采用标记整理算法 2.老年代的回收效率不高(由于放在这儿的大多是被GC root引用) (2)什么时候触发youngGC呢? eden区域没可用空间了 ...
2020-03-22 15:42:50 95
原创 MySQL语句优化
1.主要想办法如何使用到索引:1.orderBy排序,应该尽量走索引,而不是filesort2.join问题(1)join,小表驱动大表(1.走索引,起决定因素的是驱动表行数N, 2.被驱动表不走索引join_buffer_size可以放更多,),被驱动表走索引;(2)使用BKA算法,为了回表的时候顺序读(3)BNLJ会导致bufferpool里面的LRU数据中冷数据区域被这个...
2020-03-21 21:48:45 128
原创 JVM面试
关于调优:1.StringTable调优:(1)增加StringTablesize,即bucket得大小,减小hash冲突(2)使用intern将字符串放入串池,让不同变量指向相同得对象,减小内存占用...
2020-03-21 21:48:24 74
原创 Mybatis理解
用到的代理模式:1.mapperProxy去代理dao里面定义的类2.连接池里面:1.connectionState(包含两个pooledConnection集合)包含 2.pooledConnection(创建他的同时,是创建了一个代理,代理拦截了connection的close方法,让其将用完的连接从活跃连接集合移除,并放入空闲连接,此时同时唤醒等待连接的线程继续自旋《被阻塞是在获取不到...
2020-03-17 22:11:07 64
原创 mysql的问题以及解决办法
描述:一个很长的sql,在sql语句里面做了过滤条件,数据量一大,查询很慢,且无法用到索引..解决办法:分拆成三次查询,每次查询用到了sql,再将三次查询结果去重复,速度明显提升...
2019-11-12 16:52:34 185
原创 JVM收获
1.关于GC:(1)线上OOM事故(2)FullGC导致的Stop the world带来的暂停,从而导致的代码在判断时间出现错误,结合语音回调超时时间2.关于字节码指令:(1)finally三个分支的概念,,即finally要复制三份分别拷贝到 try,catch,以及另外自动生成一块catch不能匹配的异常中块中。不要在finally里面写return,这会导致字节码会抛...
2019-11-03 16:01:15 88
原创 Jvm程序计数器
1.作用:(1)计数指的是存储的是下一条jvm指令的执行内存地址,如下图所示,左侧的数字序号.2.特点:(1)线程私有的(2)不会存在内存溢出(对比虚拟机栈和堆,方法去溢出)3.是什么?有什么组成?有什么作用?存在的注意问题,线程安全和垃圾回收...
2019-10-24 12:43:03 359
原创 关于职业发展的一些体会
1.读到一篇文章,发现的感悟: 文章的总结: 寒冬中,正在涌动着向上的力量。经济集中化驱动核心资产的崛起,消费需求从物质向精神升级,一代人的教育水平大幅提升,科技产业的国产化加速替代……一则还不错的评论: 韩国和中国很像,平时也特别关注韩国社会的新闻;细细研究公司业绩也会发现,越是大型行业龙头,平均利润增速越快。于是当各行各业都被龙头盘踞的时候,蛋糕虽然不怎么增长了...
2019-10-24 10:18:06 240
原创 跟踪一次公司时序数据库的自研过程
一.问题的提出: 公司当前主要用开源时序数据库openTsdb来存储从各个服务器环境采集的服务指标,在运行的过程中发现了各种各样的问题,问题可归纳为以下几类:(1)重量,依赖于hbase,以及hadoop那一套.(2)多次重复发生 oom,需要不断的重启,,这在自己公司本地还好,,安装给客户之后会发生大量的问题.(3)写IO的问题,很快把IO打满,但速度达不到几十M/S...
2019-10-21 15:21:36 161
原创 记一次线上批量报警事故
现象: 将消息系统改为异步架构之后,当晚上线,在上线的过程中,由于另一个服务cmdbProxySerivce未启动,导致指标收集不上来,然后短时间内产生大量的空值报警,发送到邮件的速度很缓慢,从当晚上线19:30一直持续发送到第二天上午排查问题的时候. 解决办法:问题定位,先去看生产者线程日志,发现产生正常那么多日志,查看hbase(与消息队列消息保持一致)发现存储了未消费...
2019-10-18 17:57:38 223
原创 记录排查一次公司OOM的过程
公司后台一段时间老是挂掉,根据日志,发现是OOM的问题.从大的方面来讲,主要采取了两个步骤:1.让GC日志跑起来,观察到马上进行FULLGC之前,执行命令进行DUMP命令:jmap -dump:format=b,file=./alertdDump 430880..430880 是 alertd的pid..最后会生成一份文件,,该文件的大小就是该后台设置的内存最大的大小.2.将本分生成的...
2019-10-10 14:42:47 148
原创 AKKA响应式编程
面向对象能够很好地对要解决的问题领域进行建模,但是随着摩尔定律失效,计算机的发展之道趋向于多核 CPU 与分布式的方向而面向对象的同步阻塞调用,以及由此带来的并发与线程安全问题,使得其在新的编程时代相形见绌。而 Actor 编程模型很好地解决这些问题。响应式编程可以轻松实现并发、异步、分布式编程...
2019-08-21 19:34:14 324
原创 关于公司项目的一点思考
在看Netty的线程eventLoop的时候,联想到公司在执行定时task的时候使用的timer,而不是ScheduledExecutorService,二者之间的对比,优劣点。。那么为什么Netty甚至抛弃了ScheduledExecutorService,而用的是eventLoop,解决了一个什么问题呢?留个坑,后面来填...
2019-08-14 08:27:32 134
原创 第一篇博客
记录一下,这是第一次下定决心,将所看的技术和非技术书籍,关于个人的感受和理解,记录下来。 人对外部世界的感受和认知是随着年龄和知识的增长,不断的发生改变的。但由于没有记录日志和博客的习惯,其实不论是对于技术和其他,我只知道未来和当前自己的状态,却忘却了以前对某项技术和世界的认知。我喜欢读历史,但以前却没想过记录一下自己个人的成长史。所以,希望能够通过写博客,偶尔来看看过往,对...
2019-08-10 07:33:48 82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人