自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入解析分布式存储

一、存储介质磁带的价值大多数可能认为磁带这种存储介质已经退出历史舞台,其实并不是,只不过它们属于长期数据备份领域,离普通用户较远,大多数人不了解而已。磁带为什么比其他介质更适合数据备份呢?因为磁带没有机械部件不容易损坏,而且容量大,更重要的是便宜。现在的磁带库支持定期扫描磁带介质、自动修复等完全自动化的数据备份能力。在大数据和云计算时代,磁盘的需求量更是大增。IBM、索尼等公司都在磁带机技术...

2020-02-28 23:02:46 426

原创 CPU、内存与分布式

文章目录一、CPU与内存的硬件知识CPU的概念CPU与内存之间:Cache(高级缓存)多核CPU的内存共享问题(Cache一致性问题)Cache LineMESI协议缓存伪共享问题一、CPU与内存的硬件知识CPU的概念CPU:泛指,中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。Socket或者Pro...

2020-02-28 00:58:42 1388

原创 支撑Zookeeper核心功能的数据结构与常用应用场景

主要结构树:Zookeeper的数据结构是一颗目录树,类型与UNIX文件系统。节点:树中每一个节点称为ZNode。每个节点通过其在目录树中的路径唯一确定。每个节点可以存储少量数据,默认最大1M。数据量比较大时,在多副本复制时,会使性能降低,另外带宽压力了比较大。每个节点有一个ACL访问控制列表,提供基本的安全保障。ZNode的类型持久节点(persistent):节点创建后就...

2020-02-27 22:00:09 142

原创 各种序列化组件一览

Java原生的Serialization方案现在基本没人使用了,主要缺点:序列化后的数据比较大,传输和存储的效率低。不支持跨语言XML(SOAP、Web Service或者反射)在相当长的时间内,XML都作为主流方案,配合SOAP、Web Service,广为盛行。其主要优点:支持跨语言跨平台特性其格式的具有可读性,,易于理解和调试JSON后来,JSON逐渐取代了 XM...

2020-02-27 16:41:40 541

原创 ByteBuffer的三种实现与进程间通信

ByteBuffer的三种实现为:HeapByteBuffer 堆内存DirectByteBuffer 堆外/直接内存MappedByteBuffer 堆外/文件映射一、ByteBufferByteBuffer是java nio中的一种数据结构。主要用来保存从Socket中读写字节流,可以循环使用,有效降低GC压力。内部有一个固定长度的byte[]。用三个数字来控制读写:capac...

2020-02-21 22:06:49 473

原创 Zookeeper源码解析(一)之持久化

Zookeeper的持久化就是将内存中的数据保存到磁盘上,防止数据丢失。持久化主要分为两种事务日志数据快照事务日志事务日志主要是将每个事务操作先日志文件里,再进行实际的事务操作。这种先写日志后操作的方式被称为“write-ahead log”,这种机制被广泛使用的各种场景,比如Mysql的redo log,hdfs的editlog等等。有些是只先写元数据,有些是写数据本身。这种机制...

2020-02-13 23:37:01 225

原创 HotSpot监控工具

文章目录JDK提供的命令行工具jps : jvm process status 进程状态jinfojstat : jvm statistics monitoring tool 统计监控工具jmap : 内存映射工具jhat : jvm heap analysis tooljstack : 栈跟踪工具可视化工具jconsolevisual vmJDK提供的命令行工具这些命令行工具在bin/路径下...

2020-01-12 19:16:49 214

原创 HotSpot VM的各种垃圾收集器

相关文章Java运行时数据区域Java对象的创建和内存布局最全JVM的参数总结GC算法总结文章目录SerialSerial OldParNewCMS (Concurrent Mark Sweep)Parallel ScavengeParallel OldG1 (Garbage First)GC日志内存分配与回收策略SerialSerial垃圾收集器是一种年轻代收集器,看名字就知道...

2020-01-12 16:38:51 127

原创 HotSpot VM中的准确式GC、OopMap、Safepoint、抢先式中断、主动式中断、Safe Region和RememberedSet

