摘要: 1 HBase的特点 海量存储、列式存储、极易扩展、高并发、稀疏数据、准实时查询(弥补MapReduce的离线延时) 2 逻辑结构和物理结构 2.1 逻辑结构 HBase表由行和列组成,每个行由行键(row key)来标识,列划分为若干列族,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一 阅读全文
posted @ 2021-01-11 21:27 murphy_gb 阅读(1194) 评论(0) 推荐(0) 编辑
摘要: 需求一:如何把stage中的修改还原到work dir中 这个需求很常见,也很重要,比如我先将当前work dir中的修改添加到stage中,然后又对work dir中的文件进行了修改,但是又后悔了,如何把work dir中的全部或部分文件还原成stage中的样子呢? 来个实际场景,我先新建两个文件 阅读全文
posted @ 2020-07-20 08:21 murphy_gb 阅读(1178) 评论(1) 推荐(0) 编辑
摘要: 看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,通过源码分析禁用的原因。 线程池的优点 管理一组工作线程,通过线程池复用线程有以下几点优点: 减少资源创建:减少内存开销,创建线程占用内存 降低系统开销:创建线程需要时 阅读全文
posted @ 2020-02-16 18:46 murphy_gb 阅读(6825) 评论(0) 推荐(0) 编辑
摘要: java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。 Stream作为java8的新特性,基于lambda表达式,是对集 阅读全文
posted @ 2020-02-14 12:18 murphy_gb 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 1. 互斥性,同一时刻,只能有一个客户端持有锁。 2. 防止死 阅读全文
posted @ 2020-02-12 14:13 murphy_gb 阅读(10376) 评论(0) 推荐(2) 编辑
摘要: 在高并发系统时有三把利器用来保护系统: 缓存、降级和限流 ,本文将介绍一些限流的相关概念、算法和常规的实现方式。 缓存 缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪,使用缓存不单单能够提升系统访问速度,提高并发访问量,也是保护数据库、保护系统的有效方式,大型网 阅读全文
posted @ 2020-02-11 15:18 murphy_gb 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 如果我们在工作能够更好的利用好索引,那将会极大的提升数据库的性能。 覆盖索引 覆盖索引是指在普通索引树中可以得到查询的结果,不需要在回到主键索引树中再次搜索 建立如下这张表来演示覆盖索引: 我们执行select from T where age between 13 and 25 语句,这条语句的执 阅读全文
posted @ 2020-02-02 15:04 murphy_gb 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 手写一个内存泄露的程序是面试官经常问的问题。 造成内存泄漏,就是让运行的程序无法访问存储在内存中的对象,下面是Java实现: 1. 创建一个长时间运行的线程(使用线程池泄露的速度更快)。 2. 线程通过ClassLoader加载某个类(也可以用自定义ClassLoader)。 3. 这个类分配了大量 阅读全文
posted @ 2020-01-13 23:23 murphy_gb 阅读(1199) 评论(0) 推荐(0) 编辑
摘要: 一、什么是空指针异常 当程序需要对象实例的时候返回 就会抛出空指针异常( ,简称 NPE )。包括以下情况: 调用一个 对象实例的方法 访问或修饰 对象的字段 获取数组为 时的长度 访问或修饰数组为 时的索引值 抛出 对象为 时的异常 虽然代码很难万无一失地避免所有NPE,但是也要尽量减少。所以一些 阅读全文
posted @ 2019-12-26 11:11 murphy_gb 阅读(997) 评论(0) 推荐(1) 编辑
摘要: Redis占用内存大小 我们知道Redis是基于内存的key value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。 1、通过配置文件配置 通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小。 redis的 阅读全文
posted @ 2019-11-23 17:55 murphy_gb 阅读(861) 评论(0) 推荐(1) 编辑