摘要:表示的是两个,当其中任意一个计算完并发编程之是线程安全并且高效的,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入的。电商秒杀和抢购,是两个比较典型的互联网高并发场景。
干货:深度剖析分布式搜索引擎设计
分布式,高可用,和机器学习一样,最近几年被提及得最多的名词,听名字多牛逼,来,我们一步一步来击破前两个名词,今天我们首先来说说分布式。
探究高可用服务端架构的优秀资料索引从属于笔者的 服务端应用程序开发与系统架构 系列文章;最近随着公司业务的发展与终端用户的增加,保证系统的高可用性也日渐成为团队考虑的重要因素,笔者也把去年以来看的一些文章归集整理,抛砖引玉,如果有其他优秀的望不吝赐教。
挺好,可以看看,架构设计原则 - 减少一层又一层的流量
本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基本架构;磁盘 I/O 工作机制;网络 I/O 的工作机制;其中以网络 I/O 为重点介绍 Java Socket 的工作方式;你还将了解到 NIO 的工作方式,还有同步和异步以及阻塞与非阻塞的区别,最后我们将介绍一些常用的关于 I/O 的优化技巧。
对 AQS 进行源码剖析
高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。
为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。
在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记录,同时分享给大家。
线程池在多线程编程的中可谓是个利器,使用线程池会大大提高多线程的效率。原因是使用线程池相对于new Thread有效避免了线程创建和销毁的开销。 在Java中一般来说通过Executors来创建所需要的线程池,如:Executors.newFixedThreadPool、Exe…
前面两篇文章已经整理了CompletableFuture大部分的特性,本文会整理完CompletableFuture余下的特性,以及将它跟RxJava进行比较。 Either 表示的是两个CompletableFuture,当其中任意一个CompletableFuture计算完…
ConcurrentHashMap 是线程安全并且高效的 HashMap,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入 jdk 的。
前言 新书Java并发编程系统与模型已上线,欢迎拜读。 由于微信小程序要使用Https,但是又不能修改已有线上的配置。所以最简单的方法就是使用nginx转发,在nginx上使用https,然后再转发到内部服务器。Nginx由于其优良的性能。一台4核16GB的内存完全可以支撑日均…
互联网正在高速发展,使用互联网服务的用户越多,高并发的场景也变得越来越多。电商秒杀和抢购,是两个比较典型的互联网高并发场景。虽然我们解决问题的具体技术方案可能千差万别,但是遇到的挑战却是相似的,因此解决问题的思路也异曲同工。
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎。大多数待遇丰厚的 Java 开发职位都要求开发者精通多线程技术并且有丰富的 Java 程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。
ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布 / 订阅、负载均衡、命名服务、分布式协调 / 通知和分布式锁等分布式基础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。本文的目标读者是对 ZooKeeper 有一定了解的技术人员,将从 ZooKeeper 运行模式、集群组成、容灾、扩容和缩容四方面逐步深入,最终构建出高可用的 ZooKeeper 集群。
最近遇到很多人来咨询我关于浏览器缓存的一些问题,而这些问题都是类似的,因此总结本文来解答以后遇到类似问题的朋友。
因本文主要以浏览器缓存场景介绍,所以非浏览器场景下的一些用法本文不会介绍,而且本文以 chrome 为测试浏览器。
浏览器缓存是指当我们使用浏览器访问一些网站页面或者 http 服务时,根据服务端返回的缓存设置响应头将响应内容缓存到浏览器,下次可以直接使用缓存内容或者仅需要去服务端验证内容是否过期即可。这样的好处可以减少浏览器和服务端之间来回传输的数据量,节省带宽提升性能。
新书Java并发编程系统与模型已上线,欢迎拜读。 一个日均PV在千万以上的移动客户端,大概有20w-50w的注册用户数。为了简单起见,将一次PV来代表一次Http请求。在移动客户端下,这些是纯逻辑的,不包含静态页面的访问和图片的访问。 并发量 并发量的计算公式是pv/时间。无论…
从 JDK1.4 开始,java 中提供一个种叫 NIO(Non-Blocking IO)的 IO 处理机制。与以往的标准 IO 机制 (BIO,Blocking IO) 不同的是,新的机制把重点放在了如何缩短抽象与现实之间的距离上面。NIO 中提出了一种新的抽象,NIO 弥补了原来的 BIO 的不足,它在标准 Java 代码中提供了高速的、面向块的 I/O。
NIO 的包括三个核心概念: 缓冲区(Buffer)、通道(Channel)、选择器(Selector)。
经过本系列的上半部分 JDK1.8 AbstractQueuedSynchronizer 的实现分析的解读,相信很多读者已经对 AbstractQueuedSynchronizer(下文简称 AQS) 的独占功能了然于胸, 那么这次我们通过对另一个工具类: CountDownLatch 的分析来解读 AQS 的另外一个功能:共享功能。
netty 源码分析之拆包器,深入剖析了 netty 是如何支持各种数据包协议的原理
nginx、swoole 的高并发原理,让我们一探究竟。
今天我们来研究学习一下 AbstractQueuedSynchronizer 类的相关原理, java.util.concurrent 包中很多类都依赖于这个类所提供的队列式的同步器, 比如说常用的 ReentranLock,Semaphore 和 CountDownLatch 等.
为了方便理解, 我们以一段使用 ReentranLock 的代码为例, 讲解 ReentranLock 每个方法中有关 AQS 的使用.
在java.util.concurrent包中,大部分的同步器都是基于AbstractQueuedSynchronizer(AQS)这个框架实现的。这个框架为同步状态提供原子性管理、线程的阻塞和解除阻塞以及排队提供了一种通用机制。 同步器一般包含2种方法,一种是acquire,…
Java NIO 系列文章
Java 并发编程学习笔记整理
本文是对《大型网站架构设计》(李智慧 著) 一书的梳理,类似文字版的 “思维导图”。罗列了大型网站架构涉及到的概念,附上了简单说明
ZooKeeper 的一致性算法赏析
前几天,偶然看到了 《扛住 100 亿次请求——如何做一个 “有把握” 的春晚红包系统”》(url)一文,看完以后,感慨良多,收益很多。正所谓他山之石,可以攻玉,虽然此文发表于 2015 年, 我看到时已经是 2016 年末,但是其中的思想仍然是可以为很多后端设计借鉴,。同时作为一个工程师,看完以后又会思考,学习了这样的文章以后,是否能给自己的工作带来一些实际的经验呢?所谓纸上得来终觉浅,绝知此事要躬行,能否自己实践一下 100 亿次红包请求呢?否则读完以后脑子里能剩下的东西 不过就是 100 亿 1400 万 QPS 整流 这样的字眼,剩下的文章将展示作者是如何以此过程为目标,在本地环境的模拟了此过程。
实现的目标: 单机支持 100 万连接,模拟了摇红包和发红包过程,单机峰值 QPS 6 万,平稳支持了业务。
注:本文以及作者所有内容,仅代表个人理解和实践,过程和微信团队没有任何关系,真正的线上系统也不同,只是从一些技术点进行了实践,请读者进行区分。因作者水平有限,有任何问题都是作者的责任,有问题请联系 ppmsn2005#gmail.com
ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布 / 订阅、负载均衡、命名服务、分布式协调 / 通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
ThreadPoolExecutor 源码解析
Java 并发编程:线程池的使用
在了解具体的 Nginx 配置项之前我们需要对于 Nginx 配置文件的构成有所概念,一般来说,Nginx 配置文件会由如下几个部分构成:
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68334.html
摘要:我思考的是什么才算是高并发你一天几个肯定高不了。所以我得出一个自定义概念如果某个系统的日在千万级别以上,他就可能是一个高并发的系统。高并发的问题,我们具体该关心什么讲真话,高并发是个比较抽象的概念。是指秒钟响应的请求数量。 这并不是一个回答的问题的文章,而是由此引发的一个思考。 大家心里仔细想想,当你们听到高并发网站时,心里对这个网站是个什么概念?首先想到的是淘宝吗?带着问题,我们一起...
摘要:在中一般来说通过来创建所需要的线程池,如高并发原理初探后端掘金阅前热身为了更加形象的说明同步异步阻塞非阻塞,我们以小明去买奶茶为例。 AbstractQueuedSynchronizer 超详细原理解析 - 后端 - 掘金今天我们来研究学习一下AbstractQueuedSynchronizer类的相关原理,java.util.concurrent包中很多类都依赖于这个类所提供的队列式...
摘要:在中一般来说通过来创建所需要的线程池,如高并发原理初探后端掘金阅前热身为了更加形象的说明同步异步阻塞非阻塞,我们以小明去买奶茶为例。 AbstractQueuedSynchronizer 超详细原理解析 - 后端 - 掘金今天我们来研究学习一下AbstractQueuedSynchronizer类的相关原理,java.util.concurrent包中很多类都依赖于这个类所提供的队列式...
摘要:表示的是两个,当其中任意一个计算完并发编程之是线程安全并且高效的,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入的。电商秒杀和抢购,是两个比较典型的互联网高并发场景。 干货:深度剖析分布式搜索引擎设计 分布式,高可用,和机器学习一样,最近几年被提及得最多的名词,听名字多牛逼,来,我们一步一步来击破前两个名词,今天我们首先来说说分布式。 探究...
阅读 3191·2021-11-23 09:51
阅读 971·2021-08-05 09:58
阅读 633·2019-08-29 16:05
阅读 921·2019-08-28 18:17
阅读 2988·2019-08-26 14:06
阅读 2692·2019-08-26 12:20
阅读 2116·2019-08-26 12:18
阅读 3028·2019-08-26 11:56