Category: Java Architecture

[汇总]Security 0

[汇总]Security

秒懂上线必不可少的安全测试! 本文旨在站在测试开发工程师的角度将功能安全测试归入日常测试中,简单剖析了功能安全测试与功能测试的异同点以及SDL中各环节的职责所在,同时分析了针对不同的安全场景如何进行功能安全测试用例的设计。通过本文,读者可以对SDL有一个简单明了的理解,针对SDL中各个环节,产研测的职责和关注点是什么都能有一个明确的概念。

[转]流行20年的架构设计原则SOLID可能已经不适合微服务了 0

[转]流行20年的架构设计原则SOLID可能已经不适合微服务了

2000 年,Robert C. Martin 给架构师们总结出了一套原则来指导大家进行软件设计,Michael Feathers 随后按首字母将其总结成 SOLID 原则。从那时起,面向对象的 SOLID 设计原则就不断出现在相关书籍当中,并成为业界广为人知的指导方针:单一职责原则、开 / 闭原则、里氏替换原则、接口隔离原则、依赖倒置原则。 Single responsibility principle Open/closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle 在过去的这二十年里,软件开发领域一直在快速演进,特别是近几年云原生和微服务的发展,在微服务体系下,“SOLID 原则是否适合现代软件工程”引起了广泛讨论。

[汇总] Spring 项目经验 0

[汇总] Spring 项目经验

1. Tech Spring Boot 项目打包 + Shell 脚本部署详细总结 Spring Boot 实现定时任务的动态增删启停 Spring Boot 实现万能文件在线预览 Spring-Retry重试实现原理 那些让你爱不释手的 Spring 代码技巧 @Conditional @Import @ConfigurationProperties 我在 Spring 的 BeanUtils 踩到的那些坑,千万不要犯! Spring Boot巧用 @Async 提升API接口并发能力!NB! 为什么不建议直接使用 Async 注解? @Async默认异步配置使用的是SimpleAsyncTaskExecutor,该线程池默认来一个任务创建一个线程,若系统中不断的创建线程,最终会导致系统占用内存过高,引发OutOfMemoryError错误。自定义线程池,可对系统中线程池更加细粒度的控制,方便调整线程池大小配置,线程执行异常控制和处理。...

[转]一文带你彻底了解Java异步 0

[转]一文带你彻底了解Java异步

本文从以下几个方面结合真实项目异步改造经验对异步编程进行分析,希望能给大家一些客观的了解: 使用RxJava异步改造后的效果 什么是异步编程?异步实现原理 异步技术选型参考 异步化真正的好处是什么? 异步化落地的难点及解决方案 扩展:异步其他解决方案-协程   一文带你彻底了解Java异步

[总结]Postgre经验 0

[总结]Postgre经验

程序员硬核“年终大扫除”,清理了数据库 70GB 空间 在没有删除单个索引或删除任何数据下,最终释放了超过 70GB 的未优化和未利用的空间,还意外释放 20GB 未使用索引空间。

[转]日订单量达到100万单后,我们做了订单中心重构 0

[转]日订单量达到100万单后,我们做了订单中心重构

1. 背景 几年前我曾经服务过的一家电商公司,随着业务增长我们每天的订单量很快从30万单增长到了100万单,订单总量也突破了一亿。当时用的Mysql数据库。根据监控,我们的每秒最高订单量已经达到了2000笔(不包括秒杀,秒杀TPS已经上万了。秒杀我们有一套专门的解决方案,详见《秒杀系统设计~亿级用户》)。不过,直到此时,订单系统还是单库单表,幸好当时数据库服务器配置不错,我们的系统才能撑住这么大的压力。 业务量还在快速增长,再不重构系统早晚出大事,我们花了一天时间快速制定了重构方案。 重构?说这么高大上,不就是分库分表吗?的确,就是分库分表。不过除了分库分表,还包括管理端的解决方案,比如运营,客服和商务需要从多维度查询订单数据,分库分表后,怎么满足大家的需求?分库分表后,上线方案和数据不停机迁移方案都需要慎重考虑。为了保证系统稳定,还需要考虑相应的降级方案。

[总结]MySQL经验 0

[总结]MySQL经验

如果MySQL磁盘满了,会发生什么?还真被我遇到了! 要进行磁盘碎片化整理。原因是datafree占据的空间太多,看看自己的系统的datafree大不大 show table status from 表名; 100G内存下,MySQL查询200G大表会OOM么?   MySQL中ORDER BY与LIMIT 不要一起用,有大坑 如果order by的列有相同的值时,mysql会随机选取这些行,为了保证每次都返回的顺序一致可以额外增加一个排序字段(比如:id),用两个字段来尽可能减少重复的概率。

[转]微服务之间调用超时的设置治理 0

[转]微服务之间调用超时的设置治理

微服务是⼀种分布式架构,系统内各部分(服务)被部署为单独的应用程序,并通过某种远程访问协议进⾏通讯。分布式应⽤的挑战之⼀就是如何管理远程服务的可用性和它们的响应。本⽂主要探讨服务的响应时间对系统的影响和应对。