- 博客(9)
- 收藏
- 关注
原创 系统架构师练习论文4:论可靠性架构设计
软件可靠性是指:在规定的条件下,在规定的时间内,软件不引起系统失效的概率;在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。
2023-06-05 14:57:23
513
原创 系统架构师练习论文3:论非功能性需求、架构评估
非功能性需求指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。其与系统的总体特性相关,从质量属性和条件约束两个方面同时对架构设计产生影响。1. 操作性需求指定了系统完成任务所需的操作环境及其可能的改变。2. 性能需求核心是性能问题,如响应时间、容量和可靠性。3. 安全需求防止信息系统崩溃和数据丢失的能力。包括访问控制需求、加密与验证需求、病毒控制需求。4. 文化和政治需求如多语种需求、用户定制需求、未申明的术语、法律需求。
2023-04-13 16:56:30
534
原创 javax.crypto.Cipher线程安全问题
项目场景:某个项目中,需要对参数进行sign校验,其中用到了AES加密算法,于是使用了javax.crypto.Cipher进行加解密的运算。问题描述在压测中发现,偶尔会出现校验失败的情况。而生成sign的工具与被测试程序的算法是完全一致的,理论上不应该出现校验不通过,所以需要排查问题。原因分析:对被测试程序与测试工具分别进行了多线程测试,发现测试工具对同样的参数,每次生成的sign是一致的,而被测试程序偶尔会生成不同的sign,于是怀疑是并发导致的问题。被测试程序与测试工具唯一的
2022-04-18 11:02:34
3434
原创 SecureRandom.getInstanceStrong引起的线程阻塞
项目场景:某个项目中,sonar扫描到使用Random随机函数不安全, 推荐使用SecureRandom替换,于是就换成了使用SecureRandom.getInstanceStrong()获取SecureRandom并调用nextInt()。悲剧开始了...问题描述在生产环境(linux)产生较长时间的阻塞,造成了nginx返回大量499,一度以为是tomcat不接收消息或是nginx转发问题,但开发环境(windows10)并未重现。 原因分析:通过jstack发现,有599个线
2022-03-30 15:45:00
1861
原创 logback日志导致的性能问题
菜鸟第一次写博客,只为自己平时遇到的问题做个记录,如有不对之处请指正!项目场景:现场发现有个程序执行一段时间之后会出现响应超时的问题,日志看似乎是程序出现了莫名的停顿。问题描述折腾了很久之后决定看看堆栈信息。通过在出现问题时执行jstack得到了堆栈信息:可以看到有1005个线程在等待0x00000006e7e680e0对象,只有一个线程拥有该对象。原因分析:通过阅读logback框架的源码发现,这里的写日志操作是加锁的,所以造成了性能瓶颈。解决方案:修改logbcak配置,使用框
2022-03-29 15:15:01
3468
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人