文章首发于公众号 松花皮蛋的黑板报
作者就职于京东,在稳定性保障、敏捷开发、高级JAVA、微服务架构有深入的理解
当时我将自己的文章投稿到InfoQ,然后总编辑郭总邮件邀请我来分享,于是有了这次值得纪念的演讲。欢迎朋友们前往极客时间App观看。
主题为:如何利用有效的资源抗住618大促流量
大概内容如下:
性能测试
性能优化
硬件优化可包括配置升级比如使用支持NIO的Tomcat版本代替低版本、集群水平扩展、摘取集群短板。
软件优化包括代码审查然后优化SQL和低性能代码。
扩展点
一、开发语言基础知识
数据结构中各种集合间的区别,包括适用场景、CRUD复杂度、线程安全性、有序性、快速失败特性。
并发当中的四种设计模式,包括Future模式、Master-Slave模式、保护暂停模式、不可变模式、生产消费者模式等。
IO当中的零拷贝技术、序列化和反序列化。
内存管理中的内存模型、垃圾回收策略。
使用连接池减少管理的开销。
二、程序设计
SOLID原则,具体为单一职责原则、开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则。
设计模式,常见的有单例模式、工厂模式、策略模式、责任链模式。
接口设计,比如借鉴组合模式减少过多的重载。
避免过度设计,不要过早关注安全性、可配置性、可扩展性、可维护性、可继承性。
三、数据库
理解好索引和锁。
四、中间件
利用好缓存,但是要注意缓存和源数据同步的一致性问题。
利用好消息引擎,但是要注意幂等性、有序性、数据冗余复制的问题。
五、分层
理解好领域驱动设计,按业务划分限界上下文、消除隐匿数据依赖、明确定义依赖方向。
六、高可用
服务降级、服务限流、依赖熔断、队列、超时和重试机制、数据一致性。
文章来源:www.liangsonghua.me
作者介绍:京东资深工程师-梁松华,在稳定性保障、敏捷开发、JAVA高级、微服务架构方面有深入的理解
原文地址:https://www.cnblogs.com/liangsonghua/p/www_liangsonghua_me_17.html