自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 问答 (1)
  • 收藏
  • 关注

原创 mysql 问题排查,定位问题sql(记录)

msql cpu占用过高,定位问题sql

2023-01-05 11:25:41 691 1

原创 SpringCloud学习-第七节-Sentinel(服务降级与熔断)

一、简单案例实现1.pom文件<dependencies> <!--SpringCloud ailibaba nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</ar

2021-12-20 13:05:26 509 1

原创 SpringCloud学习-第六节-Nacos

一、Nacos1.服务注册(1)pom文件<dependencies> <!--SpringCloud ailibaba nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery

2021-12-18 12:05:27 684

原创 SpringCloud学习-第五节-消息驱动SpringCloud Stream

一、SpringCloud Stream1.概述Spring Cloud Stream 是一个构建消息驱动微服务的框架。通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型目前只支持2.代码案例(1)消息生产者pom文件<dependencies> <dependency> <groupId>org.springframewo

2021-12-17 13:18:02 163

原创 SpringCloud学习-第四节-服务网关

一、Gateway1.概述SpringCloud Gateway 使用Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架。主要用于:反向代理、鉴权、流量控制、熔断、日志监控2.特性(1)动态路由:能够匹配任何请求属性;(2)可以对路由指定 Predicate(断言)和 Filter(过滤器);(3)集成Hystrix的断路器功能;(4)集成 Spring Cloud 服务发现功能;(5)易于编写的 Predicate(断言)和 Filter(过滤器);

2021-12-16 14:29:23 904

原创 SpringCloud学习-第三节-服务降级与熔断

一、Hrstrix1.概述(1)服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”.(2)Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避

2021-12-16 11:24:22 659

原创 SpringCloud学习-第二节-服务负载与调用

一、Ribbon(负载均衡+RestTemplate)1.概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。2.Ri

2021-12-15 17:20:57 516

原创 SpringCloud学习-第一节-服务注册与发现

一、Eureka服务注册与发现1.Eureka基础知识服务治理:用于管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。Eureka包含两个组件:Eureka Server和Eureka ClientEureka Server:提供服务注册服务,存储所有可用服务节点的信息Eureka Client:EurekaClient通过注册中心进行访问2.单机Eureka构建步骤(1)pom文件:<dependency> <groupId>

2021-12-15 14:47:52 115

原创 MySQL学习-第三节-数据库锁机制

一、锁的简单分类1. 对数据操作类型可分为:(1)读锁(共享锁):针对同一份数据,多个读操作可以同时进行而互不影响(2)写锁(排他锁):当前锁操作没有完成之前,他会阻断其它的读锁和写锁2. 对数据操作粒度可分为:(1)表锁(2)行锁二、表锁(偏读)1.特点(1)偏向MyISAM存储引擎,开销小,加锁快。(2)无死锁。(3)锁定粒度大,发生锁冲突概率最高,并发度最低。2.操作指令show open tables:查看表是否加锁lock table 表名 read(write):添

2021-12-10 13:49:24 642

原创 MySQ索引失效十大原因

索引失效(1)查询条件包含or,可能导致索引失效(2)如何字段类型是字符串,where时一定用引号括起来,否则索引失效(3)like查询以%开头(当满足覆盖索引的条件下,不会失效)(4)联合索引,需要符合最佳左前缀原则,查询时的条件列不是联合索引中的第一个列,索引失效。并且不能跳过联合索引中的任何一个。(5)在索引列上使用mysql的内置函数,索引失效。(6)对索引列运算(如,+、-、*、/),索引失效。(7)索引字段上使用(!= 或者 < >,not in)时,可能会导致索引失效

2021-12-10 08:42:29 257

原创 MySQL高级学习-第二节-Explain与sql查询截取分析

一、MySQL常见瓶颈(1)CPU:一般发生在数据装入内存或从磁盘读取数据(2)IO:磁盘IO瓶颈发生在装入数据远大于内存容量时(3)服务器硬件的性能瓶颈:top、free、iostat和vmstat来查看系统的性能状态二、Explain1.简介使用EXPLAIN关键字可以模拟sql优化器执行SQL语句查询,从而知道MySQL是如何处理SQL语句的。分析查询语句或是表结构存在的性能瓶颈2.语法EXPLAIN+SQL语句;如 explain select * from user;3.Exp

2021-12-08 09:42:44 699

原创 Mysql索引坑

主键查询不走索引可能原因:参数类型不正确表结构:表数据主键id作为参数,参数类型为int,不走索引主键id作为参数,参数类型为字符串,走索引

2021-12-07 16:44:20 367

原创 MySQL高级学习-第一节-数据库与索引简单介绍

