自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis缓存穿透、缓存击穿、缓存雪崩及其对应的解决方案

1.缓存穿透概念:用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多时,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。解决方案:1.布隆过滤器布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的

2022-05-05 15:21:05 731

原创 死锁,死锁产生的条件,如何预防死锁,写个简单的死锁

1.什么是死锁?死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。2.死锁产生的条件?死锁的4个必要条件(必需同时满足才会产生死锁)互斥条件:一个资源每次只能被一个线程使用;占有等待条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放;不剥夺条件:进程已经获得的资源,在未使用完之前,不能强行剥夺;循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。3.如何避免死锁?1、尽量不在同一个线程中同时锁

2022-05-02 23:31:09 572

原创 MySQL调优之性能分析

目录1.SQL执行频率2.SQL性能分析慢查询日志profile详情开启profile使用profileexplain1.SQL执行频率MySQL客户端连接成功后,通过 show[session|global] status 命令可以提供服务器状态信息。global查看全局的状态信息,session查看当前会话的状态信息通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次SQL语句:SHOW GLOBAL.

2022-04-13 14:16:05 862

原创 Mybatis快速入门

----------------------------------MyBatis----------------------------------------MyBatis是一款优秀的持久层框架,用于简化JDBC开发持久层: 负责将数据保存到数据库的那一层代码 JavaEE三层架构:表现层、业务层、持久层框架:半成品软件,是一套可重用的、通用的、软件基础代码模型在框架的基础上构件软件编写更加高效规范、通用、可扩展------------------快速入门1.创建MAV...

2022-04-11 12:41:18 553

原创 两张图总结HTTP数据格式

注:该图来自黑马程序员PPT

2022-04-11 12:09:04 51

原创 Cookie和Session以及他们的区别

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息Session是服务器为了保存用户状态而创建的一个特殊的对象。当浏览器第一次访问服务器时,服务器创建一个session对象(该对象有一个唯一的id,一般称之为sessionId),服务器会将sessionId以cookie的方式发送给浏览器。当浏览器再次访问服务器时,会将sessionI

2022-04-11 12:05:19 509

原创 Java虚拟机(JVM)结构体系

1.JVM的体系结构垃圾不会存在于栈和程序计数器中,只存在于方法区和堆中所谓JVM调优 99%是对堆进行调优。(方法区是特殊的堆)程序计数器 作用:记住下一条JVM指令的执行地址 java源代码→二进制字节码(jvm指令)→解释器→机器码→CPU 2.特点:程序计数器是线程私有的,随着线程创建而创建,随着线程销毁而销毁(每个线程都有自己的程序计器)不会存在内存溢出,是一块较小的内存空间栈虚拟机栈:是线程运行需要的内存空间栈帧:每个方法运行时需要的内.

2022-04-11 11:54:41 965

原创 Feign日志配置和最佳实践

6.Feign日志配置1.配置文件feign.client.config.xxx.loggerLevel2.java代码配置Logger.level这个Bean 1.在@EnablefeignClients注解声明则代表全局 2.在@FeignClient注解中声明则代表某服务最佳实践:1.让controller和FeignClient继承同一接口2.将FeginClient、POJO、Feign的默认配置都定义到一个项目中,供所有消费者使用当定义的FeignCl

2022-04-10 17:09:16 477

原创 统一网关Gateway

网关功能身份认证和权限校验服务路由、负载均衡 请求限流搭建步骤1.创建新的模块,引入nacos服务发现和gateway依赖(报错加入版本号 3.0.2)即可2.配置application.yml,详情见idea项目过滤器执行顺序请求路由后,会将当前路由过滤器和DefaultFilter、GlobaFilter,合并到一个过滤器(集合)中,排序后依次执行每个过滤器每一个过滤器都会指定一个int类型的order值,值越小,优先级越高Glob.

2022-04-10 17:07:16 147

原创 Nacos

1.打开方式:在bin目录下运行指令:startup.cmd -m standalone2.Nacos服务注册或发现 ①引入nacos.discovery依赖 ②配置nacos地址spring.cloud.nacos.server-addr3.Naco服务分级存储模型 ①一级是服务,例如userservice ②二级是集群,例如杭州或上海 ③三级是实例,例如杭州机房的某台部署了userservice的服务器4.如何设置实例的..

