摘要: 1、HBase的数据模型 在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。 但从 HBase 的底层物理存储结构(K V)来看,HBase 更像是一个 multi dimensional map 。 1.1 HBase 逻辑结构 先从一个逻辑结构模型图开始看起: 阅读全文
posted @ 2020-01-07 15:47 Simon-Lau 阅读(898) 评论(0) 推荐(0)
摘要: 1、what:什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统 ,利用HBASE技术可在廉价PC Server上搭建起大 阅读全文
posted @ 2020-01-05 20:52 Simon-Lau 阅读(637) 评论(0) 推荐(0)
摘要: 本文转载自17coding ,于2019年05月31日由 " 苏静 " 发布. 上周对象突然心血来潮说想养个小宠物,我问想养啥她又说随便,你看着办!!!这我真的比较难办啊!但是咱们程序员能有个对象就不错了,还不赶紧宠着,我只能照办咯! 我去到了一家宠物店,半天也没有找到合适的目标。正在我犹豫彷徨之时 阅读全文
posted @ 2020-01-02 21:40 Simon-Lau 阅读(263) 评论(0) 推荐(0)
摘要: 1、Producer API 1.1 消息发送流程 Kafka的Producer发送消息采用的是 异步发送 的方式。在消息发送的过程中,涉及到了两个线程—— main线程和Sender线程 ,以及一个线程共享变量—— RecordAccumulator 。main线程将消息发送给RecordAccu 阅读全文
posted @ 2020-01-01 16:50 Simon-Lau 阅读(737) 评论(0) 推荐(0)
摘要: ArrayList是我们经常使用到的一个集合类,通过查看其底层源码实现,有利于我们更好的掌握与使用。ArrayList不算多,但是也不算少,挨个看下去也挺费时费力的。所以呢,我打算循序渐进着来,比如这一篇就先看看ArrayList的属性,以及一些常用的方法,例如增、删、改、查。一口吃不成胖子,任重而 阅读全文
posted @ 2019-12-26 00:43 Simon-Lau 阅读(418) 评论(1) 推荐(1)
摘要: 1、不安全的Set 上代码: 2、安全的解决方式 使用CopyOnWriteArraySet解决 关于 写时复制技术 , "在这篇博客里写过" ,不再赘述。深入探索一下,看源码: 3、关于HashSet的补充 HashSet底层是什么?看源码: 注释的意思是:创建一个空的HashMap,初始容量是1 阅读全文
posted @ 2019-12-25 13:37 Simon-Lau 阅读(251) 评论(0) 推荐(0)
摘要: 1. 不安全的ArrayList 大家都知道ArrayList线程不安全,怎么个不安全法呢?上代码: 为啥呢?看一下 方法的源码: 可以看到仅仅是在扩容和添加操作,并没有任何的线程安全控制。所以在实际的高并发场景下,ArrayList的应用很有局限。 2. 安全的解决方式 2.1 使用Vector解 阅读全文
posted @ 2019-12-25 12:26 Simon-Lau 阅读(849) 评论(0) 推荐(1)
摘要: 1、并发编程模型的分类 在并发编程中,我们需要处理两个关键的问题: 1、线程间如何通信,2、线程间如何同步 。通信是指线程之间以何种机制来交换信息,同步是指程序用于不同线程之间操作发生相对顺序的机制。 在命令式编程中,线程之间的通信机制有两种: 共享内存和消息传递 。在共享内存的并发模型中,线程之间 阅读全文
posted @ 2019-12-23 09:59 Simon-Lau 阅读(291) 评论(0) 推荐(0)
摘要: An Illustrated Proof of the CAP Theorem The "CAP Theorem" is a fundamental theorem in distributed systems that states any distributed system can have 阅读全文
posted @ 2019-12-18 15:30 Simon-Lau 阅读(285) 评论(0) 推荐(0)
摘要: 1、缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有这个数据,所以会去查询数据库,但是数据库也没有这条数据,并且处于容错考虑,我们没有将这次查询的null写入缓存,这将导致每次请求这条数据都需要查询数据库,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻 阅读全文
posted @ 2019-11-22 21:40 Simon-Lau 阅读(711) 评论(0) 推荐(0)