相关文章Java运行时数据区域Java对象的创建和内存布局最全JVM的参数总结文章目录可达性分析保守式GC准确式GC与OopMapSafepoint、抢先式中断、主动式中断Safe RegionRememberedSet首先,我们要了解一下这个主题的背景,为什么会出现这一系列名词。这些名词都是在如何提高GC效率的问题上提出的,具体讲,是如何提高GC Roots扫描效率的问题。可达性...

2020-01-12 00:29:11 848

原创 JAVA各种GC算法

相关文章Java运行时数据区域Java对象的创建和内存布局最全JVM的参数总结首先java并不是首先使用垃圾回收技术的语言,首次使用的是Lisp语言。目录相关文章要想回收对象,首先需要判断对象是否可以被回收在java语言中,有哪些对象可以作为GC Roots呢?引用对象的类型方法区的回收问题垃圾收集算法标记-清除(Mark-Sweep)算法复制算法标记-整理(Mark-Compact...

2020-01-11 22:40:28 123

原创 最全JVM的参数总结

相关文章Java运行时数据区域Java对象的创建和内存布局最全JVM的参数总结JVM的参数介绍Java启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会...

2020-01-11 19:48:12 241

原创 Java运行时数据区域

目录程序计数器虚拟机栈本地方法栈Java堆方法区运行时常量池 Runtime Constant Pool直接内存JVM运行时会把它所管理的内存分为若干个不同的数据区域。方法区、堆、虚拟机栈、本地方法栈、程序计数器。其中虚拟机栈、本地方法栈和程序计数器是线程私有的,其他是所有线程共享的。程序计数器当前线程所执行的字节码的行号指示器。如果JVM是解释执行的,字节码解释器就会通过改变这个计数器的...

2020-01-11 17:30:18 119

原创 Java对象的创建和内存布局

目录对象的创建从堆内存中分配内存的方式从堆内存中分配内存时,如何保证线程安全?功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导...

2020-01-09 23:58:50 127

原创 InnoDB的redo log 详解

redo log 基本概念redo log 重做日志用来实现事务的持久性,有两部分组成:重做日志缓冲redo log buffer:是易失的重做日志文件redo log file:是持久的注意:redo log 基本上是顺序写的,而且在数据库正常运行时,是不需要读取的,所以速度特别快。基本上是顺序读写的意思是重做日志文件有个文件头,遇到文件头时,需要跳过去。undo log 需...

2020-01-08 17:30:15 715 1

原创 Java冷知识(三)编译器的花招之synthetic修饰符

首先我们应该达成一个共识:很多的Java语法糖都是编译器赋予的,而JVM是一个与Java语言解耦的平台。有了这个共识,再来看今天的主角:synthetic修饰符。我们在阅读JDK反射包源码时,会遇到isSynthetic()方法,其实现之一是Modifier.isSynthetic(getModifiers()),其他实现方式的原理一样。Modifier是专门定义修饰符的类,其中static f...

2019-12-12 16:31:33 1336

原创 Java冷知识(二)

工厂方法比new方式相比有哪些好处?工厂方法可以为实例化方法重新命名,但是new调用的构造器只能与类名相同工厂方法可以改变返回对象的类型,比如可以返回子类。构造器无法改变所构造的对象类型。我们可以把对象的引用传递给Java方法,那么怎么证明Java中方法参数的传递方式是按值调用,而不是按引用传递呢?首先如果参数是基本数据类型,一个java方法是不能修改其值的。也就是说,不管方法里面如...

2019-11-27 22:26:14 110

原创 Java冷知识(一)

1.每个Java程序都必须有main方法吗?比如web容器应用答案:是。即使是web容器也有main方法,比如tomcat的Bootstrap类的main方法。2.java有无符号(Unsigned)类型吗?答案:没有。3.NaN相等问题double d1 = Double.NaN;double d3 = d1;System.out.println("d3 == d1 : " + (...

2019-11-24 23:05:55 307

原创 集成算法:Adaboost

已经有那么些这个主题,我为什么要再写一遍呢?其实是为自己写的,把自己的理解整理写出来。一、集成算法1.背景发现弱学习算法通常比发现强学习算法容易的多,但是弱学习算法准确度太低,有没有什么办法把弱学习算法转变成强学习算法呢?可不可以把若各干弱学习器组合起来,组成一个强学习器呢?后来前辈们找到了一系列组合弱学习器的算法,我们把这一类算法称为“集成算法”。2.原理集成算法的原理简单来讲,就是集...

2019-10-11 15:07:34 207

转载 入门Scala,看这篇就够了

Scala介绍设计目的Scala是一门多范式的类java编程语言,集成了面向对象编程和函数式编程的各种特性。可以与Java和C#实现无缝互操作(这两种对象都非纯面向对象)兼容java: Scala类可以调用JAVA方法,创建java对象,继承java类和实现java接口。Scala 运行在Java虚拟机上,并兼容现有的Java程序。Scala是纯面向对象Scala是纯面向对象:每个值都...

2019-08-15 16:06:55 1449

原创 一起学Consul(4)——终结篇:用武之地

前面分享了几篇Consul的介绍,可以当做学习Consul的准备工作,今天看一下Consul有哪些实践。主要讲两方面:服务注册与Consul模板。一、服务注册Consult提供了一系列API用于操作Consul。我们可以通过API来进行服务注册。首先根据前面分享的文章服务注册与发现:一起学Consul——之安装与启动,我们启动一个有三个server和一个client的集群:打开管理页面:h...

2019-05-17 16:16:06 322

原创 一起学Consul(3)——Raft算法

现在市面上的很多分布式系统所用的分布式一致性算法基本上都是采用的Raft算法,比如Redis集群、Redis哨兵系统、Consul集群等。还有其他分布式一致性算法,比如Paxos、ZAB(zookeeper atomic Broadcast)等。首先,什么是分布式一致性?是指在分布式系统中,各个节点的状态如何达到一致的问题。如果数据只存储一份,那么天然是一致的,因为一份数据永远只有一个状态。为了...

2019-05-17 16:04:16 1753

翻译 一起学Consul(2)——Consul架构

Consul架构一个节点可以有客户端模式和服务器模式。主要的名词解释如下:客户端Client:客户端节点是无状态的,完全依赖服务端节点;通过LAN gossip(一种通信协议)与其他客户端交互;通过RPC与服务端进行交互。服务端Server:服务器节点负责存储节点状态;运行一致性协议;与其他数据中心的进行交互(WAN);响应RPC请求。数据中心Datacenter:由多个节点组成的一个集群...

2019-05-14 15:07:55 235

原创 服务注册与发现:一起学Consul——实践

今天开始,本人打算梳理一下微服务的内容,写在这里做个归档,便于日后翻阅,同时也希望能给感兴趣的同学一点点参考(欢迎留言),让我们来一起学吧~~服务注册与发现是微服务中不可或缺的组件,如果没有的话,需要人工维护各个服务的注册,也无法自动发现服务的上线下线,如果服务多起来的话,会让你疯掉的。服务注册和发现有多种方案:consul 、zookeeper、eureka 、etcd 等,我们先从consu...

2019-05-14 15:04:35 466

Flink基础教程@Blink-流处理-实时处理45dgfh.rar

Flink基础教程近几年,许多人开始对如何分析大规模系统中的流数据感兴趣,部分原因 是,在某些场景下对实时数据进行实时分析显得非常有价值和吸引力。然 而,通过低延迟的应用程序及时获得有用的信息,只是高性能流处理带来 的众多好处之一。 本书介绍的 Apache Flink(以下简称 Flink)作为一种高度创新的开源流 处理器,具备惊人的潜力,能够帮助你在以流为基础的各种计算中获益。 Flink 不仅可以真正实现实时的容错性分析,还可以分析历史数据,并且极 大地简化数据处理流程。最让人惊喜的是,Flink 用同一种底层技术来实现 流处理和批处理。它拥有完备的语义和强大的性能,这使得应用程序的开 发变得简单,其架构也使得应用程序的维护变得容易。 本书将全面介绍 Flink 的功能,并且讲解常见的使用方法,包括如何在生产 环境中使用它。Flink 社区由来自世界各地的开发人员和用户组成,整个社 区十分活跃,并且成长迅速。第一届 Flink 专属研讨会定名为 Flink Forward, 于 2015 年 10 月在德国柏林举行,第二届于 2016 年 9 月举行。还有各种线 下聚会在全球范围内举行,新的 Flink 用例在聚会中被大家广泛讨论。

2019-06-24

空空如也

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

TA关注的人

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