自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Bigtable(二):Bigtable如何实现伸缩性及高性能

Bigtable(二):Bigtable如何实现伸缩性及高性能

2022-02-26 16:13:47 564 9

原创 Flink RPC源码流程

Flink RPC源码流程

2022-02-23 20:44:38 1987 1

原创 AQS不同特性源码,你也可以

AQS不同特性源码,你也可以

2022-02-22 20:13:34 316

原创 AQS源码,你也可以

AQS源码,你也可以

2022-02-22 19:00:33 263

原创 Bigtable(一):为何需要Bigtable而不是MySQL集群

为何需要BigTable而不是MySQL集群

2022-02-22 17:07:18 1584 4

原创 跳表源码,你也可以

跳表源码,你也可以

2022-02-19 17:26:07 429 3

原创 一篇解析论文MapReduce

一篇解析论文MapReduce,这样你也可以和面试官“讲一讲”

2022-02-19 11:03:57 3079 4

原创 不一样的JVM

不一样的JVM,带你一通到底。

2022-02-19 00:07:05 693 4

原创 一篇理解GFS与HDFS的重要理念

一篇理解GFS与HDFS的重要理念

2022-02-18 14:38:30 2361 4

原创 一篇理清大数据技术发展和要求

一篇理清大数据技术发展和要求

2022-02-18 14:32:24 2195 3

原创 不一样的Java基础细节

不一样的Java基础细节

2022-02-17 12:05:59 1332 3

原创 一篇搞定kafka(下)

Kafka消费者消费方式consumer采用pull(拉)模式从broker中读取数据。push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由broker决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成consumer来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而pull模式则可以根据consumer的消费能力以适当的速率消费消息。pull模式不足之处是,如果kafka没有数据,消费者可能会陷入循环中,一直返回空数据。针对这一点,Kafka的消费者在消

2021-09-03 15:39:26 460

原创 一篇搞定Kafka(上)

Kafka概述为什么要使用Kafka削峰:在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。 如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列 能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。解耦和扩展性:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。缓冲:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。健壮性:消息队列可以堆积请求,所以消

2021-09-02 14:54:23 296

原创 一片搞定HBase(下)

Phoenix二级索引HBase因其历史原因只支持rowkey索引,当使用rowkey来查询数据时可以很快定位到数据位置。现实中,业务查询需求条件往往比较复杂,带有多个查询字段组合,如果用HBase查的话,只能全表扫描进行过滤,效率很低。而Phoenix支持除rowkey外的其它字段的索引创建,即二级索引,查询效率可大幅提升。(基于Coprocessor,可以更好的实现二级索引、复杂过滤规则、权限访问控制等更接地气的特性。)二次索引设计思路二级索引的本质就是建立各列值与行键之间的映射关系如图

2021-08-26 14:49:08 124

原创 一篇搞定HBase(中)

HBase四类主要操作put:增加一行,修改一行;get:获取指定行的所有信息,获取指定行和指定列族的所有column,获取指定column的几个版本等;scan:获取指定行键范围的行;delete:删除一行,指定rowkey,列族,指定column的多个版本;put存储一行数据操作1.客户端提交写请求:先将数据写入缓存,判断缓存是否满,若满则提交数据。(非每次put都进行rpc调用,而是批量缓存数据一次rpc发送到服务器)。2.客户端确定数据所在的regionserv

2021-08-25 18:16:23 325

原创 一篇搞定HBase(上)

1.简述hbasehbase是一种分布式、可扩展、支持海量数据存储的nosql数据库(基于列式存储)。存储表大,稀疏(空列,不占存储),高可用(zookeeper)、高可靠(HDFS)、可伸缩的分布式数据库。hbase的物理存储结构hbase架构构成Region每一个region都是表的一部分,而每一个region又划分为多个store,store中存储的是该部分一个列族的信息。(一台机器放2-3个region)storeFile保存实际数据的物理文件,storeFile

2021-08-21 15:56:02 640

原创 Mysql实现ACID特性

