思维导图
文章平均质量分 62
qq_31443653
这个作者很懒,什么都没留下…
展开
-
zero-copy零拷贝技术浅析
参考:https://www.jianshu.com/p/fad3339e3448转载 2018-10-09 10:55:28 · 212 阅读 · 0 评论 -
disruptor 框架使用以及ringbuffer原理解析
Disruptor概述子主题 1生产者消费组框架子主题 2使用子主题 11.建Event类(数据对象)2.建立一个生产数据的工厂类,EventFactory,用于生产数据;3.监听事件类(处理Event数据)4.实例化Disruptor,配置参数,绑定事件;5.建存放数据的核心 RingBuffer,生产的数据放入 RungBuffer。ringbuffer它...原创 2018-10-29 09:57:05 · 6385 阅读 · 0 评论 -
mycat初步认识
mycat原理主要根据对sql的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端。子主题 2分片拆分水平拆分要把一个表按照某种规则把数据划分到不同表或数据库里常用规则*ID*日期*特定字段取模优点*拆分规则抽象好,join操作基本可以数据库内完成*不存在单库大数据,...原创 2018-10-23 14:33:18 · 177 阅读 · 0 评论 -
并发原子类,集合,工具类
其它原子操作基本类型AtomicIntegerAtomicLongAtomicBoolean数组AtomicIntegerArrayAtomicLongArrayAtomicReferenceArray引用类型AtomicReferenceAtomicReferenceFieldUpdater其它threadlocal对象为建,任意对象为值,结构被附...原创 2018-10-17 10:34:06 · 212 阅读 · 0 评论 -
java lock
locksynchronized(非公平锁)(隐式获取锁,取锁解锁过程固话)分类普通同步方法锁定当前实例对象静态同步方法锁定当前类同步代码块锁synchronize括号里面配置的对象原理 进入和退出monitor代码块 两者配对出现monitorenter 被持有后出于锁定状态,执行enter时,尝试获得monitor所有权每个对象有一个监视器...原创 2018-10-17 10:25:11 · 155 阅读 · 0 评论 -
内存模型
内存模型volatile保证所有线程看到值一致,对单个volatile变量读写具有原子性 volatile++不具备lock前缀当前处理器缓存行数据写会系统内存写回内存的操作会使其它CPU里缓存了该内存地址的数据无效多处理器的情况下,每个处理器通过嗅探在总线上传播的数据,检查自己的缓存是否过期总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线...原创 2018-10-17 10:22:57 · 206 阅读 · 0 评论 -
并发基础
并发基础JMM线程通信消息传递AQSAbstractQueuedSynchronizer同步器用来构建锁或者其它同步组件的基础框架,使用int表示同步状态,通过内置的fifo队列完成资源获取线程的排队工作getstatesetstatecompareAndSetState实现同步队列双链表基于CAS死循环设置尾节点通过获取同步状态成功设置首节点每个节...原创 2018-10-17 10:20:01 · 137 阅读 · 0 评论 -
java引用四种方式
引用方式强引用系统即使抛出OutOfMemoryError也不会进行垃圾回收弱引用系统只要进行垃圾收集就会将其使用的内存回收软引用系统只是在内存不够用的时候将其使用的内存回收虚引用"虚引用"顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在 任何时候都可能被垃圾回收。 虚引用主要用来跟踪对象被垃圾...原创 2018-10-17 10:09:04 · 194 阅读 · 0 评论 -
调度算法
# 调度算法先来先服务(FCFS)基于优先级调度 (Priority Scheduling)最短CPU运行期优先调度算法(SCBF–Shortest CPU Burst First)轮转法 (Round-Robin Scheduling) (RR)分时系统中,都采用时间片轮转法。抢占式调度算法非抢占式调度算法非抢占式优先调度算法.抢占式调度算法基于时钟中断的抢占式优先权调度算...原创 2018-10-17 10:05:57 · 720 阅读 · 0 评论 -
kafka源码解读系列——生产者
1.Producer 网络请求1.1 Producer Client角度KafkaProducer主要靠Sender来发送数据给Broker。Sender: 该线程handles the sending of produce requests to the Kafka cluster. 该线程发送metadata requests来更新它感知的整个集群的视图;另外,主要负责发送produc...原创 2018-09-24 16:27:43 · 243 阅读 · 0 评论 -
数据一致性和隔离
数据隔离存在问题脏读(如有事务A和B,A读取了B未提交的数据)不可重复读(如有事务A和B,A负责读取,B负责写入,A连续读的过程中B写入了一次,A前后两次读出来的数据不一样) 不可重复读对应的是修改,即UPDATE操作。丢失更新(如有事务A和B,AB均写入数据,A写入的数据被B覆盖)幻读(如有事务A和B,A修改表内数据的过程中,B向表内插入了一条数据,A修改完后发现数据并没有被全部修改...原创 2018-10-17 09:59:58 · 427 阅读 · 0 评论 -
零拷贝
零拷贝传统模式当应用程序访问某块数据时,操作系统首先会检查,是不是最近访问过此文件,文件内容是否缓存在内核缓冲区,如果是,操作系统则直接根据read系统调用提供的buf地址,将内核缓冲区的内容拷贝到buf所指定的用户空间缓冲区中去。如果不是,操作系统则首先将磁盘上的数据拷贝的内核缓冲区,这一步目前主要依靠DMA来传输,然后再把内核缓冲区上的内容拷贝到用户缓冲区中。接下来,write系统调用再...原创 2018-10-17 10:02:30 · 298 阅读 · 1 评论 -
storm简介
Storm是一个分布式的,可靠的,容错的数据流处理系统。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。一个Storm集群就是在一连串的bolt之间转换spout传过来的数据。Stormnimbus(主节点) 监控节点运行,分配给从节点具体任务Nimbus的主要工作是运行Storm拓...原创 2018-10-09 14:45:50 · 1724 阅读 · 0 评论 -
zk简介
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zk文件系统znode持久,临时,是否顺序通知机制节点发生变化,会通知客户端使用命名服务在zookeeper的文件系统里创建一个目...原创 2018-10-09 14:00:05 · 690 阅读 · 0 评论 -
netty简单使用和解析
Netty Mina高性能和高可伸缩性网络应用程序的网络应用框架传统io缺点NIO的类库和API还是有点复杂,比如Buffer的使用Selector编写复杂,如果对某个事件注册后,业务代码过于耦合需要了解很多多线程的知识,熟悉网络编程面对断连重连、保丢失、粘包等,处理复杂NIO存在BUG,根据网上言论说是selector空轮训导致CPU飙升创建步骤即包含一个接收连接的线程池...原创 2018-10-09 13:49:29 · 152 阅读 · 0 评论