自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PowerMan_Frank

一个有想法的程序员

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

原创 Redis 缓存雪崩、缓存穿透、缓存击穿 问题分析及处理方案

缓存雪崩问题分析​ 当缓存集中在一段时间内失效 或者缓存服务器出现宕机,所有的请求都直接落入了数据库中, 导致数据库扛不住,造成数据库挂掉解决方案事前 Redis 高可用,主从+哨兵,Redis cluster,避免全盘崩溃。事中本地 ehcache 缓存 + hystrix 限流&降级,避免 MySQL 被打死。通过缓存reload机制,预先去更新缓存,再即将发生大并发访问前手动触发加载缓存事后 Redis 持久化,一旦重启,自动从磁盘上加载数据,快速恢复缓

2021-03-09 13:57:40 68

原创 redis 缓存穿透、缓存雪崩、缓存击穿 问题分析及处理方式

缓存穿透在查询一个一定不存在的数据,由于缓存是不命中时被动写入,并且处于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,缓存层失去意义。当在大流量流入时,可能因为频繁访问存储层导致DB直接宕机,这样会形成被人利用不存在的key频繁攻击应用的漏洞。解决方法最为常简的是采用布隆过滤器,将所有可能存在的数据哈希到一个足够发的 bigmap ...

2020-03-25 23:29:07 120

原创 java面试导航①

一 、java的几个重要关键字(static、final、volatitle、fransient)。二、JVM 的内存划分、class加载机制、GC策略。  1、JVM内存划分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区       (Method Area)、堆(Heap)。...

2018-11-25 16:53:31 150

原创 Zookeeper -ZAB协议

Zookeeper -ZAB协议

2022-04-27 15:07:26 1619

原创 JVM 相关笔记

JVM, 垃圾回收

2022-04-26 16:17:43 427

原创 大话设计模式

大话设计模式

2022-04-25 22:03:25 3190

原创 springboot_aop_动态(多)数据源

springboot 动态数据源实现读写分离

2022-03-09 14:19:23 910

原创 拦截器中获取传递参数(解决post请求参数问题)

GET中传递的参数可以直接通过request.getParameter获取。Post 传递的产生不能过直接从request.getInputStream() 读取,必须要进行重新写。(request.getInputStream()只能够读取一次)方式: 通过重写 HttpServletRequestWrapper 类 获取getInputStream中的流数据,然后在将body数据进行重新写入传递下去。继承 HttpServletRequestWrapper通过重写 HttpServle.

2022-01-18 14:42:57 4674 3

原创 Async-profiler 火焰图

Async-profiler 火焰图火焰图Async-profilerasync-profiler 是一款开源的 Java 性能分析工具,原理是基于 HotSpot 的 API,以微乎其微的性能开销收集程序运行中的堆栈信息、内存分配等信息进行分析。使用采集数据,生成文件./profiler.sh -d 30 -f profile.svg 3456对 PID 为 3456 的 java 进程采样 30 秒,然后生成 profile.svg 结果文件默认情况下是分析 CPU 性能,

2021-12-10 18:19:36 623

原创 基本排序算法-Java版

冒泡排序稳定当前元素和下个元素比较,将较大的元素放在后面 // 冒泡排序 public int[] bubbleSort(int[] nums){ for (int i = 1; i < nums.length; i++) { // 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已经完成。 boolean flag = true; for (int j

2021-12-01 15:12:33 366

原创 Mysql事务隔离级别和锁机制(间隙锁、临建锁)

MySql 事务ACID原子性一致性隔离性持久性并发事务带来的问题脏读事务A读取到了事务B已经修改但尚未提交的数据不可重复读事务A内部的相同查询语句在不同时刻读出的结果不一致,不符合隔离性幻读事务A读取到了事务B提交的新增数据,不符合隔离性MySql 隔离级别查看事务隔离级别: show variables like ‘tx_isolation’;mysql 默认隔离级别是 可重复读隔离级别脏读不可重复读幻读读未提交