数据库ACID特性原子性(Atomicity)事务被视为不可分割的最小单元,而原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。(回滚通过回滚日志实现,日志中记录着事物所执行的修改操作,在回滚时,反向进行修改操作即可)一致性(Consistency)数据库在事务执行的前后都保持着一致性的状态,所有事务对一个数据的读取结果相同。隔离性(Isolation)一个事务所做的修改在最终提交前,对其他的事务是不可见的。持久性(Durability)一个事务一旦被提交了,

2021-07-17 18:30:36 106

原创 Mysql -- 索引

索引索引介绍索引是什么索引(Index)是帮助MySQL高效获取数据的数据结构。索引的实质即是,排序加查找的数据结构。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法。索引的实现通常通过B+树来进行实现(聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引),另外也有哈希索引。为什么索引的实现是通过B+树,而非B树MySQL的默认存储引擎是InnoDB,最小存储单位是页,每页大小为16K

2021-07-17 12:32:05 67

原创 计算机操作系统:虚拟内存

虚拟内存概述一级目录二级目录三级目录概述为什么需要虚拟内存技术解决进程间的地址空间隔离问题,因为如果直接对物理地址进行操作,假设有两个进程,就可能会不小心访问到对方的物理地址,进行操作,使另一个进程崩溃掉。我们可以使用虚拟内存技术,为每个进程独立的划分一块虚拟内存,而虚拟内存会与物理内存建立起一种映射关系,而程序员也只需要关心这块虚拟内存,不用关心实际的物理内存。一级目录二级目录三级目录...

2021-06-13 11:46:45 269 1

原创 一起来学习Java编程思想

这里写目录标题第十四章 类型信息1.为什么需要RTTI2.Class对象第十四章 类型信息1.为什么需要RTTI1.RTTI是什么RTTI可以让我们在运行时,发现和使用类型信息。2.RTTI可以做到些什么①我们可以向上转型完成多态的实现,RTTI是多态的基础②在泛型数组中,所有事物被当作object持有,当取出元素时,会自动将结果转换为泛型所代表的类型,这是因为所有的类型转换都是会在运行时进行正确性检查,这就是RTTI的作用:在运行时,识别一个对象的类型。③使用RTTI,可以查询某个引用所指

2021-06-07 17:20:52 84

原创 继承和组合

继承能做到的事情,组合通用能做到,继承通过extends关键字,而组合通过创建类的对象,调用对象的属性和方法做到使用该类的一些方法和属性.使用哪个是is-a和has-a的区别假如我们说学生是人就可以继承,因为学生是人类,这就是is-a的关系而一辆车里的发动机,我们不能说发动机是车,只能说车有发动机,这就是has-a的关系...

2021-04-16 18:32:44 54

原创 == 和equals 的用法和原因

equals1.==的用法==在基本类型中比较的是数据,而在引用类型中比较的是他们的地址2.String中的equals他比较的是字符串的是否相同.我们先来看一下他的源码String属于引用数据类型,他先用 == 来查看地址值是否相同,地址值相同自然内容也是相等的,否则他就会看传来的对象是否为String类或其子类的对象,如果是,则进行强转,然后依次比较其中的字符,所以他比较的是内容3.除String外的引用数据类型的equals方法他比较的是地址值其本身并没有equals 的方法,他继

2021-04-16 18:25:13 238

原创 Java的垃圾回收讲解

一.内存管理Java的内存管理很大程度是指对,堆中对象的管理,因为栈中的内存在调用方法结束后就会自动释放.对象的内存分配一般都使用new关键字来进行创建对象,并分配内存对象的内存释放,直接赋值null即可,Java的垃圾回收器会将所有无法到达的对象清理释放内存二.垃圾回收过程1.发现无用的对象2.回收无用对象所占用的内存三.垃圾回收算法1.引用计数法即堆中每一个对象都会对应着一个引用计数器,当有引用指向它时,它的引用计数器就会加一,此方法看似很好,但是引来一个问题,如果栈中方法结束,引用被

2021-04-16 18:06:23 679

原创 KMP算法详解

KMP算法KMP算法

2021-04-08 22:47:49 177 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除