自定义博客皮肤

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java电商秒杀系统性能优化(九)——防刷限流技术—保护系统,免于过载

流量削峰技术-削峰填谷之神级操作概述一、验证码1.1 代码实现二、限流的目的三、限流方案3.1 限并发3.2 令牌桶算法3.3 漏桶算法原理四、限流力度 概述 本章介绍了常见的黄牛入侵手段,以及如何使用对应的防刷手段防止黄牛入侵。同时业务的发展预估永远可能高于系统可承载的能力,因此介绍了使用多...

2019-08-30 23:44:40

阅读数 158

评论数 0

Java电商秒杀系统性能优化(八)——流量削峰技术-削峰填谷之神级操作

流量削峰技术-削峰填谷之神级操作概述一、秒杀令牌1.1 原理1.2 代码实现二、秒杀大闸2.1 原理2.2 代码实现:三、队列泄洪3.1 原理3.2 代码实现四、本地OR分布式 概述 在之前的课程中经历了查询的优化技术,将单机查询效率提升到了4000 QPS 对应的交易优化技术使用了缓存校验+异步...

2019-08-30 19:22:01

阅读数 1218

评论数 2

Java电商秒杀系统性能优化(七)——交易优化技术之事务型消息-保证最终一致性

事务型消息-保证最终一致性概述一、事务型消息原理1.1 消息队列简介1.2 消息队列应用实例1.3 事务型消息设计方案1.4 事务型消息总结二、操作流水2.1 库存数据库最终一致性保证2.2 业务场景决定高可用技术实现2.3 库存售罄2.4 后置流程2.5 交易单逻辑异步化三、异步更新库存四、事务...

2019-08-30 17:52:07

阅读数 201

评论数 0

Java并发编程——线程之间的协作

线程之间的协作概述一、等待/通知机制1.1 wait()、notify() 和 notifyAll()1.2 方法调用和线程之间的关系1.3 await() signal() signalAll()二、等待/通知的经典范式三、线程通信:管道四、Thread.join()的使用4.1 join()的...

2019-08-30 16:48:50

阅读数 234

评论数 0

Java电商秒杀系统性能优化(六)——交易性能优化技术之缓存库存

缓存库存—用缓存解决交易问题概述一、高效交易验证1.1 交易性能瓶颈1.2 交易验证优化二、缓存库存模型2.1 库存行锁优化2.1.1 扣减库存缓存化2.1.2 异步同步数据库2.2 异步消息队列rocketmq2.2.1 部署模型2.2.2 主从复制机制2.2.3 分布式事务2.2.4 rock...

2019-08-29 18:33:55

阅读数 1061

评论数 0

Java电商秒杀系统性能优化(五)——查询性能优化技术之页面静态化

页面静态化概述一、静态请求CDN1.1 回源缓存设置1.2 有效性判断1.3 浏览器的三种刷新方式1.4 CDN自定义缓存策略二、静态资源部署策略三、全页面静态化 概述 cdn的核心原理并将静态页面部署到cdn上,之后使用了phantomjs的无头浏览器方案实现了将静态请求和动态请求合并一同部署到...

2019-08-29 17:08:54

阅读数 1036

评论数 5

Java并发编程——ThreadLocal

ThreadLocal概述一、对ThreadLocal的理解1.1 ThreadLocal在JDK中的定义1.2 应用场景二、深入分析ThreaLocal类2.1 get()2.2 setIntialValue()2.3 ThreadLocal类是如何为每个线程创建变量副本三、ThreadLoca...

2019-08-29 15:09:04

阅读数 4522

评论数 2

LeetCode—求众数

求众数 题目描述: 给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例1: 输入: [3,2,3] 输出: 3 示例2: 输入: [2,2,1,1,1,2,2] 输出: 2 解法...

2019-08-28 22:14:12

阅读数 66

评论数 0

Java并发编程——解析Thread类

解析Thread类概述一、线程的生命周期二、上下文切换三、线程的创建3.1 实现Runnable接口3.2 实现 Callable 接口3.3 继承 Thread 类3.4 实现接口 VS 继承 Thread四、Thread类详解4.1 线程运行状态4.1.1 start()方法4.1.2 run...

2019-08-28 22:05:20

阅读数 2858

评论数 6

