自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM 汇总三

逃逸分析、栈上分配一.逃逸分析逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故由于无法回收,即成为逃逸通俗点解释:在方法内你new出来的对象只能在方法内随便折腾(业务逻辑处理),但是你不能逃逸出方法的这个一亩三分地而为外部方法所利用。再精简一点可以理解成:对象在我方法内活着.

2021-02-26 17:42:02 131

原创 Linux排查JVM问题

通常来说当我们的Java服务出现问题时,首先需要考虑的是这个进程是不是还在运行,然后再关注这个进程所占用的资源多少,CPU、内存的使用情况,从而定位到具体问题。因此,有必要对Linux服务器中的JVM异常排查进行下记录。方法1、查找Java进程id ps -ef | grep java jps 2、top查找java进程 top -c #参数c表示列出命令的详细信息 top -Hp pid#其中参数H表示...

2020-12-22 17:47:43 225

原创 MySQL汇总二(mysql与存储引擎简单介绍)

一.认识 MYSQL二.架构图 三.引擎介绍存储引擎是作用在表上的,而不是数据库。 四.索引结构 五.InnoDB和MyISAM对索引和数据的存储在磁盘上是如何体现的先来看下面创建的两张表信息,role表使用的存储引擎是MyISAM,而use...

2020-07-16 13:24:38 320

原创 MySQL汇总一(索引底层数据结构与算法)

一 理解索引的特性索引是帮助MySQL高效获取数据的排好序的数据结构 索引存储在文件里二 索引的各种存储结构及其优缺点在开始讲这一小节之前,我们先来看一下在数据库没有加索引的情况下,SQL中的where字句是如何查找目标记录的。我们先看下左边表格第二列Col2列的数据时如何查找的,如果我们希望查找where Col2 = 22的记录,我们在没加索引的情况下是按顺序从第一条记录查找,由此可知需要查找5次才能找到;如果对Col2字段加上索引后,我们假设使用最简单的二叉树作为索引存储方式,再

2020-07-16 12:50:44 154

原创 JVM 汇总二

引用计数法 指的是如果某个地方引用了这个对象就+1,如果失效了就-1,当为 0 就会回收但是 JVM 没有用这种方式,因为无法判定相互循环引用(A 引用 B,B 引用 A)的情况 GC ROOT 为了解决引用计数法的循环引用问题,Java 使用了可达性算法:跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC Roots 没有任何引用链时,则证明此对象是不可用...

2020-07-12 00:11:18 114

原创 JVM 汇总一

个人总结,只是留着做记录,给自己建个所以,方便以后查找,写的不好勿喷,哈哈哈。。。一.JVM 知识点汇总首先看看JVM的知识点汇总。如上图所示,JVM知识点有6个大方向,其中,内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。二.jvm思路...

2020-07-06 23:59:36 168

原创 threadLocal原理

一.ThreadLocal的作用  ThreadLocal提供的实际上就是一种线程隔离,不同的线程的变量归属不同的线程,线程之间不能想问访问各自的变量,当线程生命周期结束的时候,线程会被销毁。二.ThreadLocal的原理Thread类中有一个成员变量threadLocals:这个ThreadLocalMap 是ThreadLocal类中一个静态内部类;ThreadLocal类中最主要的就是set 方法get方法;set方法这个getMap(t); 传入一个Thr.

2020-06-04 23:38:34 5227

原创 Zookeeper 原理

1、Zookeeper的角色  » 领导者(leader),负责进行投票的发起和决议,更新系统状态  » 学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并向客户端返回结果,在选主过程中参与投票  » Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度  » 客户端(client),请求发起方    

2020-06-02 22:40:15 219

原创 redis-集群模式

一、Redis的主从复制 通过执行slaveof命令或设置slaveof选项,让一个服务器去复制另一个服务器的数据。被复制的服务器称为:Master主服 务;对主服务器进行复制的服务器称为:Slave从服务器。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库,而一 个从数据库只能拥有一个主数据库。 主从复制问题:当master down,需要手动将一台...

2020-05-15 18:29:00 406

转载 Java基础篇 - 强引用、软引用、弱引用、虚引用

前言Java执行GC判断对象是否存活有两种方式其中一种是引用计数。引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1。在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。正文(一)

2020-05-09 15:46:51 134

原创 Kafka常见的丢失与重复消费问题

一.数据丢失问题生产者数据不丢失 同步模式:配置=1/0(0不等待,1只有Leader收到,-1所有副本成功 ; 三种机制,性能依次递减 (producer吞吐量降低),数据健壮性则依次递增。) leader partition挂了,数据就会丢失。 解决:设置为-1保证produce写入所有副本算成功        ...

2020-05-08 16:38:10 590

原创 spring事务传播机制

以下是事物的传播机制:@Transactional(propagation=Propagation.REQUIRED)如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)@Transactional(propagation=Propagation.SUPPORTS)如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.@...

2020-05-08 00:19:24 128

原创 分布式系统---幂等性设计

