自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

男儿当自强

人生来平凡,因奋斗进取而不凡。

原创 Spring源码深度解析总结1之Spring整体架构

Spring整体架构是分层设计的,有核心容器层、数据访问层、web层、Aop层等。 核心容器层:包括core模块、beans模块、context模块和expression模块等。 core模块:是spring的核心模块,它提供了spring框架的核心工具类,基本所有模块都会访问这个core...

2020-05-30 16:02:45 19 0

转载 SpringCloud 版本管理表

英文 中文 终结版本 boot大版本 boot代表 说明 Angel 安吉尔 SR6 1.2.X 1.2.8 GA Brixton 布里克斯顿 SR7 1.3.X 1.3.8 GA Camden 卡梅登 SR7 1.4.X 1.4.2 GA Dalston 达斯顿 SR5 1.5.X * GA E...

2020-05-24 12:41:21 24 0

原创 AQS同步器框架 源码

state 同步器中共享资源,它是volatile类型确保内存可见性。 Node 线程等待队列,保存线程。节点等待状态 CANCELLED 取消等待,需要在节点中移除。SIGNAL 等待唤醒。0 初始状态。CONDITION 节点处于等待CONDITION。PROPAGATE 共享模式,节点线程处...

2020-05-16 11:40:32 145 0

原创 Git 撤销操作版本回退

WorkSpace ---------------------- Index ---------------------- Repository Add commit 1 git diff 工作区与暂存区 git diff HEAD 工...

2020-03-12 14:59:58 48 0

原创 JAVA并发编程的艺术之CPU实现原子性操作

CPU可以通过总线锁定和缓存锁定,实现原子性操作,保证当一个CPU在操作某个变量的缓存的时候,其他CPU无法操作这个变量的缓存,再结合缓存一致性协议,当发出锁定信号的CPU把更新从缓存回写到系统内存时候后,其他CPU缓存失效。 总线锁定:锁定CPU和内存之间的通信,当一个CPU发出总线锁定信号后...

2019-09-21 17:52:01 65 0

原创 Zookeeper集群运行原理

客户端测试程序: package cn.onea.common.zoo; import org.apache.zookeeper.*; import org.apache.zookeeper.data.Stat; import java.io.IOException; import jav...

2019-08-23 14:40:14 47 0

原创 Zookeeper实现分布式锁

获取锁: 1 在Zookeeper中创建一个节点,比如名称为locks; 2 当线程获取锁的时候先在locks目录节点下创建临时有序节点,保存创建成功后节点路径; 3尝试获取锁,尝试获取锁的过程:先获取locks下所有的子节点,检查当前节点的序号是否是所有子节点中最小的,是则获取锁成功返回,...

2019-08-22 10:03:37 37 0

转载 ZooKeeper分布式锁实现java例子,附完整可运行源代码

本原创入门教程,涵盖ZooKeeper核心内容,通过实例和大量图表,结合实战,帮助学习者理解和运用,任何问题欢迎留言。 目录: zookeeper介绍与核心概念 安装和使用 ZooKeeper分布式锁实现 ZooKeeper框架Curator分布式锁实现及源代码分析 zookeeper 开发实...

2019-08-22 09:43:45 134 0

转载 Zookeeper的基本概念和重要特性

目录 1. 什么是Zookeeper 2. Zookeeper集群角色 3. Zookeeper的数据模型 3.1 Znode的类型 3.2 Znode的结构 4. Zookeeper的事件监听机制 5. Zookeeper如何保证分布式数据一致性——ZAB协议 5.1 事务...

2019-08-22 09:42:08 61 0

原创 JAVA 把一个List转成树形结构