2022-04-10 17:03:34 97

原创 什么是微服务?

1.认识微服务1.服务架构演变 [1]单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署 优点:架构简单 部署成本低 缺点:耦合度高 [2]分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,成为一个服务 优点:降低服务耦合 有利于服务升级拓展 2.微服务 微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征: 单一职责:微服

2022-04-10 16:32:01 44

原创 Docker的一些属性的概念

Dockerdocker如何解决依赖的兼容问题? 将应用的函数库和依赖、配置与应用一起打包 将每个应用放到一个隔离容器去运行,避免相互干扰(沙箱机制)docker如何解决不同系统环境的问题? 将用户程序与所需要调用的系统(不如Ubuntu、Centos)函数库一起打包 运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行镜像: Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像容器:

2022-04-09 17:15:06 570

原创 关于微信支付的理解

申请公众号或者小程序成功后 可以看到自己的APPIDAPPID是你的公众号或者小程序等软件应用的id申请商户号后 需要将APPID和商户号绑定 即:将应用程序和商户号绑定商户申请商户API证书时,会生成商户私钥,并保存在本地证书文件夹的文件apiclient_key.pem中商户API证书是指由商户申请的,包含商户的商户号、公司名称、公钥信息的证书。微信支付API v3使用由 证书授权机构 (Certificate Authority ,简称CA)签发颁发的证书。商户可自行生成证书请求串

2022-04-09 17:01:24 581

原创 数据结构:排序的总结

排序的分类:内部排序:指将需要处理的所有数据加载到内部存储器中进行排序外部排序:数据量过大,无法加载到内存中,需要借助外部存储进行排序冒泡排序:public void maoPaoSort(int[] a){for(int i =0;i< a.length-1;i++){boolean flag = true;for(int j =0;j<a.length-i-1;j++){...

2022-04-09 16:57:00 914

原创 SSM配置文件的注意事项

----------------------SpringMVC需要配置的有:1.组件扫描 <context:component-scan base-package=" "/>2.配置mvc注册驱动<mvc:annotation-driven/>3.开发静态资源访问权限<mvc:default-servlet-handler/>----------------------Mybatis需要配置的有://在spring中配置1.加载properties文件 pr

2022-04-09 16:51:22 250

原创 JavaWeb相关知识

----------------------------SQL-----------------------------------SQL语言的分类SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。1. 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>2 .数据操纵语言.

2022-04-09 16:48:21 640

原创 JavaSE基础知识笔记

抛异常:e.getMessage()e.toString()e.printStackTrace()Colletion常用方法:add remove contains clear isEmpty size--------------------List--------------------------------------------List特点:1.有序:存储和取出的元素顺序一致2.可重复:存储的元素可以重复List特有方法:add:插入指定位置remove:删除指定索引处的元素

2022-04-09 16:47:33 144

原创 关于SpringMVC基础知识

-----------------------------------SpringWVC---------------------------------------------------------------开发步骤1.导入SpringMVC相关坐标 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</...

2022-04-09 16:45:42 904

原创 Spring的相关知识

//Spring开发步骤 1.导入坐标 2.创建Bean 3.创建applicationContext.xml 4.在配置文件中进行配置 5.创建ApplicationContext对象getBean------------------------------------Spring配置文件---------------------------//Bean标签配置范围scope: 1.singleton:默认值,单例的 Bean创建一个对象 Bean的生命...

2022-04-09 16:44:15 101

原创 redis入门笔记

1.redis默认有16个数据库 用的是第0个数据库 可以用select进行切换数据库 select 3 切换到第三个数据库 dbsize 查看数据库大小 keys * 查看所有的key flushdb 清空当前数据库 flushall 清空所有数据库 move key db 移动当前数据到其他数据库 set name xx 存入新的键值对 del key 移除key EXPIRE key seconds ...

2022-04-09 16:43:12 604

原创 关于多线程的理解

线程不一定立即执行,CPU安排调度callable实现方法继承callable接口,需要返回值类型重写call方法,需要抛出异常创建目标对象创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1);提交执行:Future<Boolean> result1 = ser.submit(t1);获取结果:boolean r1 = result1.get();关闭服务:ser.shutdownNow();函数式接口

2022-04-09 16:41:22 227

空空如也

空空如也

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

TA关注的人

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