一、MySQL逻辑结构分层连接层:提供与客户端连接的服务服务层:提供各种用户使用的接口。 如select、insert等;提供SQL优化器(MySQL Query Optimizer)引擎层:引擎层提供各种数据存储的方式。MySQL的存储引擎有很多,比较常用的比如有InnoDB, MyISAM存储层:最终的数据存储在存储层。二、 存储引擎1.MyISAM和InnoDB区别InnoDB支持事务,MyISAM不支持InnoDB支持外键,而MyISAM不支持InnoDB是聚集索引,使用B+

2021-12-07 10:49:25 352

原创 Redis学习-第四节-Redis应用问题与分布式锁

Redis应用问题1.缓存穿透1.1问题描述key对应的数据不存在,每次获取该key的请求都获取不到缓存,导致数据库压力变大1.2解决方案(1)对空值缓存缓存空结果:如果一个查询结果为空,我们仍进行缓存,并且设置空结果的缓存过期时间会很短,一般不超过5分钟设置可访问的白名单:使用bitmaps类型定义一个白名单,名单id作为bitmaps的偏移量,每次访问和bitmaps里面的id进行比较,不存在进行拦截采用布隆过滤器实时监控:监控Redis缓存命中率,当缓存命中率极速降低时,需要排查访

2021-12-03 16:31:44 862

原创 关于SpringBoot集成Redis集群连接超时问题

Springboot2.x默认导入了lettuce和jedis两种驱动:@Import({LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class})LettuceConnectionConfigurationJedisConnectionConfiguration我们从LettuceConnectionConfiguration和JedisConnectionConfiguration源代码中发现,两种驱动

2021-12-03 15:37:46 1056

原创 Redis学习-第三节-Redis持久化操作与主从复制

Redis持久化操作RDB和AOF同时开启时,默认使用AOFRDB(Redis Database)1.简介在指定的时间间隔内,将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读取到内存2.执行过程(1)Redis单独创建(fork)一个子进程进行持久化(2)先将数据写入到一个临时文件,当持久化过程结束,再用这个临时文件替换上次持久化好的文件(dump.rdb)(3)这个过程中,主进程不进行任何IO操作,确保了极高性能(4)如果需要进行大规模的数据恢复,

2021-12-02 15:57:13 854

原创 Redis学习-第二节-事务和锁机制

Redis订阅与发布1.简介Redis发布订阅是一种消息通讯模式:发送者(pub)发送消息,订阅者(sub)接收消息2.发布订阅命令实现subscribe channal1:订阅频道publish channal1 hello:向channal1频道发布消息hello打开第一个客户端可发现消息已接收注意:发布的消息没有持久化,所以在订阅之前的消息接收不到,只能接收到订阅之后的消息Jedis模拟手机验证码package com.zj.redis;import org.sprin

2021-11-30 16:44:52 753

原创 Redis学习-第一节-基本数据类型

一、redis介绍Redis数据库是一个非关系型数据库(nosql),是一个内存数据库. 以键值对的形式存储数据Redis支持的数据类型 string hash list set zset单线程架构:redis使用单线程架构和I/O多路复用模型来实现高性能内存数据库服务。二、redis为什么快1-纯内存访问2-非阻塞io:redis使用epoll作为I/O多路复用技术的实现以及使用自身事件模型;3-单线程避免线程切换和竟态产生的消耗三、key键操作keys *:查询当前库所有key

2021-11-29 15:16:42 125

原创 SpringBoot学习-第四节-Spring启动原理

一、SpringBoot启动过程1.第一步:创建SpringAppication应用(1)加载资源:资源加载器:resourceLoader主配置类:primarySources应用类型:webApplicationType初始引导启动器:bootstrapRegistryInitializers, ○ 去spring.factories文件中找 org.springframework.boot.Bootstrapper初始化器:ApplicationContextInitializer,

2021-11-23 12:43:33 288

原创 SpringBoot学习-第三节-核心功能

一、数据访问sql1.数据源自动配置(1)jar包导入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><dependency> <groupId>mysql</groupId> &lt

2021-11-20 13:08:42 271

原创 SpringBoot学习-第二节-核心功能