2021-12-01 13:53:10 1116

原创 SpringBoot -jar 启动引入外部配置文件

配置文件在jar包 外部直接运行jar 包java -jar springboot.jarspringboot 启动默认去一下几个路径获取资源配置classpath:/查询classpatch目录classpath:/config/查询 classpatch/config 目录file:./去jar包同级路径下去获取 application 文件file:./config/去jar包同级的config文件夹下去获取 application 文件指定特定

2021-11-23 14:26:19 524

原创 Mysql -索引结构分析及优化

数据库类型innoDB结构文件索引数据文件(索引和数据在一个文件中)MyISAMMyISAM索引文件和数据文件是分离的(非聚集)结构文件数据文件索引文件索引索引是帮助MySql高效获取数据的排好序的数据结构索引结构二叉树 (深度高,当插入的数据都是有序时,变成了链表)红黑树 (动态二叉平衡树, 但是深度太高)Hash表对索引的key进行一次hash计算就可以定位出数据存储的位置很多时候Hash索引要比B+ 树索引更高效仅能满足 “=”

2021-11-22 22:38:34 274

原创 Git 命令操作指南

本地仓库初始化仓库git init添加文件到仓库git add readme.txt提交代码到仓库git commit -m “a new file”查看当前状态git status删除文件git rm test.txt // 删除了本地文件git commit //从版本库里面删除撤销修改 (--很重要,没有 --,就变成了“切换到另一个分支”的命令)git checkout – readme.txt版本回退g

2021-11-16 22:59:02 204

原创 项目设计需要的各类图-(架构图、流程图、用例图、部署图、类图、时序图)

2021-10-21 10:52:02 972

原创 线程池进阶

线程池线程创建方式继承 Thread 类型实现 Runnable接口实现 Callable 接口Java线程生命状态NEW ~新建RUNNABLE ~运行BLOCKED ~ 阻塞WAITING ~ 等待TIMED_WAITING ~超时等待TERMINATED ~终结状态图线程池Why频繁创建和销毁线程 会大大的降低系统效率可以重用线程,减少线程的创建和销毁的开销,提高性能提高响应速度,当

2021-08-24 19:55:50 76

原创 Maven 进阶

Maven 进阶Maven 冲突冲突检查使用 mvn dependency:tree 检查冲突包冲突解决exclusion 排除就近顺序原则版本管理 <dependencyManagement>常用maven 命令新增maven项目mvn archetype:create -DgroupId= xxx -DartifactId= xxx -DpackageName= xxx测试/编译/打包/安装mvn [clean] tes

2021-08-23 11:28:43 71

原创 Mysql -SQL 优化及分析

1.SQL优化原因:性能低、执行时间太长、等待时间太长、SQL语句欠佳(连接查询)、索引失效、服务器参数设置不合理(缓冲、线程数)SQL :编写过程:select …from …join …on …where …group by …having …order by …limit …解析过程: from … on… join …where …group by …having …select …order by limit …2.SQL性能问题分析SQL的执行计划 : explain

2020-09-18 16:11:43 92

原创 MySQL 索引失效问题处理

MySQL 索引失效问题和原因1、SQL语句中的被索引字段发生隐式类型转换。2、被索引字段使用的了表达式计算3、被索引字段使用了函数(1、2、3)原因: 因为索引的使用依赖了整个B+树上的索引树遍历,索引数遍历依赖了底层叶子节点的有序性,进行了上述(1,2,3)操作后有可能新的排列顺序和原来的排列顺序不一样,破坏的了有...

2020-04-27 11:49:04 279 1

原创 Linux (CentOS7) 防火墙开启/关闭/查命令

systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。防火墙:查看状态: systemctl status firewalld服务启动: systemctl start firewalld服务关闭:systemctl stop firewalld开机禁用: systemctl disable firewal...

2020-04-21 15:21:55 326

原创 设计模式--观察者模式 -- 监听器模式

