高并发
world6
这个作者很懒,什么都没留下…
展开
-
Java内存模型分析
1、内存模型的相关概念在讲内存模型前,我们来谈谈硬件的效率与一致性的问题计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要原创 2017-05-31 16:51:15 · 713 阅读 · 0 评论 -
volatile关键字解析
在给 volatile关键字解析 之前 希望看本文的朋友对Java内存模型有一定的了解;不了解的朋友可以先看看Java内存模型volatile关键字有什么用呢?1、保证了不同线程访问同一个变量时的可见性,也就是说A线程修改了一个变量的值,B线程C线程能马上就能看到这个变量的最新值。2、禁止指令的重排序。1、volatile关键字能保证可见性吗?看一个简单的例子:原创 2017-05-31 17:42:00 · 461 阅读 · 0 评论 -
一致性Hash算法
很早的时候就听过这个算法,也搜过相关的博客,但一直没搞懂这个算法是用来干嘛的;现在的公司面试的时候CTO跟我聊了一下hashcode紧接着问我对一致性hash有没有了解,去随手记面试时,面试官也问了一致性hash,面试的时候都没答出来,面完用手机查了一下一致性hash,看到很多人拿那个圈做比喻也一下子没看懂;直到入职后,有天中午跟CTO一起吃饭,又问了他如何去理解一致性hash, 当时CTO解释了原创 2017-08-24 00:51:05 · 687 阅读 · 0 评论 -
为什么redis 是单线程的?
以前一直有个误区,以为:高性能服务器 一定是 多线程来实现的 原因很简单因为误区二导致的: 多线程 一定比 单线程 效率高。其实不然。在说这个事前希望大家都能对 CPU 、 内存 、 硬盘的速度都有了解了,这样可能理解得更深刻一点,不了解的朋友点:CPU到底比内存跟硬盘快多少redis 核心就是 如果我的数据全都在内存里,我单线程的去操作 就是效率最高的,为什么呢,因为多线程的本质就是 CP...原创 2018-02-26 21:38:17 · 12904 阅读 · 9 评论 -
分布式环境下的解决方案——分布式锁
分布式锁,也就是在多进程情况下的锁。 多进程的锁 跟 多线程的 锁 有什么相同的地方呢? 需要有存储锁的空间,并且锁的空间是可以访问到的。 锁需要被唯一标识。 锁要有至少两种状态。 储存空间:锁是一个抽象的概念,锁的实现,需要依存于一个可以存储锁的空间。在多线程中是内存,在多进程中是内存或者磁盘。更重要的是,这个空间是可以被访问到的。多线程中,不同的线程都可以访问到堆...原创 2018-07-23 21:56:23 · 891 阅读 · 0 评论 -
redis 实现分布式锁的演进
在分布式系统中,常常会遇到一些要使用分布式锁的业务场景。比如说:每分钟要执行关闭未支付订单的定时任务,在集群的环境下,如果不做处理,每台服务器都会去执行这个定时任务,显然每个时间段的定时任务只需要执行一次,并不需要每台服务器都去执行,使用分布式锁来控制让单台服务器来执行这个定时任务 势在必行实现分布式锁的方式有很多,zookeeper,数据库,或者是其它手段都可以,本文着重分析使用re...原创 2018-05-21 11:21:41 · 573 阅读 · 0 评论 -
mysql uftb8mb4 储存 emoji 表情失败
记一次生产事故踩坑。血淋淋的惨痛教训众所周知 mysql 存 emoji 表情要用 utf8mb4 这个字符集OK 没问题,设置 nick_name 为 utf8mb4 varchar(50)测试的结果: emoji 表情储存成功没有问题 完全oj8k 发生产! 微信公众号做了推送,为了抗住流量,还准备了100台服务器。晚上监控流量,服务器各项指标正常。但...原创 2018-10-22 15:06:57 · 1291 阅读 · 0 评论 -
秒杀系统的设计五大原则
最近订阅了 极客时间 | 如何设计一个秒杀系统,这里是每章的学习笔记。链接:如何设计一个秒杀系统 架构原则:4要 1 不要!1、数据要尽量少。2、请求数要尽量少。3、请求路径要短。4、依赖要尽量少。5、不要有单点。 数据要尽量少:1. 是指用户请求的数据能少就少,请求包括给系统发的request 及 response 。因为 这些 request 和 r...原创 2018-11-21 21:32:53 · 785 阅读 · 0 评论