摘要: 一、业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。 二、一些可能的实现 刚才提到过,实现秒杀的关键点是控制线 阅读全文
posted @ 2018-08-23 11:26 Margaery 阅读(20349) 评论(0) 推荐(3) 编辑
摘要: 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两 阅读全文
posted @ 2018-08-23 11:16 Margaery 阅读(1014) 评论(0) 推荐(0) 编辑
摘要: 在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以 阅读全文
posted @ 2018-08-22 19:00 Margaery 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 1. 锁的种类 锁的种类有很多,包括:自旋锁、自旋锁的其他种类、阻塞锁、可重入锁、读写锁、互斥锁、悲观锁、乐观锁、公平锁、可重入锁等等,其余就不列出了。我们重点看如下几种:可重入锁、读写锁、可中断锁、公平锁。 1.1 可重入锁 如果锁具备可重入性,则称作为可重入锁。synchronized和Reen 阅读全文
posted @ 2018-08-21 21:52 Margaery 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 常用内存优化手段与参数 我们知道Redis实际上的内存管理成本非常高,即占用了过多的内存,所以我们讨论通过一系列的参数和手段来控制和节省内存。 首先最重要的一点是不要开启Redis的VM选项,即虚拟内存功能,这个本来是作为Redis存储超出物理内存数据的一种数据在内存与磁盘换入换出的一个持久化策略, 阅读全文
posted @ 2018-08-21 21:14 Margaery 阅读(586) 评论(0) 推荐(0) 编辑
摘要: MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也 阅读全文
posted @ 2018-08-21 21:03 Margaery 阅读(60236) 评论(9) 推荐(22) 编辑
摘要: 一、Linux树状目录结构: 二、linux查询某个程序的某个进程的id? PID 代表进程标识号process identification,它在大多数操作系统内核(如 Linux、Unix、macOS 和 Windows)中使用。它是在操作系统中创建时自动分配给每个进程的唯一标识号。一个进程是一 阅读全文
posted @ 2018-08-21 20:13 Margaery 阅读(5979) 评论(0) 推荐(0) 编辑
摘要: 1.为何要使用同步? Java允许多线程并发控制,当多个线程同时操作一个可共享资源变量时(如数据的增删改查),将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。 2、同步的方式 ①同步方式 即有synchroniz 阅读全文
posted @ 2018-07-26 14:10 Margaery 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 000 | 00000 | SQL语句成功完成 01xxx | SQL语句成功完成,但是有警告 +012 | 01545 | 未限定的列名被解释为一个有相互关系的引用 +098 | 01568 | 动态SQL语句用分号结束 +100 | 02000 | 没有找到满足SQL语句的行 +110 | 01 阅读全文
posted @ 2018-06-01 16:33 Margaery 阅读(5799) 评论(0) 推荐(0) 编辑
摘要: 本文旨在帮助还没有理解AOP的童鞋看透弄懂AOP,也欢迎高手批评指正。 先说一个Spring是什么吧,大家都是它是一个框架,但框架这个词对新手有点抽象,以致于越解释越模糊,不过它确实是个框架的。但那是从功能的角度来定义的,从本质意义上来讲,Spring是一个库,一个Java库。 所以我个人觉得应该这 阅读全文
posted @ 2018-05-25 16:33 Margaery 阅读(2015) 评论(1) 推荐(0) 编辑