LeetCode——验证二叉搜索树

验证二叉搜索树验证二叉搜索树解法一 验证二叉搜索树 题目地址:二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入:...

2019-08-27 20:06:57

阅读数 42

评论数 0

Java并发编程——Lock

本文以synchronized与Lock的对比为切入点,对Java中的**Lock框架**的枝干部分进行了详细介绍,最后给出了锁的一些相关概念.

2019-08-27 18:35:12

阅读数 63

评论数 0

LeetCode——两数之和、三数之和、四数之和

两数之和、三数之和两数之和解法一解法二三数之和解法一解法二 两数之和 题目地址:两数之和 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 给定 nums = [2, 7, 11, 15], target = ...

2019-08-26 22:17:29

阅读数 41

评论数 0

Java电商秒杀系统性能优化(四)——查询优化缓存之多级优化-接触高性能缓存方案

多级优化缓存概览1、缓存设计原则2、多级缓存方案一、Redis集中式缓存1.1 Redis sentinal哨兵模式1.2 Redis cluster模式1.3 Redis集中式缓存商品详情页接入1.4 Redis集中式缓存压测效果验证二、本地热点缓存2.1 Guava cache2.2 实现Gu...

2019-08-26 18:29:30

阅读数 75

评论数 0

Java并发编程——synchronized关键字

synchronized关键字概述一、线程安全问题二、如何解决线程安全问题三、synchronized 同步方法或者同步块1、synchronized方法2、synchronized 同步块3、class 对象锁四、可重入性五、注意事项1、内置锁与字符串常量2、锁的是对象而非引用六、总结 概述 ...

2019-08-26 14:42:05

阅读数 59

评论数 0

Java并发编程——volatile关键字

Java并发编程——volatile关键字概述一、内存模型二、并发编程的三个概念三、Java内存模型四、剖析volatile关键字4.1 volatile关键字的两层含义4.2 volatile能否保证原子性五、使用volatile关键字场景六、总结常见问题 概述 在 Java 并发编程中,要想...

2019-08-26 11:39:35

阅读数 125

评论数 0

Nginx常见面试题

Nginx常见面试题1、解释一下什么是Nginx?2、请列举Nginx的一些特性3、解释Nginx如何处理HTTP请求4、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?5、使用“反向代理服务器”的优点6、解释Nginx服务器上的Master和Worker进程7、如何通过不同于80的端口...

2019-08-24 16:38:58

阅读数 329

评论数 0

Java电商秒杀系统性能优化(三)——分布式扩展

分布式扩展一、 单机容量问题1.1 单机容量问题表象,水平扩展方案 在上一篇博客中,tomcat性能调优,虽然我们对tomcat的内嵌配置进行了修改,但是单机容量的性能瓶颈仍然影响着整个项目的运行效率。在本篇博客中,在此基础上进行反向代理负载均衡的优化,深入讲解nginx高性能的原因,并且使用ng...

2019-08-24 12:22:08

阅读数 85

评论数 0

LeetCode(242)—有效字母的异位词

有效字母的异位词题目描述解题思路一代码1:解题思路二解题思路三: 题目地址: 有效字母的异位词 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词; 示例1: 输入: s = "anagram", t = "nagaram&quo...

2019-08-23 22:44:38

阅读数 28

评论数 0

Java电商秒杀系统性能优化(二)——云端部署,性能压测【从本地调试到云端上线的必经之路】

云端部署,性能压测云端部署流程1、 云端部署硬件功能2、云端部署java环境3、云端部署MySQL数据库环境4、云端部署应用服务研发环境性能压测,发现并发容量问题jmeter性能压测发现容量问题Tomcat性能优化Tomcat的作用Tomcat默认内嵌配置Tomcat调优发现容量问题 在云端的部署...

2019-08-23 18:11:25

阅读数 83

评论数 0

Java容器面试题

Java容器面试题1、set(HashSet、LinkedHashSet、TreeSet)2、Map及Map的三种常用实现3、Collection.sort()原理4、CAS实现原理,以及ABA问题 1、set(HashSet、LinkedHashSet、TreeSet) Set不包含重复的元素,...

2019-08-23 10:57:19

阅读数 41

评论数 0

提示
确定要删除当前文章?
取消 删除