多路复用机制与javaNIO Posted on 2019-09-17 IO多路复用select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读 ... Read more »
网络模型总结 Posted on 2019-09-17 常用的五种网络IO模型是阻塞I/O,非阻塞I/O,I/O复用,事件(信号)驱动I/O,异步I/O。为什么要发起系统调用?因为进程想要获取磁盘中的数据,而能和硬件打交道的只能是内核,进程通知内核说我要磁盘中的数据,此过程就是系统调用。一次I/O的完成的步骤:当进程发起系统调用时,这个系统调用就进入内核 ... Read more »
S3总结 Posted on 2019-09-14 AWS S3对象存储Amazon Simple Storage Service (Amazon S3) 是一种面向 Internet 的存储服务。您可以通过Amazon S3随时在Web上的任何位置存储和检索的任意大小的数 据。Amazon S3 特意内置了着重于简易性和稳健性的最小功能集。以下是 ... Read more »
架构与开源 Posted on 2019-09-13 1.关于架构与技术栈技术架构一遍经过三个阶段,创建期、瓶颈期和退化期,就像下面这张图所画:架构的选型要注意以下几点:功能预见性(功能性)、系统可用性、容错性、可靠性、性能够快、可伸缩、可维护性、安全性、成本、可度量性;架构的选型的误区:“重复造轮子”、脱离实际业务需求、避免无意义的重构、功能完成是完 ... Read more »
分布式理论简介 Posted on 2019-09-12 问题的解读对于上面三个例子,相信大家一定看出来了,我们的终端用户在使用不同的计算机产品时对于数据一致性的需求是不一样的:1、有些系统,既要快速地响应用户,同时还要保证系统的数据对于任意客户端都是真实可靠的,就像火车站售票系统2、有些系统,需要为用户保证绝对可靠的数据安全,虽然在数据一致性上存在延时, ... Read more »
hypervisor学习总结 Posted on 2019-09-08 什么是hypervisor Hypervisor是一种将操作系统与硬件抽象分离的方法,以达到host machine的硬件能同时运行一个至多个虚拟机作为guest machine的目的 ,这样能够使得这些虚拟机 高 效地分享主机硬件资源。 hypervisor的优点 提高主机硬件的使用效率。因为一 ... Read more »
循环队列 Posted on 2019-09-01 基本概念队列(Queue)两端同意操作的类型不一样:能够进行删除的一端称为队头,这样的操作也叫出队dequeue;能够进行插入的一端称为队尾,这样的操作也叫入队enqueue。1、添加一个属性size用来记录眼下的元素个数。目的是当head=rear的时候。通过size=0还是size=数组长度。来 ... Read more »
hash算法总结 Posted on 2019-08-17 什么是hash算法将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值。散列函数,顾名思义,它是一个函数。我们可以把它定义成hash(key),其中key表示元素的键值,hash(key)的值表示经过散列函数计算得到的散列值。 ... Read more »
SkipList总结 Posted on 2019-08-17 skiplist简介skip List是一种随机化的数据结构,基于并联的链表,实现简单,插入、删除、查找的复杂度均为O(logN)(大多数情况下),因为其性能匹敌红黑树且实现较为简单,因此在很多著名项目都用跳表来代替红黑树,例如LevelDB、Redis的底层存储结构就是用的SkipList。目前常 ... Read more »
一致性hash算法 Posted on 2019-08-11 简单hash算法在缓存中常见问题 当缓存服务器数量发生变化时,会引起缓存的雪崩,可能会引起整体系统压力过大而崩溃(大量缓存同一时间失效)。 当缓存服务器数量发生变化时,几乎所有缓存的位置都会发生改变,怎样才能尽量减少受影响的缓存呢? 一致性hash算法一致性Hash算法也是使用取模的方法,只是,刚 ... Read more »