分布式系统---幂等性设计WEB资源或API方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的。幂等性是分布式系统设计中的一个重要概念,对超时处理、系统恢复等具有重要意义。声明为幂等的接口会认为外部调用失败是常态, 并且失败之后必然会有重试。例如,在因网络中断等原因导致请求方未能...

2020-05-06 17:58:00 174

转载 Kafka学习之路 (五)Kafka在zookeeper中的存储

目录一、Kafka在zookeeper中存储结构图 二、分析 2.1 topic注册信息 2.2 partition状态信息 2.3 Broker注册信息 2.4 Controller epoch 2.5 Controller注册信息 2.6 补充Consumer and Consumer group 2.7 Consumer均衡算法 2.8 Consumer注...

2020-05-04 02:34:01 213

转载 Kafka学习之路 (四)Kafka的安装

目录一、下载 二、安装前提(zookeeper安装) 三、安装 2.1 上传解压缩 2.2 修改配置文件 2.3 将kafka的安装包分发到其他节点 2.4 创建软连接 2.5 修改环境变量 三、启动 3.1 首先启动zookeeper集群 3.2 启动Kafka集群服务 3.3 创建的topic 3.4 查看topic副本信息 3.5 查看已经创...

2020-05-04 02:31:47 115

转载 Kafka学习之路 (三)Kafka的高可用

目录一、高可用的由来 1.1 为何需要Replication 1.2 Leader Election 二、Kafka HA设计解析 2.1 如何将所有Replica均匀分布到整个集群 2.2 Data Replication(副本策略) 三、HA相关ZooKeeper结构 3.1 admin 3.2 broker 3.3 controller 四、pr...

2020-05-04 02:16:23 137

转载 Kafka学习之路 (二)Kafka的架构

目录一、Kafka的架构 二、Topics和Partition 三、Producer消息路由 四、Consumer Group 五、Push vs. Pull 六、Kafka delivery guarantee正文回到顶部一、Kafka的架构如上图所示,一个典型的Kafka集群中包含若干Producer(可以是web前端产生的Page View,或者是服务器...

2020-05-04 02:10:58 143

转载 Kafka学习之路 (一)Kafka的简介

目录一、简介 1.1 概述 1.2 消息系统介绍 1.3 点对点消息传递模式 1.4 发布-订阅消息传递模式 二、Kafka的优点 2.1 解耦 2.2 冗余(副本) 2.3 扩展性 2.4 灵活性&峰值处理能力 2.5 可恢复性 2.6 顺序保证 2.7 缓冲 2.8 异步通信 三、常用Message Queue对比 3.1...

2020-05-04 02:02:39 153

原创 Elasticsearch

一.什么是 ElasticsearchElasticSearch 是一个基于 Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch 是用 Java开发的,并作为 Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。二.Elasticsearch应用场景(1).大型分布式日志分析系统ELK ela...

2020-05-04 01:35:17 336

原创 https http2.0 http1.1 http1.0 tcp udp

一、HTTPS大家可能都听说过 HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:① 证书验证阶段浏览器发起 HTTPS 请求 服务端返回 HTTPS 证书 ...

2020-04-16 18:25:27 907

原创 Mysql锁机制分析

数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则;对于任何一种数据库来说都需要有相应的锁定机制,Mysql也不例外。Mysql几种锁定机制类型MySQL 各存储引擎使用了三种类型(级别)的锁定机制:行级锁定,页级锁定和表级锁定。1.行级锁定锁定对象的颗粒度很小,只对当前行进行锁定,所以发生锁定资源争用的概率也最小,能够给予...

2020-04-14 14:21:00 78

原创 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁

公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。对于Java ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。非公平锁的优点在于吞吐量比公平锁大。对于Synchronized而言,也是一种非公平锁。由于其并不像R...

2020-04-14 14:18:49 213

原创 String StringBuffer StringBuilder

public final class String{}String s1 = "abc";String是不可变的StringBuffer是可变的且是线程安全的StringBuilder是可变的且是非线程安全的在大部分情况下字符串的拼接速度为: StringBuilder>StringBuffer>String解释如下:因为String是不可变的(其属...

2020-04-09 22:52:55 88

转载 java--基础面试

一、JAVA中的几种基本数据类型是什么,各自占用多少字节Java语言中一共提供了8种原始的数据类型(byte,short,int,long,float,double,char,boolean),这些数据类型不是对象,而是 Java语言中不同于类的特殊类型,这些基本类型的数据变量在声明之后就会立刻在栈上被分配内存空间。除了这8种基本的数据类型外,其他类型都是引用类型(例如类、接口、数组等),引用类...

2020-04-09 22:50:04 396

原创 core java

What is java-----------------------------------------------------------------------------------------------------java 语法MODULE 1===================================================================...

2020-04-09 22:48:50 572

原创 分布式---eureka平滑发布

一.先聊聊eureke的server与client配置server端:eureka.server.enable-self-preservation//(设为false,关闭自我保护主要)eureka.server.eviction-interval-timer-in-ms//清理间隔(单位毫秒,默认是60*1000)client端:eureka.client.healthcheck.enab...

2020-04-04 22:12:09 778

空空如也

空空如也

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

TA关注的人

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