- 博客(33)
- 收藏
- 关注
转载 分布式Cache知识点盘点
最近整理了一下关于分布式缓存方面的知识点,温故知新,也是夯实基础,也希望对你能有所收获! 随着互联网行业的迅猛发展,类似大促、秒杀等高并发场景还有春节红包、12306春运车票等亿级流量场景越来越普遍,我们的应用需要扛的访问量、并发量要求更高,而我们服务器的资源是有限的,...
2019-03-05 22:17:00
846
转载 事务一致性知识盘点
前面讲了那么多的一致性理论和算法,那么我们必须要了解一下不同一致性算法下的事务、性能、错误的对比关系: 在分布式系统中,比如不同的服务进程操作不同的数据或副本,服务进程间必须要保证事务数据的一致性。所以今天,让我们来回顾一下,事务中的数据一致性。 一、事...
2019-02-22 02:44:00
868
转载 数据一致性知识回顾
最近整理了一下分布式架构中常见的知识点,虽是炒冷饭,但温故而知新,夯实基础还是比较重要的,也希望对你能有所收获! 什么是“节点共识问题”?分布式系统的核心就是如何保证不同节点之间的数据一致性,一致性问题就是分布式系统最根本性的问题,即不同节点间如何达成共识。 因由节点...
2019-02-20 20:18:00
522
转载 JVM知识回顾
一、JMM内存模型 主要分为六块:程序计数器、本地方法栈、虚拟机栈、堆、方法区以及堆外内存。 程序计数器:存储当前线程所执行的字节码指令地址; 本地方法栈:存储本地native方法状态; 虚拟机栈:主要是栈帧,局部变量表、方法出口顺序出栈压栈这些,其实就是JVM给每...
2019-02-19 04:06:00
141
转载 多线程知识回顾
以前看过不少JDK源码,最近回顾了一下笔记,所以在这里对几个很常见到的线程类做个记录。 一、ThreadLocal ThreadLocal是一个线程级的局部变量,“本地线程”只是俗称但并不准确。 假设是拿Map去做线程的局部变量,一般就两种思路:以Thre...
2019-02-18 22:11:00
166
转载 几个集合工具知识回顾
以前看过一些JDK源码,最近回顾了一下笔记,所以在这里对几个常见的集合工具做个记录。 一、跳表 跳表SkipList就是有序链表+二分搜索的组合。它的效率可以做到和二分相同,时间复杂度是O(logn),空间复杂度是O(n)。 它的基本特征是: ...
2019-02-18 05:24:00
137
转载 关于服务器性能排查的思考
服务器上性能排查的经验不多,这里算对以往经验的一个总结吧! 服务性能排查一般就两种:高内存占用或高CPU占用,需要具体问题具体分析。比如应用程序高内存占用,可能因为大文件读取、频繁IO,内存消耗频繁,导致频繁GC,进一步占用内存和CPU;比如应用程序高CPU...
2019-02-17 03:46:00
167
转载 关于消息积压问题的思考
最近和大佬聊MQ底层设计时,被说到“发生消息大量挤压后如何处理”时没反应过来,惭愧惭愧。 虽然线上没遇到过这样的问题,但我事后想了一下,这种情况还是得具体问题具体分析。比如消费端有问题,不消费了或者消费慢了,消费速度跟不上;再比如消息中心有问题,消息没有出口、配置中心的订阅关系出错或...
2019-02-16 23:41:00
209
转载 数据结构—树
一、树的定义 树(tree)也叫树状图,它是一种数据结构,由n(n>=1)个节点(node)构成的一个具有层次关系的有穷集合。我们把没有父节点(parent)的节点称为根节点(root),没有子节点(child)的节点称为叶子节点(leaf),每个节点之间的连线称为边(...
2017-09-09 20:49:00
133
转载 分布式事务整理
一、什么是事务 它提供一种“要么什么都不做,要么做全部”(All or Nothing)的机制。 1. 事务ACID 事务具有的ACID特性: 原子性(Atomicity): 不可分割的意思,事务的原子性的含义是,一个事务的所有操作被捆绑/包装成一个整体,所...
2017-09-03 22:42:00
148
转载 并发问题的思考
前些日子,同事发来一个Main函数,问:怎么保证高并发场景下计算结果的正确性。 我们来举个例子: /** * @author admin * @version $Id: Counter.java, v 0.1 */public class Counter { ...
2017-09-03 16:55:00
90
转载 分布式理论梳理——Raft算法
在分布式系统中,如果每个节点的初始状态一致、执行的操作序列一致,那么如何保证它们最后能得到一个一致性的状态?Raft算法将这类问题抽象为“状态机复制(ReplicatedState Machine) ⑥”:把一致性问题具体化为保证Log副本的一致性,通过Log index和term n...
2017-08-17 19:38:00
221
转载 分布式理论梳理——Paxos算法
作为一种基于消息传递的一致性算法,Paxos非常出名,是目前公认的解决分布式一致性问题最有效的算法之一。它是基于消息传递且具有高度容错特性的一致性算法。 1、背景 通过前面几个定理我们认识到,一个分布式系统必须要适当地容忍故障:节点异常和网络异常。而Paxo...
2017-08-17 19:26:00
222
转载 分布式理论梳理——CAP定理
Web服务不可能同时确保一致性、可用性和分区容忍性,这就是CAP定理。 一致性(Consistency):所有节点在同一时刻都能够看到同样的数据,对调用者而言数据具有强一致性(或叫线性一致性); 可用性(Availability):所有请求都可以在一定时间内收到确定是否成...
2017-08-17 19:20:00
184
转载 分布式理论梳理——FLP定理
FLP Impossibility(FLP不可能性)是分布式领域中一个非常著名的定理。它给出了一个令人吃惊的结论:在异步通信场景,即使只有一个进程失败了,没有任何算法能保证非失败进程能够达到一致性!这意味着,在假设网络可靠、节点只会因崩溃而失效的最小化异步模型系统中,仍然不存在一个可以...
2017-08-17 19:18:00
3904
转载 分布式理论梳理——基本概念
关于分布式的许多理论和概念总感觉不是很清晰,所以花时间梳理了一下。如有不实之处,望指正哈! 1、分布式系统 在处理数据时,我们常常为了得到最理想的计算效果,在“空间”和“时间”之间做选择,因为计算机的存储能力是要受到客观物理条件的限制的,而芯片的计算能力也会受到单...
2017-08-17 19:05:00
387
转载 分布式理论梳理——Zab协议
Zab协议,它的全称是“ZooKeeperAtomic Broadcast”,是ZooKeeper的原子组播协议,它是一种特别为ZooKeeper设计的一致性协议。 什么叫“原子组播”?就是不仅将Leader的状态变更以Proposal的形式广播到所有Follower去,还...
2017-08-10 23:53:00
193
转载 Fork/Join实现原理
作为一个轻量级的并发执行框架,Fork/Join实现事实上由3个角色构成:任务队列(WorkQueue)、工作者线程(ForkJoinWorkerThread)、执行任务(ForkJoinTask),任务队列负责存放程序提交给执行者(ForkJoinPool)的任务,工作者线程负责执行...
2017-07-29 21:26:00
184
转载 Fork/Join粗解
这些天自我感觉知识比较落后,在上网找了一些资料后,复习了一下Java7的特性同时也在Java8中优化较多的框架——Fork/Join。原理和设计方面,Doug Lea写的《A Java Fork/Join Framework》,网上有免费完整版可供下载 ①,这里我只做自己的笔记。 ...
2017-07-24 23:30:00
172
转载 简单的内存分析
在线上故障定位(尤其是OOM)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,也就是我们常说的dump文件。常用的有Heap Dump和Thread Dump(也叫javacore)。 Heap Dump:它是...
2017-07-19 23:36:00
124
转载 Spring IoC核心实现
Spring IoC核心有着庞大的继承、实现体系,众多的子接口、实现类,上一篇我们从源码入手,借助Spring 3.2官方API,简单的过了一遍,现在我们要来看看Spring IoC核心具体是怎么实现的了。 简单来说,IoC容器的构建包含初始化和Bean依赖注入,IoC的初始...
2017-07-11 15:16:00
93
转载 Spring IoC容器的特性
一、依赖反转模式 我们先理解这两个名词:IOC(inversion of control) 控制反转,DI(Dependency Injection)依赖注入。 早在2004年,Martin Fowler就提出了“哪些方面的控制被反转了?”这个问题,他给出的...
2017-06-28 23:38:00
108
转载 Spring IoC体系
首先我们看一个大致的类图: 在SpringFramework IoC核心的设计中,我们可以看到两个主要的容器系列:一个是实现了BeanFactory的简单容器系列,这类容器提供最基础的IoC容器的功能;一个是实现了ApplicationContext接口的应用上下...
2017-06-28 23:36:00
154
转载 价值整合再体现
一. “能量守恒定律” ————汤姆逊 我们周围的一切,以及我们自己的一切都是各种因素的组合体,他们的价值同能量一般不曾消失,存在的只是转换后的再体现。我们的喜怒哀乐,我们的各种遭遇,我们吸收的各种认识,只要出现就不曾消失,而是通过转化,从个人整体系统中得到了再体现。物质是硬性、...
2017-06-14 02:56:00
130
转载 HotSpot VM的收集器
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。虚拟机具体如何进行内存回收动作,是由虚拟机所采用的GC收集器所决定的,而通常虚拟机中往往不止有一种GC收集器,像目前(JDK 7时代)的HotSpot里面就包含有Serial、Serial Old、ParNew、P...
2017-06-13 00:36:00
181
转载 GC收集算法摘要
Java内存区域运行时,程序计数器、虚拟机栈、本地方法,栈随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而执行着出栈和入栈操作,每一个栈帧中分配多少内存在类结构确定下来时(编译期)大体上是已知的。方法结束或者线程结束时,内存自然就回收了,所以这几个区域就不需要过多考虑内存分配和...
2017-06-09 01:07:00
169
转载 Java对象的内存布局
一. 对象的创建 在语言层面上,创建对象通常仅仅只是一个new关键字而已,而在虚拟机中,这包含的主要过程有(仅限于Java普通对象,不包括数组和Class对象,这两者比较特殊):类加载检查、对象分配内存、并发处理、内存空间初始化、对象设置、执行ini方法等。主要流程如下: ...
2017-06-05 00:32:00
163
转载 Java的内存区域
根据《Java虚拟机规范(第2版)》的规定,Java虚拟机在执行Java程序时会把它所管理的内存划分为若干个不同的数据区域。虚拟机所管理得内存将会包括以下几个运行时数据区域: 1. 程序计数器 程序计数器(Program Counter Register)是一块较小...
2017-06-04 22:50:00
65
转载 吞吐量概念
一个系统的吞度量(承压能力)与一个请求request对CPU的消耗、外部接口、IO等密切关联。单个reqeust对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 一般系统吞吐量由几个重要关键要素组成: QPS:Queries Per S...
2017-05-08 11:32:00
710
转载 负载均衡
一、解释 负载均衡Load Balance,也叫负载分担,意思就是将负载进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业应用服务器和其它任务服务器等,从而共同完成工作任务。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的公认解决方案 ...
2017-04-11 17:36:00
200
转载 Linux 常用目录
目录 用途 / Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录、文件、设备都在它之下。 /bin bin为binary的简写,主要存放一些系统必备的最基础...
2017-03-28 15:50:00
99
转载 Java 内存模型
什么是Java内存模型?JMM (Java Memory Model,Java 内存模型),它定义了多线程访问Java内存的规范。 简单的说有以下几部分内容: Java 内存模型将内存分为主内存和工作内存 定义了几个原子操作,用于操作主内存和工作内存中的变量 定义了volat...
2016-12-20 20:04:00
115
转载 Java中的锁-浅析
一、锁的解析 在 Java 中,我们通过synchronized 关键字来保证原子性,这是因为每一个 Object 都有一个内置的对象锁(Intrinsic Lock),也叫做对象监视器(Monitor Lock)。Java 有着内置的锁机制,它包含两部分:一个作为锁的对象的引用...
2016-12-19 22:43:00
199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人