JVM运行时数据区域 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存。将会包括以下几个运行时数据区域: JDK 1.8 同 JDK 1.7 比,最大的差别就是:在JDK 2022-10-15 Java-SE > JVM #JVM
HotSpot虚拟机对象 HotSpot 虚拟机对象 Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢? 1.对象的内存布局 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域: 对象头 2022-10-15 Java-SE > JVM #JVM
类加载机制 类加载 1.概述 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 按照 Java 语言规范和 Java 虚拟机规范的定义, 我们用 “类加载(Class Loading)” 来表示: 将 class/interface 名称映射为 Class 对象的一整个过程。 这个过程还可 2022-10-14 Java-SE > JVM #JVM
认识磁盘 1.磁盘 1.1 前言 计算机的功能主要为:计算、存储和网络。而用于计算的数据以及计算后的结果很大一部分都需要存储起来,以备后续再次使用。向磁盘中存储和读取的过程叫磁盘 I/O。磁盘的读取方式和速度会严重影响到整个业务的计算性能。 1.2 认识磁盘 下面我们简单了解一下磁盘是如何工作的。 磁盘大概长这个样子: 磁盘主要由磁盘盘片、传动手臂、读写磁头和马达组成。为了存储容量,主轴像穿糖葫芦一样把多 2022-10-13 系统 > 磁盘 #磁盘
分布式数据的一致性-ZAB协议 我们知道在 ZooKeeper 集群中,服务器分为 Leader 服务器、 Follower 服务器以及 Observer 服务器。 可以这样认为,Leader 选举是一个过程,在这个过程中 ZooKeeper 主要做了两个重要工作,一个是数据同步,另一个是选举出新的 Leader 服务器。今天我们主要先介绍第一个工作,ZooKeeper 集群中的数据同步问题。 Leader 的协调过程 在分布式 2022-09-24 框架 > Zookeeper #Zookeeper
Zookeeper服务数据与文件 Zookeeper服务数据与文件 ZooKeeper 框架能够实现的功能,而无论是什么程序,其本质就是对数据的操作。比如 MySQl 数据库操作的是数据表,Redis 数据库操作的是存储在内存中的 Key-Value 值。不同的数据格式和存储方式对系统运行的效率和处理能力都有很大影响。本课时就来学习,在 ZooKeeper 程序运行期间,都会处理哪些数据,以及他们的存储格式和存储位置。 ZooKe 2022-09-20 框架 > Zookeeper #Zookeeper
Zookeeper-Watch 机制 1. Watch 机制 在日常生活中也有很多订阅发布的场景。比如我们喜欢观看某一个剧集,视频网站会有一个订阅按钮,用户可以订阅自己喜欢的电视剧,当有新的剧集发布时,网站会通知该用户第一时间观看。或者我们在网站上看到一件心仪的商品,但是当前没有库存,网站会提供到货通知的功能,我们开启这个商品的到货通知功能后,商品补货的时候会通知我们,之后就可以进行购买了。ZooKeeper 中的 Watch 机制很 2022-09-19 框架 > Zookeeper #Zookeeper
Zookeeper Leader选举 Zookeeper Leader选举 Leader 服务器的作用是管理 ZooKeeper 集群中的其他服务器。因此,如果是单独一台服务器,不构成集群规模。在 ZooKeeper 服务的运行中不会选举 Leader 服务器,也不会作为 Leader 服务器运行。 在前面,我们说过在 ZooKeeper 集群中将服务器分成 Leader 、Follow 、Observer 三种角色服务器,在集群运行 2022-09-17 框架 > Zookeeper #Zookeeper
ACL权限控制 1. ACL 权限控制 ZooKeeper 基础知识基本分为三大模块: 数据模型 Watch 监控 ACL 权限控制 在前面已经讲了数据模型与Watch 监控,现在来讲一下ACL权限控制。 权限控制相信你一定很熟悉。比如 Linux 系统将对文件的使用者分为三种身份,即 User、Group、Others。使用者对文件拥有读(read) 写(write)以及执行(execute)3 种方式的控 2022-09-14 框架 > Zookeeper #Zookeeper
zookeeper启动流程 服务器初始化到对外提供服务 前面讲解了Zookeeper的基础知识,其实还涉及到Zookeeper-jute序列化,网络通信协议还没有讲。现在来讲讲 ZooKeeper 中的启动与服务的初始化过程,来学习 ZooKeeper 服务端相关的处理知识 2.单机版 我们在启动Zookeeper的时候,都会将zoo_sample.cfg文件复制重新命名为zoo.cfg,如下: 2.1 启动准备实现 Zo 2022-09-12 框架 > Zookeeper #Zookeeper