一、Web开发1.简单功能1.1静态资源访问(1)类路径下: /static或/public或/resources 或/META-INF/resources(2)访问:更路径/+资源名(3)原理:静态资源映射为/**:当请求发出后,会先去Controller寻找处理器,未找到时,会交给静态资源处理器处理,如果存在符合要求的静态资源,则返回,不存在,报404错误(4)静态资源访问前缀设置:spring: mvc: static-path-pattern: /res/**(5)设置

2021-11-16 16:35:48 480

原创 SpringBoot学习-第一节-入门

Spring Boot入门一、Spring Boot简介简化Spring应用开发的一个框架整个Spring技术栈的一个大整合J2EE开发的一站式解决方案二、Spring Boot优点创建独立Spring应用内嵌web服务器自动starter依赖,简化构建配置自动配置spring以及第三方功能提供生产级别监控,健康检查及外部化配置无代码生成,无需编写xml云环境天然集成三、时代背景1. 微服务微服务是一种架构风格一个应用拆分为一组小型服务每个服务可以独立部署和升级服务

2021-11-15 15:55:54 412

原创 SpringMVC学习-第二节-SpringMVC域对象数据共享

一、向request域对象共享数据的5种方式(1)servletAPI(2)ModelAndView(3)Model(4)Map(5)ModelMappackage zj.springmvc.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.ui.ModelMap;import org.spr

2021-11-11 15:47:26 77

原创 Cookie和Session学习

一、Cookie1.什么是Cookie(1)服务器通知客户端保存键值对的一种技术(2)客户端有了Cookie之后,每次请求都携带Cookie(3)Cookie的大小不能超过4k2.Cookie创建(1)服务器创建Cookie,并通过响应头Set-Cookie通知客户端(浏览器)保存Cookie(2)客户端(浏览器)发现Set-Cookie响应头,就会检查Cookie,如果该Cookie信息不存在就保存,存在就修改3.Cookie修改(1)方法一:服务器创建同名的Cookie,赋予新的值,通

2021-11-11 13:47:54 507

原创 SpringMVC学习-第一节-概述

一、什么是MVCMVC是一种软件架构思想,将软件按照模型,视图,控制器划分M:Model,模型层,指工程中的JavaBean,作用是处理数据,JavaBean分为两类(1)一类为实体类Bean:用于存储业务数据(2)一类为业务处理Bean:指Service和Dao对象,用于处理业务逻辑和数据访问V:View,视图层,指工程中的html和jsp,用于展示数据C:Controller,控制层,用于接受请求和响应浏览器二、SpringMVC特点与IOC容器等基础设施无缝对接基于原生Serv

2021-11-10 17:27:21 378

原创 注解和反射学习

一、内置注解@Override:只用于修饰方法,表示方法重写@Deprecated:由于修饰方法、属性、类,表示不推荐使用@SupperessWarings:抑制警告二、元注解@Target:用于描述注解的使用范围@Retention:用于描述注解的生命周期@Documented:是否生成文档注释@Inherited:子类可以继承父类的注解三、自定义注解package annotation;import java.lang.annotation.*;/** * @aut

2021-11-09 11:09:40 46

原创 多线程学习-第一节

一、线程简介程序:为完成特定任务,有某种语言编写的一组指令集和。即指一段静态的代码,静态对象。进程:是程序执行一次的过程,或正在运行中的程序。是一个动态的过程,有它自身的产生、存在和消亡的过程。程序是静态的,进程是动态的进程作为资源分配的单位,系统在运行时为每个进程分配不同的内存区域线程:进程可以进一步细分为线程,是一个程序内部的一条执行路径(1)一个进程同时并行执行多个线程,就是支持多线程(2)线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小。(3

2021-11-05 16:38:01 91

原创 Spring学习-第四节-事务操作

一、Spring事务方式编程式事务声明式事务(一般使用这种)二 、声明式事务管理1.有两种方式: 注解方式(一般使用这种方式)和xml配置文件方式2. Spring声明式事务底层使用AOP实现三、Spring事务管理API1.Spring提供了一个接口(PlatformTransactionManager),代表事务管理器,这个接口针对不同的框架提供了不同的实现类2. Spring配置文件中创建事务管理器,并开启事务注解...

2021-11-02 17:10:22 68

原创 Spring学习-第三节-AspectJ注解

配置类package spring.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.EnableAspectJAutoProxy;/** * 概述: * 作者:zhujie * 创建时间:2.

2021-11-02 12:54:41 255

原创 Spring学习-第二节-AOP

一、AOP概述什么是AOP面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率二、AOP底层原理AOP底层使用了动态代理(1)有两种情况的动态代理有接口:使用JDK动态代理,创建接口实现类的代理对象 无接口:使用CGLIB动态代理,创建当前类子类的代理对象 ![在这里插入图片描述](https://img-blog.csdnim

2021-10-30 15:05:01 65

原创 Spring学习-第一节-概述及IOC

一、Spring概述Spring是开源的对bean的生命周期进行管理的轻量级容器。Spring有两个核心部分:IOC和AOPIOC:控制反转,把对象的创建交给Spring进行管理AOP:面向切面,不改变源代码进行功能增强Spring特点(1)方便解耦,简化开发(2)AOP编程支持(3)方便程序测试(4)方便和其它框架的整合(5)方便进行事务的操作Spring组成模块二、IOC底层原理主要用到xml解析、工厂设计模式、反射IOC容器底层就是对象工厂Spring提供IOC

2021-10-28 13:56:16 82

原创 ArrayList和LinkedList区别

底层数据结果不同,ArrayList底层为数组,LinkedList为双向链表.适用场景不同,Array更适合随机查找,二LinkedList更适合添加,删除操作。ArrayList插入元素涉及元素下标后移,扩容,如果在尾部添加元素,效率较高,如果插入数据的下标靠前,并且涉及到扩容,效率低LinkedList插入元素需先遍历下标位置,在进行数据插入,在插入数据位置下标靠前,此时效率较高;如果靠后,需要遍历下标,确定元素位置,此时效率较低两者都实现了List接口,但是LinkedList还实现了De.

2021-10-27 15:20:50 60

原创 mysql存储过程和函数

一、创建语法DELIMITER 结束标记(自定义)CREATE PROCEDURE 存储过程名(参数列表)BEGIN存储过程体(一组合法的sql语句)END 结束标记(自定义)注意:参数列表包含三部分:参数模式、参数名、参数类型参数模式:IN:该模式参数作为输入参数,需要调用方传入值OUT:该模式参数作为输出参数,作为返回值INOUT:该模式参数作为输入输出参数,需要调用方传入值,并作为返回值返回如果存储过程体只有一句sql,可以省略BEGIN END存储过程体中的每条sql语

2021-10-27 14:40:33 52

原创 mysql事务(TCL事务控制语言)

一、事务 事务:一个或一组sql组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行二、事务的ACID属性1. 原子性(Atomicity):原子性是指事务是一个不可分割的单位,事务中的操作要么都发生,要么都不发生2. 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态3. 隔离性(IsoLation):事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰(受

2021-10-26 17:35:28 98

原创 mysql约束

mysql约束一、六大约束NOT NULL :非空约束,保证字段值不能为空DEFAULT:默认约束,保证字段有默认值PRIMARY KEY:主键约束,保证字段的值唯一,并且不能为空UNIQUE:唯一约束,保证字段的值唯一,并且可以为空CHECK:检查约束FOREIGN KEY:外键约束,保证该字段值必须来自于主表关联字段的值;在从表添加外键约束,用于引用主表中某一列的值二、约束分类列级约束:六大约束语法上都支持,但是外键约束不生效表级约束:不支持非空和默认,其他都支持三、 约束

2021-10-26 15:43:51 305

原创 mysql连接查询

mysql连接查询(多表查询)一、笛卡尔乘积现象表1有m行,表2有n行,两表连接查询结果有m*n行发生原因:没有有效的连接查询条件,导致笛卡尔乘积现象二、连接查询分类按年代分类1. sql192标准:仅支持内连接2. sql199标准:支持内连接+外连接(左外、右外连接)+交叉连接按功能分类1. 内连接(inner)​ 语法:​ select 查询列表​ from 表1 别名​ inner join 表2 别名​ on 连接条件;​ 注意:​ inne

2021-10-26 12:51:46 58

原创 mysql分组函数

mysql分组函数(聚合函数)一、分类sum:求和avg:平均值max:最大值min:最小值count:计算个数二、特点sum、avg一般用于数值型数据处理;max、min、count可以处理任何类型以上函数都会忽略null值可以和di’s’tinct搭配实现去重统计和分组函数一同查询的字段要求是group by后的字段having关键字对分组后的结果进行删选,一般用在group by后分组查询的查询条件可以分为两类:分组前查询:分组前查询的数据源为原始数据表,分组前查询

2021-10-26 11:11:33 152

原创 mysql单行函数

mysql单行函数一、字符函数length:获取参数值的字节个数concat:拼接字符upper、lower:大小写转换substr、substring:截取字符substr(str,ind):从ind位置开始截取到字符末尾substr(str,start,end):从start位置开始截取到end位置instr(str,childstr):返回子字符在字符中此一次出现的索引,如果找不到返回0trim:去除字符中指定的字符trim(str):去除字符前后的空格trim(chi

2021-10-25 17:40:24 101

原创 网络编程学习笔记

网络分层

2021-07-21 12:41:18 34

原创 IO流笔记

字节流InputStreamOutputStream字符流ReaderWriter

2021-07-20 11:07:07 44

空空如也

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

TA关注的人

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