SF
Zack说码
Zack说码
注册登录
关注博客
注册登录
主页
关于
RSS
什么拜占庭将军问题?比特币是如何解决的?——深入浅出分布式共识性(一)
公众号__Zack说码
2019-11-10
阅读 3 分钟
3k
之前《浅谈分布式CAP定理》简单介绍了数据在分布式系统中存在的必然定理。简单回顾一下,一个数据在一个节点需要同步到另外一个节点的过程中,在未完成同步的时候,会出现数据不一致的情况,所以此时必然存在分区容错性(Partition tolerance)。分布式系统只能从一致性(Consistency)或可用性(Availability)之间去选...
都9102年了,还不会Docker?10分钟带你从入门操作到实战上手
公众号__Zack说码
2018-12-12
阅读 6 分钟
3.5k
Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windows10目前也原生支持,Win10前需要内置虚拟机),正所谓“一次打包,到处运行”。
“过时”的SpringMVC我们到底在用什么?深入分析DispatchServlet源码
公众号__Zack说码
2018-11-22
阅读 6 分钟
1.9k
之前已经分析过了Spring的IOC(《零基础带你看Spring源码——IOC控制反转》)与AOP(《从源码入手,一文带你读懂Spring AOP面向切面编程》)的源码,本次就来分析下SpringMVC。本文先简述下目前SpringMVC的使用情况,然后通过Demo的简单让大家有一个初步的使用印象,然后带着印象去看其中执行的分发源码。
进阶的Redis之哈希分片原理与集群实战
公众号__Zack说码
2018-11-12
阅读 5 分钟
11.1k
如果Redis只用复制功能做主从,那么当数据量巨大的情况下,单机情况下可能已经承受不下一份数据,更不用说是主从都要各自保存一份完整的数据。在这种情况下,数据分片是一个非常好的解决办法。
进阶的Redis之数据持久化RDB与AOF
公众号__Zack说码
2018-11-04
阅读 4 分钟
2.2k
大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存。但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数据就会丢失不见了。这样的数据库并不是一个可靠的数据库。
浅谈分布式CAP定理
公众号__Zack说码
2018-10-19
阅读 2 分钟
2.3k
在2000年,Eric Brewer教授在PODC的研讨会上提出了一个猜想:一致性、可用性和分区容错性三者无法在分布式系统中被同时满足,并且最多只能满足其中两个!
Java异步编程——深入源码分析FutureTask
公众号__Zack说码
2018-10-09
阅读 4 分钟
3.6k
之前通过源码详细分析了ThreadPoolExecutor《你真的懂ThreadPoolExecutor线程池技术吗?看了源码你会有全新的认识》。通过创建一个ThreadPoolExecutor,往里面丢任务就可以实现多线程异步执行了。
一文了解JVM全部垃圾回收器,从Serial到ZGC
公众号__Zack说码
2018-09-28
阅读 5 分钟
3.8k
<!--more-->Serial、ParNew、Parallel Scavenge用于新生代; CMS、Serial Old、Paralled Old用于老年代。并且他们相互之间以相对固定的组合使用(具体组合关系如上图)。G1是一个独立的收集器不依赖其他6种收集器。ZGC是目前JDK 11的实验收集器。
必知必会JVM垃圾回收——对象搜索算法与回收算法
公众号__Zack说码
2018-09-27
阅读 2 分钟
2.2k
垃圾回收(GC)是JVM的一大杀器,它使程序员可以更高效地专注于程序的开发设计,而不用过多地考虑对象的创建销毁等操作。但是这并不是说程序员不需要了解GC。GC只是Java编程中一项自动化工具,任何一个工具都有它适用的范围,当超出它的范围的时候,可能它将不是那么自动,而是需要人工去了解与适应地适用。
从源码入手,一文带你读懂Spring AOP面向切面编程
公众号__Zack说码
2018-09-14
阅读 5 分钟
2.6k
基于这两者的实现上,这次来探索下Spring的AOP原理。虽然AOP是基于Spring容器和动态代理,但不了解这两者原理也丝毫不影响理解AOP的原理实现,因为大家起码都会用。
你真的完全了解Java动态代理吗?看这篇就够了
公众号__Zack说码
2018-09-14
阅读 3 分钟
4.3k
之前讲了《零基础带你看Spring源码——IOC控制反转》,本来打算下一篇讲讲Srping的AOP的,但是其中会涉及到Java的动态代理,所以先单独一篇来了解下Java的动态代理到底是什么,Java是怎么实现它的。
零基础带你看Spring源码——IOC控制反转
公众号__Zack说码
2018-09-13
阅读 6 分钟
3.3k
本章开始来学习下Spring的源码,看看Spring框架最核心、最常用的功能是怎么实现的。网上介绍Spring,说源码的文章,大多数都是生搬硬推,都是直接看来的观点换个描述就放出来。这并不能说有问题,但没有从一个很好的、容易切入的角度去了解学习。博主来尝试抛弃一些所知,从使用上入手,步步回溯源码去了解学习。
你真的懂ThreadPoolExecutor线程池技术吗?看了源码你会有全新的认识
公众号__Zack说码
2018-09-12
阅读 5 分钟
7.4k
Java是一门多线程的语言,基本上生产环境的Java项目都离不开多线程。而线程则是其中最重要的系统资源之一,如果这个资源利用得不好,很容易导致程序低效率,甚至是出问题。
Java多线程—ReentrantReadWriteLock源码阅读
公众号__Zack说码
2018-09-11
阅读 4 分钟
1.8k
之前讲了《AQS源码阅读》和《ReentrantLock源码阅读》,本次将延续阅读下ReentrantReadWriteLock,建议没看过之前两篇文章的,先大概了解下,有些内容会基于之前的基础上阅读。这个并不是ReentrantLock简单的升级,而是落地场景的优化,我们来详细了解下吧。
Java多线程——重入锁ReentrantLock源码阅读
公众号__Zack说码
2018-09-10
阅读 4 分钟
1.8k
上一章《AQS源码阅读》讲了AQS框架,这次讲讲它的应用类(注意不是子类实现,待会细讲)。ReentrantLock,顾名思义重入锁,但什么是重入,这个锁到底是怎样的,我们来看看类的注解说明ReentrantLock与隐式锁synchronized功能相同,但ReentrantLock更具有扩展性。《锁优化》里提到Java在1.6对隐式锁synchronized做了锁的...
Java多线程——带你看AQS框架源码
公众号__Zack说码
2018-08-31
阅读 4 分钟
2.1k
AQS,全称AbstractQueuedSynchronizer,是Concurrent包锁的核心,没有AQS就没有Java的Concurrent包。它到底是个什么,我们来看看源码的第一段注解是怎么说明看完第一段,总结下