package com.stu; import java.util.ArrayList; import java.util.List; public class TreeUtils { //把一个List转成树 static List<Node> buidTree...

2019-07-26 16:02:49 4053 7

转载 快速排序算法

面试中较为常见的算法之一就是快速排序,快速排序在实际排序应用中也是最好的选择,因为它的平均性能非常好,它的期望复杂度为nlgn,另外,它还是一种稳定的排序方法。快速排序利用分治思想,将待排序数组分成左右两个部分,然后对其分别递归调用快速排序算法。   下面通过一个例子介绍快速排序算法的思想,假设...

2019-07-26 14:28:30 30 0

转载 【SpringCloud】 第九篇: 服务链路追踪(Spring Cloud Sleuth)

前言: 必需学会SpringBoot基础知识 简介: spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。 工具: JDK8 ...

2019-07-26 10:35:32 35 0

转载 synchronized的实现原理

 常见三种使用方法:      1)普通同步方法,锁是当前实例;     2)静态同步方法,锁是当前类的Class实例,Class数据存在永久代中,是该类的一个全局锁;     3)对于同步代码块,锁是synchronized括号里配置的对象。     Java中的每个对象都可以作为锁。当一个...

2019-07-26 10:33:06 27 0

转载 synchronized底层实现原理及锁优化

一、概述 1、synchronized作用 原子性:synchronized保证语句块内操作是原子的 可见性:synchronized保证可见性(通过“在执行unlock之前,必须先把此变量同步回主内存”实现) 有序性:synchronized保证有序性(通过“一个变量在同一时刻只允许一条线程对...

2019-07-26 10:31:45 159 0

转载 MySQL索引失效的几种场景

我们都知道建立索引能够提高查询效率,那么是不是任何情况下都能提高呢,当然不是的的,下面我们就来列举一些常见的索引失效的场景。 借用上一篇文章的dm_person_info表 在card_code列没加索引的时,查询时间如下,大概都在0.07秒。 我们来加上索引试试,加上后查询效率高了许多...

2019-07-26 10:27:59 40 0

转载 Mysql常见四种索引的使用

提到mysql优化,索引优化是必不可少的。其中一种优化方式 ——索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升。 我们知道项目性能的瓶颈主要是在"查(select)"语句,要提升"查"这一性能,mysql索引是必不可少的。接下来总结一...

2019-07-26 10:22:10 68 0

转载 深入浅析Mysql联合索引最左匹配原则

这篇文章主要介绍了Mysql联合索引最左匹配原则,使用联合索引的好处多多,具体内容详情大家跟随脚本之家小编一起学习吧 前言 之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和面试官交流,发现遗漏了些东西,这里自己整理一下这方面的内容。 最左前缀匹...

2019-07-26 10:20:18 72 2

转载 SpringCloud实战3-Hystrix请求熔断与服务降级

原文地址:https://www.cnblogs.com/huangjuncong/p/9026949.html?tdsourcetag=s_pcqq_aiomsg 我们知道大量请求会阻塞在Tomcat服务器上,影响其它整个服务.在复杂的分布式架构的应用程序有很多的依赖,都会不可避免地在某些时候...

2019-07-26 10:17:54 35 0

转载 JVM内存Xmx和Xmn设置

原文路径:https://www.dutycode.com/jvm_xmx_xmn_xms_shezhi.html 问题: 新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢? 分析: 依据的原则是根...

2019-07-26 10:12:25 205 0

转载 jvm对象内存的分配策略

Java所承诺的自动内存管理主要是针对对象内存的回收和对象内存的分配。 在Java虚拟机的五块内存空间中,程序计数器、Java虚拟机栈、本地方法栈内存的分配和回收都具有确定性,一般在编译阶段就能确定需要分配的内存大小,并且由于都是线程私有,因此它们的内存空间都随着线程的创建而创建,线程的结束而回...

2019-07-26 10:09:44 31 0

转载 Zookeeper 3、Zookeeper工作原理(详细)

1、Zookeeper的角色   » 领导者(leader),负责进行投票的发起和决议,更新系统状态   » 学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票   » Observer...

2019-07-24 19:32:09 206 0

转载 Zookeeper面试题

1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。客户端的读...

2019-07-24 17:34:45 48 0

转载 Zookeeper基础

官方文档上这么解释zookeeper,它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 上面的解释有点抽象,简单来说zookeeper=文件系统+监听通知...

2019-07-24 16:39:32 30 0

转载 eureka 和zookeeper 区别 优势【转】

作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。...

2019-07-24 16:19:21 26 0

转载 JVM 内存优化

原文路径:https://www.dutycode.com/jvm_xmx_xmn_xms_shezhi.html 问题: 新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢? 分析: 依据的原则是根...

2019-07-06 12:39:21 851 0

转载 JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

版权声明:转载请注明出处 https://blog.csdn.net/yrwan95/article/details/82826519 XmnXmsXmxXss有什么区别 Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。 -...

2019-07-06 11:46:00 259 0

转载 JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)

