自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

知易行难

这个人很懒,没有什么描述~

  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于Web Uploader实现断点上传

根据Web Uploader实现文件断点上传功能

2022-07-09 23:09:29 403 1

原创 MySQL索引原理

索引类型、索引原理、索引分析、查询优化

2022-01-19 13:13:33 254

原创 MySQL架构原理

MySQL运行机制、InnoDB、Redo log、Undo log、Bin log

2022-01-18 21:42:58 195

原创 Mysql集群架构

集群架构设计

2022-01-17 11:25:23 648

原创 Linux安装mysql默认配置文件位置

Linux安装mysql默认配置文件位置在linux下面安装mysql8.0 如果在/etc下面没有my.cnf配置文件解决方式如下:通过which mysqld 命令查看mysql的安装位置通过 /usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options' 命令查看mysql使用的配置文件默认路径,其中/usr/local/mysql/bin/mysqld 是第一步中获取到mysql的安装路径。可以看出配

2021-12-29 16:19:18 12303

原创 深入理解Mysql锁与事物隔离级别

深入理解Mysql锁与事物隔离级别

2021-12-26 21:10:36 572

原创 i++、++i

一道面试题:int i =1; ①i = i++; ②int j =i++; ③int k = i + ++i * i++; ④System.out.println(i);System.out.println(j);System.out.println(k);结果是: i=4,j=1, k=11第一步:局部变量表中初始化 i =1,同时将 i=1压入操作数栈,此时, i++ 会把局部变量表中 i=1 变为2,但是只是暂时的, 操作数栈的 i=1返回结果,把 i=2覆盖,所以最终

2021-08-16 16:52:56 186

原创 基于AOP实现日志切面功能

基础概念:Target(目标对象):代理的目标对象。Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类。Joinpoint(连接点):所谓的连接点是指那些被拦截到的点。在spring中,这些点指的就是方法。通俗来讲就是可以被增强的方法叫做连接点。Pointcut(切入点):所谓切入点就是指我们要对拿些连接点进行拦截的定义。切点只是连接的一部分,真正被增强的方法 。Advice(通知/增强):所谓通知是指拦截到Joinpoint只后所要做的事情就是通知。封装增强业务逻辑的方法As

2021-07-11 17:13:10 1427 1

原创 synchronized和Lock的区别及生产者消费者模型的三种实现方式

1、原始构成sync是关键字属于JVM层面,monitorenter(底层通过monitor对象来完成,其实wait/notify等方法也依赖monitor对象,只有在同步代码块或方法中才能调用wait/notify等方法)montitorexitLock是具体类(java.util.concurrent.locks.Lock)是API层面的锁2、使用方法sync不需要手动去释放锁,当sync代码完成后系统会自动让线程释放对锁的占用,不会产生死锁。ReentrantLock 则需要手动去

2021-07-11 16:42:25 156

原创 Collection 源码探究

ArrayList注意事项:可以加入null值,并且可以加入多个 底层是有数组来实现数据存储的。ArrayList基本等同于Vector,处理ArrayList是线程不安全(执行效率高),多线程情况下,不建议使用ArrayList.源码分析:ArrayList1. ArrayList维护了一个Object类型的数组 elementData。transient Object[] elementData。 transient 表示短暂、瞬间的意思,修饰属性时,表示不会被序..

2021-06-09 11:34:32 218

原创 Resis分布式缓存

本地缓存:单体应用时没有什么问题,但是当微服务集群的时候,就会出现数据不一致性以及每次还需要重复查询的问题。分布式缓存:可以很好的解决本地缓存的问题,使用缓存中间件。SpringBoot使用Redis.1、引入redis-starter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s.

2021-04-21 16:52:24 437

原创 Spring AOP执行顺序、IOC循环依赖

AOP执行顺序1、aop常用注解:@Before@After@AfterReturning@AfterThrowing@AroundSping4 与Spring5 aop对应的执行顺序有所不同。SpringBoot 1.x.x版本对应的是 Spring4 ,SpringBoot 2.x.x 版本对应Spring5.IOC循环依赖官网文档:简单翻译过来: 循环依赖如果主要使用构造函数注入,可能会创建无法解析的循环依赖场景。例如:类A需要一个类B通过

2021-04-09 11:24:24 360

原创 Sentinel

官方文档:https://sentinelguard.io/zh-cn/docs/quick-start.htmlSentinel是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流

2021-03-31 12:50:07 391 1

原创 JSR303校验和全局异常处理

先区分几个注解:@NotBlank: 只用于String,不能为null且trim()之后的size>0.@NotNull: 不能为 null,但是可以为empty,没有size的约束.@NotEmpty:用于集合类、String类不能为null,且长度>0.但是带有空格的字符串校验不出来(空格字符串有长度).JSR303给Bean添加校验注解 javax.validation.constraints 并填写自己的message提示controller 中接收的对象添加注解@V

