AbstractQueuedSynchronizer 超详细原理解析 – 后端 – 掘金
今天我们来研究学习一下AbstractQueuedSynchronizer类的相关原理,java.util.concurrent包中很多类都依赖于这个类所提供的队列式的同步器,比如说常用的ReentranLock,Semaphore和CountDownLatc…
源码分析之ThreadPoolExecutor – 掘金
线程池在多线程编程的中可谓是个利器,使用线程池会大大提高多线程的效率。原因是使用线程池相对于new Thread有效避免了线程创建和销毁的开销。 在Java中一般来说通过Executors来创建所需要的线程池,如:Executors.newFixedThrea…
nginx、swoole 高并发原理初探 – 后端 – 掘金
1 阅前热身 为了更加形象的说明同步异步、阻塞非阻塞,我们以小明去买奶茶为例。 同步与异步 …
源码分析之AbstractQueuedSynchronizer – 掘金
在java.util.concurrent包中,大部分的同步器都是基于AbstractQueuedSynchronizer(AQS)这个框架实现的。这个框架为同步状态提供原子性管理、线程的阻塞和解除阻塞以及排队提供了一种通用机制。 同步器一般包含2种方法,一种…
ZooKeeper 原理及其在 Hadoop 和 HBase 中的应用 – 阅读 – 掘金
可点此进入我的博客查看原文。 简介 ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现。分布式应用程序可以基于ZooKeeper实现诸如**数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、M…
java 中的 NIO – 后端 – 掘金
简介 从JDK1.4开始,java中提供一个种叫NIO(Non-Blocking IO)的IO处理机制。与以往的标准IO机制(BIO,Blocking IO)不同的是,新的机制把重点放在了如何缩短抽象与现实之间的距离上面。NIO中提出了一种新的抽象,NIO 弥…
Java 线程面试题 Top 50 – Android – 掘金
本文由 ImportNew – 李 广 翻译自 javarevisited。欢迎加入 翻译小组。转载请见文末要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企…
秒杀系统架构分析与实战 – 后端 – 掘金
摘要:互联网正在高速发展,使用互联网服务的用户越多,高并发的场景也变得越来越多。电商秒杀和抢购,是两个比较典型的互联网高并发场景。虽然我们解决问题的具体技术方案可能千差万别,但是遇到的挑战却是相似的,因此解决问题的思路也异曲同工。 …
秒杀系统架构优化思路 – 后端 – 掘金
1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如:小米手机每周二的秒杀,可能…
探究高可用服务端架构的优秀资料索引 – 后端 – 掘金
探究高可用服务端架构的优秀资料索引从属于笔者的 服务端应用程序开发与系统架构 系列文章;最近随着公司业务的发展与终端用户的增加,保证系统的高可用性也日渐成为团队考虑的重要因素,笔者也把去年以来看的一些文章归集整理,抛砖引玉,如果有其他优秀的望不吝赐教。 探究…
大话程序猿眼里的高并发架构 – 后端 – 掘金
前言 高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。 为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。 在电商相关产品开发的这些…
聊聊高并发系统之 HTTP 缓存 – 后端 – 掘金
简介最近遇到很多人来咨询我关于浏览器缓存的一些问题,而这些问题都是类似的,因此总结本文来解答以后遇到类似问题的朋友。因本文主要以浏览器缓存场景介绍,所以非浏览器场景下的一些用法本文不会介绍,而且本文以chrome为测试浏览器。浏览器缓存是指当我们使用浏览器访问…
Java 并发学习笔记 – Android – 掘金
最近重新复习了一边并发的知识,发现自己之前对于并发的了解只是皮毛。这里总结以下Java并发需要掌握的点。 使用并发的一个重要原因是提高执行效率。由于I/O等情况阻塞,单个任务并不能充分利用CPU时间。所以在单处理器的机器上也应该使用并发。为了实现并发,操作系统…
java 并发编程之 ConcurrentHashMap – 后端 – 掘金
引言 ConcurrentHashMap是线程安全并且高效的HashMap,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入jdk的。 为什么引入Con…
Java 并发编程:线程池的使用 – 后端 – 掘金
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有…
大型网站技术架构 – 入门梳理 – 后端 – 掘金
罗列了大型网站架构涉及到的概念,附上了简单说明 前言 本文是对《大型网站架构设计》(李智慧 著)一书的梳理,类似文字版的“思维导图” 全文主要围绕“性能,可用性,伸缩性,扩展性,安全”这五个要素 性能,可用性,伸缩性这几个要素基本都涉…
ThreadPoolExecutor 源码解析 – 后端 – 掘金
引言 为什么引入线程池技术? 对于服务端的程序,经常面对的是执行时间较短、工作内容较为单一的任务,需要服务端快速处理并返回接口。假若服务端每次接收到一个任务,就创…
Nginx 基本配置备忘 – 后端 – 掘金
Nginx 配置在了解具体的Nginx配置项之前我们需要对于Nginx配置文件的构成有所概念,一般来说,Nginx配置文件会由如下几个部分构成:# 全局块 … # events块 events { ……
十分钟-Nginx入门到上线 – 掘金
前言 新书Java并发编程系统与模型已上线,欢迎拜读。 由于微信小程序要使用Https,但是又不能修改已有线上的配置。所以最简单的方法就是使用nginx转发,在nginx上使用https,然后再转发到内部服务器。Nginx由于其优良的性…
日均PV千万的后台是如何形成的 – 掘金
新书Java并发编程系统与模型已上线,欢迎拜读。 一个日均PV在千万以上的移动客户端,大概有20w-50w的注册用户数。为了简单起见,将一次PV来代表一次Http请求。在移动客户端下,这些是纯逻辑的,不包含…
最全 Java NIO 系列教程 – 后端 – 掘金
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。 Java NIO提供了与标准IO不同的IO工作方式: …
深入分析 Java I/O 的工作机制 – 后端 – 掘金
Java 的 I/O 类库的基本架构 I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以…
netty 源码分析之拆包器的奥秘 – 后端 – 掘金
这里的拆包,拆的不是肉包,不是菜包,也不是小笼包,而是数据包 为什么要粘包拆包 为什么要粘包 首先你得了解一下TCP/IP协议,在…
ZooKeeper 的一致性算法赏析 – 后端 – 掘金
1 ZAB介绍 ZAB协议全称就是ZooKeeper Atomic Broadcast protocol,是ZooKeeper用来实现一致性的算法,分成如下4个阶段。 先来解释下部分名词 electionEpoch:每执行一次leader选举,election…
构建高可用 ZooKeeper 集群 – 后端 – 掘金
ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被…
干货:深度剖析分布式搜索引擎设计 – 后端 – 掘金
版权声明:本文由西加加授权给 StuQ 使用,版权归西加加老师所有,转载请联系作者本人 …
扛住 100 亿次请求?我们来试一试 – 后端 – 掘金
作者:ppmsn2005#gmail.com 项目: https://github.com/xiaojiaqi/… wiki: https://github.com/xiaojiaqi/…