1.背景 2.为什么废弃永久代(PermGen) 3.深入理解元空间(Metaspace) 4.总结 ========正文分割线===== 一、背景 1.1 永久代(PermGen)在哪里? 根据,hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了): 上图引自网络,...

2019-07-06 11:15:16 81 0

转载 SpringCloud之使用Nginx+Zuul实现网关的集群

这个是在动态网关基础上实现的https://blog.csdn.net/kxj19980524/article/details/87867026 在公司中一般都是搭集群的,要么就是zuul一主一备,因为网关是统一入口如果单击版的话,网关一死直接瘫痪了.下面这个图就是让Nginx作为统一如果使用反向...

2019-07-04 10:05:55 5694 0

转载 ZUUL-API网关

更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) React 入门实战(干货) 构建中小型互联网企业架构(干货) python 学习持续更新 ...

2019-07-04 10:00:26 109 0

原创 Aop 按类型 方法 注解拦截

package cn.nin.aop.aspect; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; ...

2019-07-03 12:43:05 919 0

转载 maven 中配置多个mirror如何切换镜像

有个小伙伴遇到一个疑问:他的工作笔记本,在公司用部门搭建的maven私服做镜像,回到家用aliyun的镜像,每次都要改配置文件,很麻烦,希望能够不改动配置文件的情况下,动态切换mirror配置。 我们知道 settings.xml 中可以使用变量,可以尝试使用变量解决。 <m...

2019-07-03 11:52:30 3455 0

转载 国内Maven中央仓库推荐 速度最快最好的Maven仓

一、阿里maven仓 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" ...

2019-07-03 11:43:47 2236 0

转载 【SpringBoot】SpingBoot整合AOP

说起spring,我们知道其最核心的两个功能就是AOP(面向切面)和IOC(控制反转),这边文章来总结一下SpringBoot如何整合使用AOP。 一、示例应用场景:对所有的web请求做切面来记录日志。 1、pom中引入SpringBoot的web模块和使用AOP相关的依赖: <...

2019-07-03 10:18:06 1290 0

转载 spring AspectJ的Execution表达式

在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式 execution (* com.sample.service.impl..*.*(..)) execution()是最常用的切点函数,...

2019-07-03 10:14:36 64 0

原创 lambda表达式常用基础操作

List<Goods> list = Arrays.asList( new Goods(1, "苹果", 15), new Goods(2, "香蕉", 20), ...

2019-06-26 16:25:33 339 0

转载 Java中Lambda表达式的使用

简介 (译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.) Lambda表达...

2019-06-26 16:21:42 391 0

原创 线程的状态

Thread源码里定义了6种状态,如下: * A thread state. A thread can be in one of the following states: * <ul> * <li>{@link #NEW}<br> * ...

2019-04-24 16:20:55 32 0

原创 SpringBoot 加载自定义配置

在resources目录下自定义配置,如果让springboot加载呢?可以使用@PropertySource("classpath:goods.md") 完成,goods.md就是一个自定义配置,可以设置为自己的配置。 如下展示3种使用方式: 方式一: goods.md...

2019-04-04 11:17:21 210 0

原创 SpringBoot自动配置 自定义Starter

下面创建一个 spring-boot-starter-hello 的启动器,这个启动器的Person与配置文件的属性绑定,可以供引入这个启动器的项目进行配置。HelloService 使用sayHello方法输出Person内容。HelloAautoConfiguration是配置类,产生Hell...

2019-04-03 17:33:30 573 1

转载 Spring Boot的自动配置原理

Spring Boot的自动配置原理 在微服务概念兴起的今天,很多公司转型使用微服务作为架构。在技术选型上Spring Cloud 是非常好的选择,它提供了一站式的分布式系统解决方案,而Spring Cloud中的每个组件都是基于Spring Boot构建的,Spring Boot提供J2EE一...

2019-04-03 17:03:46 90 0

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