2021-03-31 12:47:26 263

原创 GateWay

概述:Gateway是Spring生态系统上构建的API网官服务,基于Spring5,SpringBoot2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等。SpringCloud Gateway是Spring Cloud的一个全新项目,基于Spring 5.0+Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务架构提供—种简单有效的统一的API路由.

2021-03-24 16:41:47 172

原创 Seata

官网Seata 是什么?Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA和 XA 事务模式,为用户打造一站式的分布式解决方案。产生原因:单体应用被拆分成为微服务应用,原来的模块被拆分为独立的应用,分别使用独立的数据源,业务操作需要调用其它服务来完成。此时每个服务内部的数据一致性由本地事物保证,但是全局的数据一致性问题却没有办法的到保证。也就是一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就

2021-03-24 16:40:27 500

原创 Nacos集群_Linux版本安装

官方文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html官网架构图集群部署架构图因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面http://ip1:port/openAPI直连ip模式,机器挂则需要修改ip才可以使用。http://VIP:port/openAPI挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。http://nacos.com:port/openAPI域名+

2021-03-19 15:03:02 183

原创 Nacos

简介取自Naming和Configuration的前两个字母,最后的s为service。是什么东西一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos就是注册中心 + 服务配置中心的组合 ===》Nacos=Eureka+Config+Bus下载地址https://github.com/alibaba/nacos/releases各个注册中心对比Nacos安装从官网下载Nacos解压安装包,直接运行bin目录下的startup.cmd命令运行成功后直接

2021-03-19 13:17:21 374

原创 Config分布式配置中心报错问题

报错信息如果是reject HostKey: github.com可能原因:同一台电脑使用过两次不同的公钥。解决方法:Git Bash 输入命令 ssh -T git@github.com 回车 ,接着输入yes。如果报的错误是org.eclipse.jgit.api.errors.TransportException: git@github.com:xx/springcloud-config.git: Auth fail原因:公钥不对。问题如果本地测试可以连接成功,springcloud连接失败,

2021-03-16 23:42:53 474

原创 Hystrix

前言:** 分布式系统面临的问题**复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”.对于高流量的应用来说,单一的后避依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,

2021-03-10 15:18:26 179

原创 CAS

概念CAS,Compare And Swap的简称,CPU并发原语。用来判断内存中某个位置的值是否符合期望值,如果是则更新为最新值,这个过程属于原子操作。CAS并发原语体现在Java语言中就是sun.misc.Unsafe类的各个方法。调用UnSafe类(rt.jar包中的类)中的CAS方法,JVM会帮我们实现出CAS汇编指令,这是一种完全依赖于硬件的功能,通过它实现了原子操作,再次强调,由于CAS是一种系统原语,原语属于操作系统用于范畴,是由若干条指令组成,用于完成某个功能的一个过程,并且原语

2021-03-09 14:25:06 260

原创 OpenFeign

OpenFeign是什么Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了SpringMVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。Feign能干什么Feign旨在使编写J

2021-03-09 12:51:19 161

原创 Ribbon入门

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balacer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮训,随机连接等)去连接这些机器。可以使用Ribbon实现自定义的负载均衡算法。LB负载均衡(Load B

2021-03-09 09:53:28 268 2

原创 Eureka、Consul、Zookeeper三者异同点

组件名语言CAP服务健康检查对外暴露接口Spring Cloud集成EurekaJavaAP可配支持HTTPConsulGoCP支持HTTP/DNSZookeeperJavaCP支持客户端已集成CAP:C:Consistency (强一致性)A:Availability (可用性)P:Partition tolerance (分区容错性)最多只能同时较好的满足两个。CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,...

2021-03-08 14:42:58 238 2

原创 安装第三方jar包到本地仓库

两种方式:进入jar包所在目录运行mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson-Dversion=1.1.37 -Dfile=fastjson-1.1.37.jar -Dpackaging=jar打开cmd直接运行mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson-Dversion=1.1.37 -Dpac

2021-02-22 23:17:15 115

原创 JAVA排序

排序

2021-01-04 12:00:56 154

原创 2020-12-24

前端树形结构递归筛选指定id的子节点function recursion(temp(数组),id){ const newTemp = temp.filter(x => x.id !== id); newTemp.forEach(x => x.children && (x.children = this.recursion(x.children,id)))}

2020-12-24 11:58:44 74

转载 Oracle 中exists、not exists、in、not in 对于 null 值的判断

Oracle 中exists、not exists、in、not in 对于 null 值的判断https://blog.csdn.net/qq_34745941/article/details/85085866

2020-07-16 17:04:58 362

global_location.sql

包含中英文,简称,树状结构,满足日常需求

2021-09-02

空空如也

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

TA关注的人

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