`
san_yun
  • 浏览: 2653062 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

保持系统健壮的一些总结

    博客分类:
  • java
 
阅读更多
1. 不要忘记判断对象是否为null,越早开始越好

2. 严格控制数据的输入,入口要做好防重复提交和长度限制

3. 做好异常错误的日志记录

4. 如果不是立即用到的数据可以异步处理

5. 依赖外部系统的话,要做好重试机制
在一个抓取外部视频图片的功能中,有时候会遇到504错误:
java.io.IOException: Server returned HTTP response code: 504 for URL: http://g2.ykimg.com/1100641F464CD7151DA30003DFD212605DFE4E-D875-4084-8974-172F82D9974D
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
        at java.net.URL.openStream(URL.java:1010)
        at com.you.common.file.base.BaseImageService.scaleImgFromHttp(BaseImageService.java:122)
        at com.you.atlas.biz.video.service.impl.VideoServiceImpl$1.run(VideoServiceImpl.java:58)
        at java.lang.Thread.run(Thread.java:662)
~                                              
依赖网络等资源都是不可靠的,可以尝试重试机制。

6.保持数据的一致性
数据的不可控, 比如message表现在有1000多条的重复数据。

使用atomic系列:
  AtomicInteger
  AtomicBoolean
  AtomicLong

数据库层面:
  使用唯一性约束。 两个字段构成业务上的唯一性要注意,例如message表中status(1,9) photo_id

大数据量计算
精度,使用money.

我们应每次都给成功的POST请求做重定向
这就是web开发的最佳实践, 来自:http://djangobook.py3k.cn/2.0/chapter07/

对外提供服务要限制调用频率
   一次线上网站挂掉的经历。
提供给移动客户端API的安全限制
   一次网站被收集恶意注册的过程。
分享到:
评论

相关推荐

    论文研究-嵌入式Linux应用程序健壮性研究 .pdf

    2. 应用程序健壮性的定义和重要性:健壮性,也即鲁棒性,是指在面对异常情况和潜在危险时,系统能够保持稳定运行的能力。对于嵌入式Linux应用程序而言,健壮性直接关联到整个嵌入式系统的稳定性和可靠性。尤其在工业...

    互联网架构研发路上的一些总结与思考.docx

    【互联网架构研发路上的一些总结与思考】 在互联网架构的研发过程中,技术是不可或缺的基础,它不仅是开发者立足之本,也是解决问题的关键工具。技术层面的关注点主要包括基础能力、实战经验、项目管理和稳定性四个...

    Qt学生信息管理系统

    10. **版本控制**:使用Git等版本控制系统,保持代码版本的管理和团队协作。 stu_infor_system可能是项目源代码文件,包含了实现学生信息管理系统的具体代码。通过查看这些文件,可以深入理解系统的实现细节,学习...

    I2C串行EEPROM应用系统的健壮性设计

    总结来说,设计一个健壮的I2C串行EEPROM应用系统,需要关注以下几个方面:防意外写措施、数据完整性保护、强化总线信号质量和实施有效的错误检测与恢复机制。这些措施共同作用,能够确保嵌入式系统在各种条件下都能...

    软考系统架构师案例分析知识点汇总

    ### 软考系统架构师案例分析知识点汇总 #### 一、软件架构风格概述 **软件架构风格**是描述某一类...这不仅有助于设计出更加健壮、可靠且高效的系统架构,还能在面对具体案例分析时,更加从容不迫地应对各种挑战。

    软件设计案例图书管理系统测试及部署 (2).docx

    结果表明,系统在一定并发量下能保持正常运行,但当并发用户过多时,系统响应会变慢。 2. 可靠性和健壮性测试 测试系统在异常情况下的表现,如管理员输入错误ID、系统突然断电、新书入库操作中断等,以评估系统的...

    一种分布式软件发布部署系统.pdf

    高密度的测控任务要求软件系统具备快速响应能力,同时必须确保软件的正确性、健壮性和安全性。分布式软件发布部署系统的研发,旨在通过统一的软件发布和部署机制,提升软件部署效率,简化软件管理过程,缩短任务准备...

    多年管理系统开发经验总结~代码解决方案.docx

    本文将基于多年的经验积累,总结一些常见的问题,并提出相应的解决方案。 #### 关于“补丁”式代码 在项目开发过程中,有时会因为需求的变化或者功能的增加,导致代码不断地进行“打补丁”式的修改。这种做法会...

    系统架构设计-如何设计架构

    然而,随着系统复杂度的增加,适时地细化和优化架构层次是必要的,以保持系统的健壮性和可维护性。 四、总结 系统架构设计是一项复杂且动态的工作,它要求架构师不仅要掌握扎实的技术知识,还要具备敏锐的业务洞察...

    C++信息管理系统

    总结来说,"C++信息管理系统"项目综合运用了C++的面向对象特性,通过类和对象实现数据管理和操作,结合封装、异常处理、文件操作和设计模式等技术,构建了一个简洁而实用的信息管理平台。通过深入学习和实践此类项目...

    系统架构优化最佳实践.docx

    结构演变则关注于系统的持续改进和适应性,包括技术选型、微服务架构的引入、容器化部署、服务网格的使用等,这些都是为了确保系统能够随着业务发展而灵活扩展,同时保持高可用性和可维护性。 总结来说,系统架构...

    模拟技术中的更具系统健壮性的ZigBee的研究开发

    ZigBee是一种基于IEEE 802.15.4标准的无线通信技术,它的命名源自蜜蜂的舞蹈行为...通过深入研究和开发,ZigBee技术在模拟技术中的系统健壮性将进一步提升,为物联网和自动化领域带来更高效、稳定的无线通信解决方案。

    简单的超市仓储管理系统

    仓储管理系统是商业运营中不可或缺的一部分,尤其在超市环境中,有效管理库存对于保持良好的运营效率至关重要。本系统采用C语言编写,利用链表数据结构实现,旨在提供一个简单易用的商品管理和出入库解决方案。下面...

    操作系统实验报告 死锁

    通过对银行家算法的实验和分析,我们可以深入理解死锁的成因和解决方案,这对于理解和设计更加健壮的操作系统至关重要。同时,这也为我们提供了实际操作中的经验,以便在未来的设计和开发中避免死锁问题,确保系统的...

    大班科学教案:我健壮的伴侣.docx

    4. **总结与分享**:活动结束后,孩子们互相分享他们的作品,教师总结本次活动,强调骨骼的重要性,鼓励孩子们在生活中注意保护骨骼,进行适当的体育锻炼,以保持骨骼健康。 通过这个科学教案,孩子们不仅可以学习...

    酒店管理系统论文

    - **健壮性**:通过异常处理机制和错误检测机制,提高了系统的健壮性,即使在出现意外情况下也能保持正常运行。 #### 七、总结 通过对基于Java的酒店管理系统的详细介绍,可以看出该系统不仅能够满足酒店日常运营...

    F15飞控系统容错

    文档描述了IFPC的架构以及相关的飞机系统修改,以创建一个健壮、容错和可维护的飞行/推进控制系统。 文档中提到的IFPC实现过程中,必须去除原有的飞行控制系统、油门联动装置和刹车控制装置。这说明了在集成新型...

Global site tag (gtag.js) - Google Analytics