摘要: 第一章 整洁代码 1.编程要做什么 代码呈现了需求的细节,在某些层面上,这些细节无法被忽略或抽象,必须明确。而将需求明确到机器可以执行的细节程度,就是编程要做的事。 2.项目过程中经常遇到这样的问题: (1)初期进度很快,后来进度特别迟缓,每次修改代码就要修改其他几处代码 (2)团队合作时代码容易混 阅读全文
posted @ 2018-09-29 23:28 沧海一滴 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 错误处理是十分必要的,但是如果对错误处理使用不当则会让代码变得十分臃肿,让阅读者看不清代码的逻辑,更严重的是,这也会让程序变得十分脆弱。本文中将列出一些使用错误处理的技巧,帮助你写出既简洁又健壮的代码。 使用Exception而不是返回码 返回码是一个历史遗留问题,在以前的没有Exception的语 阅读全文
posted @ 2018-09-29 23:27 沧海一滴 阅读(279) 评论(0) 推荐(0) 编辑
摘要: Java的随机数实现有很多坑,记录一下这次使用jdk1.8里新增的加强版随机数实现SecureRandom.getInstanceStrong() 遇到的问题。 之前在维护ali-tomcat的时候曾发现过jvm随机数算法选用不当导致tomcat的SessionID生成非常慢的情况,可以参考JVM上 阅读全文
posted @ 2018-09-29 18:06 沧海一滴 阅读(3484) 评论(0) 推荐(1) 编辑
摘要: 压力测试场景,前端nginx反向代理到4个tomcat实例,在其中的一个实例上产生了大量的countDownConnection Incorrect connection count警告 WARNING [http-nio-8080-exec-48] org.apache.tomcat.util.n 阅读全文
posted @ 2018-09-29 17:08 沧海一滴 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 1) nginx禁止对写操作timeout时retry 以前遇到的一个case,业务那边说一笔请求从nginx端发送给后端tomcat了2次(落在两个不同的tomcat节点上)。后来发现是nginx发给后端节点timeout,然后做了重试,发给了另一个节点。默认情况下nginx对后端error和 t 阅读全文
posted @ 2018-09-29 17:07 沧海一滴 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 如果你的spring-boot应用里tomcat线程耗cpu较高,并主要耗在做读取jar的操作上(堆栈类似下面),可能跟我们遇到同样的问题。 CRC32.update(byte[], int, int) line: 76 JarInputStream(ZipInputStream).read(byt 阅读全文
posted @ 2018-09-29 16:53 沧海一滴 阅读(683) 评论(0) 推荐(0) 编辑
摘要: Tip: 打开security的debug log通过设置参数 -Djava.security.debug=all可以控制台看到所有security的log 在JAVA中的配置发生器 在JAVA中可以通过两种方式去设置指定的随机数发生器 1.-Djava.security.egd=file:/dev 阅读全文
posted @ 2018-09-29 14:59 沧海一滴 阅读(3593) 评论(0) 推荐(1) 编辑