为方便方便阅读,使用一个Java文件中创建多个class形式!本文利用的鼠标的监听器事件实现了观察者模式。类图如下:Event对象以及监控器(**Listener)对象package com.example.demo.design.model.observe;import java.lang.reflect.Method;import java.util.Map...

2020-03-26 17:32:15 396

原创 Spring 面试重点总结!

BeanFactory 和 ApplicationContext 有什么区别功能:BeanFactory 负责读取bean的配置文档,管理bean的加载、实例化、维护bean 之间的依赖关系,负责bean 的生命周期。(BeanFactorty接口提供了配置框架及基本功能,但是无法支持spring的aop功能和web应用。)ApplicationContext 作BeanFactory...

2020-03-25 23:22:38 159

原创 手写(模拟)实现Mybaits中的拦截器 (动态代理+责任链模式)

本文为方便看,多个合并在一个内的模式接口(类)package com.example.demo.Intercepter;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;/** * @author fuwenshe...

2020-03-25 19:43:26 379

原创 KryoUtil ---Kryo 工具类(文件序列化)

添加Kryo工具包:<!-- https://mvnrepository.com/artifact/com.esotericsoftware/kryo --><dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</art...

2019-08-05 14:32:48 1210

原创 MySql 删除重复数据 (留下其中id最小的数据)

### 创建测试表 t_student CREATE TABLE `t_student` ( `id` bigint(12) NOT NULL AUTO_INCREMENT, `name` varchar(12) NOT NULL DEFAULT '""', `sex` int(4) DEFAULT NULL, `age` int(4) NOT NULL DEFAULT '0...

2019-08-01 16:27:52 323

原创 Java压缩工具类-ZipUtils

package com.xy.boot.open.util;import org.apache.commons.io.IOUtils;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.zip.GZIP...

2019-07-30 18:34:51 316

原创 SpringBoot/SpringMVC 之拦截器(HandlerInterceptor )

package com.xy.boot.open.interceptor;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.xy.boot.common.enums.HttpCodeEnum;import com.xy.boot.open.constant.HttpConstant;import com.xy...

2019-07-30 18:32:00 125

原创 Java常用加密工具 ( MD5,sha1,SHA256)

package com.xy.boot.cmiap.util;import lombok.extern.slf4j.Slf4j;import org.apache.commons.codec.Charsets;import org.apache.commons.codec.binary.Hex;import java.io.UnsupportedEncodingException;...

2019-05-14 12:08:49 3124

原创 Filter中获取传递参数(解决post请求参数问题)

1. GET中传递的参数可以直接通过request.getParameter获取。2. Post 传递的产生不能过直接从request.getInputStream() 读取,必须要进行重新写。(request.getInputStream()只能够读取一次)方式: 通过重写HttpServletRequestWrapper 类 获取getInputStream中的流数据,然后在将...

2019-05-14 12:03:27 14544

原创 SVNKit 操做svn 实例

首先实现svn 权限验证: /** * 验证登录svn */ public static SVNClientManager authSvn(String svnRoot, String username, String password) { // 初始化版本库 ...

2019-05-14 10:39:29 1124

SanDiskSecureAccess.zip

SanDiskSecureAccessV3_win.exe 1、闪迪U盘官方SanDisk SecureAccess加密软件不单单只有资料加密码功能,还可以在线备份资料,如果哪天真的弄丢失了U盘,有这两个软 件结合起来,你就可以绝对放心信息的安全,还能轻松从在线备份里找回之前保存的信息。   2、SanDisk SecureAccess 软件可在USB闪存盘上创建一个拥有密码保护的加密文件夹或保管室,以防止文件受到未授权访问。该软件还包含了由Dmailer2提供的最高达2GB的加密在线备份存储量。在使用时需要进行注册,不注册不能用。SecureAccess 免费拥有2GB容量的存储空间。其它容量的不行。

2020-03-25

空空如也

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

TA关注的人

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