- 博客(14)
- 收藏
- 关注
原创 MYSQL-缓冲池(buffer pool)
应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库。操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问。MySQL作为一个存储系统,同样具有缓冲池(buffer pool)机制,以避免每次查询数据都进行磁盘IO。InnoDB的缓冲池缓存什么?有什么用?缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。那为啥不把所有数据都放到缓冲池里?凡事都具备两面性,抛开数据
2020-05-09 23:52:53 152
原创 Java对象结构
大家知道,Java对象存储在堆(Heap)内存。那么一个Java对象到底包含什么呢?概括起来分为对象头、对象体和对齐字节。如下图所示:对象的几个部分的作用:1.对象头中的Mark Word(标记字)主要用来表示对象的线程锁状态,另外还可以用来配合GC、存放该对象的hashCode;2.Klass Word是一个指向方法区中Class信息的指针,意味着该对象可随时知道自己是哪个Cla...
2020-05-02 16:18:54 238
原创 JAVA对象结构解析
Java对象存储在堆(Heap)内存。那么一个Java对象到底包含什么呢?概括起来分为对象头、对象体和对齐字节。如下图所示:对象的几个部分的作用:1.对象头中的Mark Word(标记字)主要用来表示对象的线程锁状态,另外还可以用来配合GC、存放该对象的hashCode;2.Klass Word是一个指向方法区中Class信息的指针,意味着该对象可随时知道自己是哪个Class的实例...
2020-04-30 15:59:43 412
原创 Zookeeper在分布式环境中的假死脑裂
假死脑裂 在一个大的集群中往往会有一个master的存在,在长期运行过程中不可避免会出现宕机等等的问题导致master不可用,在出现这样的情况以后往往会对系统产生很大的影响,所以一般的分布式集群中的master都采用了高可用的解决方案来避免这样的情况发生。 master-slaver方式,存在一个master的节点,平时对外服务,同时有一个slaver节点来监控master,监控的同时有某种方...
2019-02-23 17:28:52 316
原创 RocketMq事务消息
分布式事务微服务倡导将复杂的系统拆分为若干个简单、职责单一、松耦合的服务,可以降低开发难度,便于敏捷开发。而对大多数中小型公司来说,实施微服务架构面临以下困难:单体应用拆分为分布式系统后,应用间的通讯和故障处理机制变得复杂 微服务化后,一个简单的功能需要调用多个服务并操作多个数据库实现,数据一致性难以保障 大量的微服务,导致其测试、维护、部署变得困难为了保障微服务架构下数据的一致性,...
2019-02-19 22:25:26 189
原创 分布式锁的三种实现方式
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案:分布式锁一般有三种实现方式:1...
2019-01-31 09:39:20 2468 1
原创 web服务器
Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP)Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行 ,同为服务器,Tomcat的特别之处在于它还是Java的Web容器,能够处理JSP;而Apache一般是与PHP结合,并不能处理JSP。Apache常常与T...
2019-01-30 15:33:17 244
原创 zookeeper节点为何奇数
首先需要明确zookeeper选举的规则:leader选举,要求 可用节点数量 > 总节点数量/2 。注意 是 > , 不是 ≥。注:为什么规则要求 可用节点数量 > 集群总结点数量/2 ? 如果不这样限制,在集群出现脑裂的时候,可能会出现多个子集群同时服务的情况(即子集群各组选举出自己的leader), 这样对整个zookeeper集群来说是紊乱的。换句话说,如果遵守...
2018-10-26 11:48:41 305
原创 dubbo原理
分布式服务框架:–高性能和透明化的RPC远程服务调用方案–SOA服务治理方案-Apache MINA 框架基于Reactor模型通信框架,基于TCP长连接Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。分析源代码,基本原理如下:client一个线程调用远程接口,生成一个唯一的ID(比如...
2018-10-26 09:27:43 137
原创 spingboot+dubbo+zk
软件版本:Springboot2.0Dubbo2.6zookeeper3.4.6废话少说,正式开始。Step1:创建项目:使用maven新建一个DubboExample的pom工程,然后在这个parent项目下面创建三个module项目,一个DubboProvider,一个DubboConsumer,一个DubboCommon。上图:创建DubboExample父项目...
2018-10-26 09:16:12 311
原创 java常量池
一、虚拟机内存分布程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不懂。 本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是jvm执行java代码所使用的栈。 方法区存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。 虚拟机堆是jvm执行java代码所使用的堆。 Java中的常量池,实际上分为两种形...
2018-05-16 23:37:41 167
原创 Java 值传递和引用传递
一、值传递方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。看下面这个值传递的例子。public class TransferTest { public static void main(String[] args) { int ...
2018-05-13 11:26:15 167
原创 Java类型转换
一、Java类型分类:二、基本类型转换规则类型转换主要应用在赋值、方法调用、算术运算三种场景下。1.赋值和方法调用时的类型转换:从低位类型到高位类型自动转换,反之则强制类型转换。byte——char(short)——int——long——float——double () 从低位到高位排序注意:byte和char、char和short之间需要相互强转;Boolean类型和其他基本数据类型之间不能相互...
2018-05-07 23:00:37 265
原创 Java数据类型及分析
一、java数据类型1.基本数据类型(8种);2.引用数据类型(3种)基本的变量类型只有一块存储空间(分配在stack中),而引用类型有两块存储空间(一块在stack中,一块在heap中)。 注意:java规范中没有明确指出boolean类型占几个字节,但有以下几种说法:(1)1bit 理由:Boolean类型的值只分为false和true,编译后会使用0和1来表示,...
2018-05-06 23:37:23 167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人