自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (11)
  • 收藏
  • 关注

原创 Arthas使用教程—— 阿里开源线上监控诊断产品

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。arthas:help 、dashboard、jvm、 jad、monitor、watch、trace、tt、redefine 、stop

2024-02-06 15:57:18 2333 1

原创 JVM垃圾回收机制及调优工具Arthas的使用

JVM垃圾回收机制:引用计数器法、可达性分析算法垃圾收集算法: 标记-清除、复制、标记-整理、分代、三色标记法垃圾收集器:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1、ZGC、ShenandoahJVM调优:基础命令:jps、jinfo、jstat、jstack、 jmap、toparthas:help 、dashboard、jvm、 jad、monitor、watch、trace、tt、redefine 、stop

2024-02-06 15:45:36 1321 1

原创 布隆过滤器 Bloom Filter

1、什么是布隆过滤器?2、布隆过滤器的工作原理3、布隆过滤器的优点4、布隆过滤器的缺点5、布隆过滤器的使用场景6、布隆过滤器的数据结构7、布隆过滤器的扩容8、SpringBoot 整合 布隆过滤器缓存穿透防护、重复数据检测、垃圾邮件过滤、实时监控与报警系统、推荐系统、数据库索引优化、社交网络和互联网服务、数据分析与挖掘、网络安全

2024-01-12 16:40:02 1361

原创 RabbitMQ解决消息丢失以及重复消费问题

RabbitMQ如何解决消息丢失问题:生产者确认机制、持久化消息、消费者ACK确认机制、集群部署、预拉取策略调整、监控与告警基于Spring AMQP框架整合ACK/NACK机制RabbitMQ 如何实现幂等性设计:业务层幂等处理、确认模式选择、死信队列与重试策略、幂等服务设计、事务与补偿机制幂等服务设计思路:通过雪花算法生成分布式唯一ID、通过枚举类,设计Message消费状态我们可以给每一个消息绑定一个分布式唯一ID,在通过Redis记录该消息的消费状态,保证每条消息只能被消费一次

2024-01-09 16:28:12 1925 1

原创 Redis 持久化

Redis 持久化配置 :RDB、AOF、混合持久化RDB:save、bgsaveAOF:自动触发AOF重写、AOF重写机制Redis 4.0 混合持久化:混合持久化配置Redis持久化关闭未生效:不同版本Redis关闭RDB的坑

2024-01-05 11:02:23 1247 4

原创 JVM高频面试题(2023最新版)

JVM内存区域、运行时数据区、堆和栈的区别、队列和栈的区别、对象的创建过程、 内存溢出异常、垃圾收集器、垃圾回收机制、垃圾回收算法、Serial收集器、ParNew收集器、Parallel Scavenge、Serial Old收集器、Parallel Old收集器、CMS收集器、G1收集器、ZGC、垃圾回收器工作流程、虚拟机类加载机制、JVM加载Class文件的原理机制、类加载器、双亲委派、JVM调优

2023-12-26 14:54:38 1274

原创 MySQL explain执行计划详解

2(id = 3)、【select id, name from t1 where address = ‘11’】:因为是在from语句中包含的子查询所以被标记为DERIVED(衍生),where address = ‘11’ 通过复合索引idx_name_email_address就能检索到,所以type为index。表示索引中使用的字节数,查询中使用的索引的长度(最大可能长度),并非实际使用长度,理论上长度越短越好。mysql对数据使用一个外部的索引排序,而不是按照表内的索引进行排序读取。

2023-12-26 14:03:46 478

原创 Dubbo 快速上手

**`Dubbo`是阿里巴巴开源的基于 `Java` 的高性能` RPC`(一种远程调用) 分布式服务框架,致力于提供高性能和透明化的`RPC`远程服务调用方案,以及`SOA`服务治理方案**。1.1 核心功能:远程通讯、集群容错、自动发现;1.2 架构演变:单体架构、垂直应用框架、分布式应用架构、分布式架构-SOA面向服务架构、分布式结构-微服务。2.3 `RPC`需要解决的问题;3.`Dubbo`作用;4.`Dubbo` 和 `Spring Cloud`区别;5.`Dubbo`技术架构;

2023-12-26 14:02:15 422

原创 Redis高频面试题(2023最新版)

哨兵模式基于主从模式,可以自动切换主从,可用性高,但是每个节点存储的数据是一样的,浪费内存,还难以扩容,因此redis 3.0 之后加入了 Redis Cluster 集群(切片集群),也就是说每台redis服务器上存储的内容都不同,解决了扩容问题,它还可以保存大量数据,还提供了复制和故障转移功能。AOF这种追加指令的方式,会造成AOF文件越来越大,因此redis提供了AOF文件重写机制,当AOF文件的大小超过所设定的阈值的时候,redis就会对AOF的文件进行压缩,只保留可以恢复数据的最小指令集。

2023-10-23 00:10:36 131

原创 MQ高频面试题(2023最新版)

1、什么是消息队列?2、消息队列有哪些使用场景?(为什么使用消息队列)3、消息队列如何解决消息丢失问题?4、消息队列如何保证消息的顺序性?5、如何避免消息重复消费?6、如何解决幂等性问题?7、如何处理消息队列消息积压问题?8、MQ技术选型9、如何保证数据一致性,事务消息如何实现?10、RabbitMQ的消息可靠传输如何保证?11、RabbitMQ的消息如何实现路由?

2023-10-21 00:09:16 260 1

原创 并发编程高频面试题(2023最新版)

1、为什么要使用并发编程?3、并发编程三要素4、并行和并发5、线程和进程的区别6、如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?7、线程的创建方式8、Runnable和Callable的区别9、run和start的区别10、线程的状态11、线程调度算法12、线程同步以及线程调度相关的方法13、Java程序中怎么保证多线程的运行安全?14、synchronized15、volatile16、Lock体系17、线程池18、原子操作类

2023-10-21 00:05:54 211

原创 Canal实现Mysql数据同步至Redis、Elasticsearch

1.Canal简介;1.1 MySQL主备复制原理;1.2 canal工作原理;2.开启MySQL Binlog;3.安装Canal;4.SpringCloud集成Canal;4.3 canal配置多个数据同步的目的地;4.5 监听配置;4.8 canal整合异常问题排查思路;4.8.2 使用canal监听数据 启动成功了 没有报错 不过一直监听不到消息

2023-09-20 21:16:56 931 1

原创 Mysql和ES、Redis数据同步方案汇总

1. 同步双写是最简单的同步方式,能最大程度保证数据同步写入的实时性,最大的问题是代码侵入性太强。2. 异步双写引入了消息中间件,由于MQ都是异步消费模型,所以可能出现数据同步延迟的问题。好处是在大规模消息同步时吞吐量更、高性能更好,便于接入更多的数据源,且各个数据源数据消费写入相互隔离互不影响。3. 基于Mysql表定时扫描同步 ,原理是通过定时器定时扫描表中的增量数据进行数据同步,不会产生代码侵入,但由于是定时扫描同步,所以也会存在数据同步延迟问题,典型实现是采用 Logstash 实现增量同步。

2023-09-20 16:16:30 1286

原创 Seata 处理分布式事务

Seata 处理分布式事务:Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。分布式事务的处理过程:1 ID+ 3 组件模型1 ID:全剧唯一的事务ID术语3组件:- Tc-事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。- TM-事务管理器:定义全局事务的范围︰开始全局事务、提交或回滚全局事务。- RM-资源管理器:管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

2023-07-12 14:53:03 274

原创 Sentinel 熔断与限流

Sentinel 熔断与限流:分布式系统的流量防卫兵随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流星为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。1、流量配置规则;2、熔断降级;3、热点规则;4、系统规则;5、熔断框架比较;6、Sentinel的规则持久化

2023-07-12 14:50:06 666

原创 Nacos 服务注册和配置中心

Nacos 服务注册和配置中心:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos = Eureka + Config + Bus。1、Nacos发现实例模型;2、注册中心对比;3、Nacos 支持AP和CP模式的切换;4、Nacos 服务配置;5、Nacos 集群是持久化配置

2023-07-12 14:46:46 173

原创 Hystrix 断路器

Hystrix 断路器:Hystrix是一个用于处理分布式系统的**延迟**和**容错**的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。1、服务降级;2、服务熔断;3、服务限流;4、服务监控 hystrixDashboard

2023-07-12 14:43:26 356

原创 OpenFeign 服务接口调用

Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡

2023-07-12 14:40:10 179

原创 Ribbon 负载均衡服务调用

Ribbon 负载均衡服务调用:Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。主要功能是提供客户端的软件负载均衡算法和服务调用。1、Ribbon工作流程;2、自定义Ribbon 负载均衡算法

2023-07-12 14:37:08 904

原创 SpringCloud Alibaba微服务分布式架构组件演变

SpringCloud Alibaba:1、服务注册中心:Eureka、Zookeeper、Consul、Nacos;2、服务调用:Ribbon、LoadBalancer、Feign、OpenFeign;3、服务降级:Hystrix、Resilience4j、Sentinel;4、服务网关:Zuul、Gateway;5、服务配置:Config、Nacos;6、服务总线:Bus、Nacos;6、分布式事务解决方案:seata

2023-07-12 14:23:10 1663

原创 XSS跨站脚本安全漏洞防护

存储型XSS是指应用程序通过Web请求获取不可信赖的数据,并且在未检验数据是否存在XSS代码的情况下,将其存入数据库。存储型XSS可以持续攻击用户,在用户提交了包含XSS代码的数据存储到数据库后,每当用户在浏览网页查询对应数据库中的数据时,那些包含XSS代码的数据就会在服务器解析并加载,当浏览器读到XSS代码后,会当做正常的HTML和JS解析并执行,于是发生存储型XSS攻击。如果address的值是由用户提供的,且存入数据库时没有进行合理的校验,那么攻击者就可以利用上面的代码进行存储型XSS攻击。

2023-06-05 15:12:45 1385

转载 面向对象设计原则

面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则。单一职责原则 :**一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。**开闭原则:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。里氏代换原则: 所有引用基类(父类)的地方必须能透明地使用其子类的对象。依赖倒转原则:依赖倒转原则:抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是

2023-05-24 10:16:26 377 1

原创 SpringCloud 性能优化

Springcloud的性能问题、Servlet 容器 优化、Feign 配置优化、Zuul配置 优化、hystrix配置 优化、ribbon 优化

2023-05-24 10:05:33 1612

原创 Redis+LUA脚本结合AOP实现限流

1、通过lua脚本来实现动态的创建redis缓存2、基于Guava cache缓存存储实现限流切面3、自定义限流异常和限流key类型枚举

2023-05-20 10:39:18 1541 3

原创 Jmeter 压测 QPS

Jmeter的基本概念、Jmeter下载安装、Jmeter的目录结构、Jmeter设置中文、线程组、Jmeter创建http请求、 Jmeter设置请求头信息 、Jmeter测试方法概论、Jmeter结果树、Jmeter图形结果

2023-05-15 15:59:48 2265

原创 Spring 面试题总结(2023最新版)

Spring的理解,Spring的AOP理解,Spring的IOC的理解,Autowired和Resource的区别,Spring常用注解,SpringMVC常用注解,循环依赖,Spring Bean的生命周期,Spring支持几种作用域,Spring事务的隔离级别,Spring中的事务传播属性,Spring中事务实现方式,事务的本质,@Transactional的使用,SpringMVC的理解,Bootstrap.yml的作用,@Indexed注解,Spring的AOP理解,容器的启动流程,注解的原理

2023-05-06 14:54:21 2507 1

原创 滑动窗口算法实现单位时间API限流

通过对一个时间窗口内的请求量进行限制来保障系统的正常运行。如果我们的服务资源有限、处理能力有限,就需要对调用我们服务的上游请求进行限制,以防止自身服务由于资源耗尽而停止服务。将一个时间窗口分为5份。每一份里面都有一个独立计数器c。在时间轴上的一个时间窗口内,没当请求过来的时候,就会求计数器 c1+c2+c3+c4+c5的和,当达到阀值就拒绝,没达到当前小格子里面的计数器就加1。滑动窗口算法是固定窗口算法的优化版本,主要是为了解决固定窗口中的零界值问题导致限流失败的问题。在限流中有两个概念需要了解。

2023-04-26 18:00:15 465 2

原创 MySQL 大厂面试题总结(2023最新版)

1、索引2、建表规约3、索引规约4、SQL语句5、什么是Buffer Pool6、InnoDB如何管理Page页7、 change Buffer 8、MySQL为什么改进LRU算法?9、使用索引一定可以提升效率吗?10、索引有哪几种类型?11、什么是索引下推?12、什么是自适应哈希索引?13、为什么LIKE以"%"开头索引会失效?14、InnoDB与MyISAM的区别15、三个范式16、MySQL的事务17、MySQL视图18、大表数据查询优化思路

2023-04-04 11:49:41 2687

原创 MySQL 索引的数据结构及优化实战

1、索引的数据结构为什么是B+Tree和HASH?2、 索引的类型3、 InnoDB存储引擎索引实现(聚集)4、MyISAM存储引擎索引实现(非聚集)5、联合索引6、EXPLAIN关键字7、索引失效的情况8、为什么主键要设置成自增的?9、建表上的优化 10、索引失效的案例11、建表规约(阿里巴巴开发手册)12、索引规约(阿里巴巴开发手册)13、SQL语句(阿里巴巴开发手册)

2023-04-01 17:38:24 1012

原创 MyBatis 源码解析 面试题总结

MyBatis1、工作原理2、MyBatis的缓存3、缓存扩展4、设计模式5、SqlSessionFactory的理解6、SqlSession的理解7、对MyBatis的理解8、分页的理解9、插件原理10、不同Mapper中的id是否可以相同?11、架构设计的理解12、传统JDBC开发13的不足13、数据源模块的设计14、事务模块的设计15、Mapper接口的设计理解16、Reflector模块的理解17、类型转换模块18、spring/SpringBoot整合MyBatis

2023-03-31 17:43:25 1016

原创 Redis面试题 (2023最新版)

一、Redis为什么快?二、Redis合适的应用场景 三、Redis为什么6.0之前不支持多线程 四、Redis为什么6.0之后引入多线程 五、Redis有哪些高级功能 六、为什么需要使用Redis 七、Redis的事务 八、Redis的过期策略以及内存淘汰机制 九、什么是缓存穿透?如何避免? 十、什么是缓存雪崩?如何避免? 十一、Redis如何设计分布式锁 十二、什么是bigkey?会有什么影响? 十三、Redis如何解决key冲突 十四、怎么提高换成命中率 十五、Redis持久化方式有哪些方式?

2023-03-29 10:09:24 16188 2

原创 ConcurrentHashMap

ConcurrentHashMap在1.8做了哪些优化?ConcurrentHashMap的散列算法?ConcurrentHashMap初始化数组的流程?ConcurrentHashMap扩容的流程?ConcurrentHashMap读取数据的流程?ConcurrentHashMap中计数器的实现

2023-03-28 10:04:06 1559

原创 多线程面试题总结(2023最新版)

多线程实现方式?线程的状态?如何停止线程?sleep和wait方法的区别?并发编程三大特性?锁的分类?synchronize实现原理?AQS?ReentrantReadWriteLock?线程池的核心参数有哪些?线程池的状态?线程池的执行流程?线程池添加工作线程的流程?线程池为何要构建空任务的非核心线程?线程池使用完毕后为何必须要shutdown()?线程池添加工作线程的流程?ConcurrentHashMap的散列算法、扩容、初始化数组和读取数据的流程?

2023-03-28 09:58:08 1482

原创 Redis 大厂面试题总结(2023最新版)

一、Redis为什么快?二、Redis合适的应用场景 三、Redis为什么6.0之前不支持多线程 四、Redis为什么6.0之后引入多线程 五、Redis有哪些高级功能 六、为什么需要使用Redis 七、Redis的事务 八、Redis的过期策略以及内存淘汰机制 九、什么是缓存穿透?如何避免? 十、什么是缓存雪崩?如何避免? 十一、Redis如何设计分布式锁 十二、什么是bigkey?会有什么影响? 十三、Redis如何解决key冲突 十四、怎么提高换成命中率 十五、Redis持久化方式有哪些方式?

2023-03-17 11:49:52 1281

原创 Jvm 编译过程及双亲委派机制

1、Java从编码到执行2、从跨平台的语言(java)到跨语言的平台(jvm)3、JVM是一种规范,任何语言只要能编译成class文件,都能在jvm上运行二、Class File Format三、Class Loading Linking Initializing 类加载-初始化1、加载过程2、类加载器3、双亲委派 4、类加载器的范围 5、自定义类加载器

2023-03-16 10:51:00 333

原创 GC Garbage Collectors

一、算法 引用计数法:reference count 根可达性算法:Root Searching 标记清除 Mark-Sweep:拷贝 Copying: 标记整理 Mark-Compact:二、垃圾收集器 Serial + Serial Old: Parallel Scavenge + Parallel Old:(ps+po)三色标记法算法:G1:ZGC Shenandoash (jdk12引入):

2023-03-03 15:14:26 525

原创 Jvm调优实战笔记

1、jps 查看所有java进程2、jinfo 进程号 查看该线程相关信息3、jstat 统计信息(数据跟踪信息)4、jstack 跟踪线程5、top6、jmap dashboard :(仪表盘) thread -b 寻找死锁redefine 定义class7、-XX:+HeadDumpOnOutOfMemoryError 8、-Xms20M 堆内存9、-Xmx20M 栈内存 10、-XX:+UseParallelGc 垃圾回收器

2023-03-02 14:38:34 402

原创 LeetCode(Java)—— 加一(简单)

加一概述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。

2023-02-14 17:57:34 807

原创 百万级数据的导出解决方案

一、传统POI的的版本优缺点比较首先我们知道POI中我们最熟悉的莫过于WorkBook这样一个接口,我们的POI版本也在更新的同时对这个几口的实现类做了更新;这个实现类是我们早期使用最多的对象,它可以操作Excel2003以前(包含2003)的所有Excel版本。在2003以前Excel的版本后缀还是.xls这个实现类现在在很多公司都可以发现还在使用,它是操作的Excel2003--Excel2007之间的版本,Excel的扩展名是.xlsx。

2023-01-11 14:39:34 3289

转载 word转pdf乱码问题解决

共享中的在线预览word模块会将word转为pdf后再展示, 有时候pdf会出现方块乱码, 原因是linux上少了一些个字体, 比如雅黑、宋体。0. 如果安装命令可先执行安装命令操作: yum install -y fontconfig mkfontscale。查看安装的中文字体: fc-list :lang=zh。查看安装的字体: fc-list。

2023-01-05 16:10:47 2048

Redis+LUA脚本实现限流

Redis+LUA脚本实现限流测试视频

2023-05-20

MyBatis源码学习环境

MyBatis源码学习环境:均已附上注释 传统方式 mapper代理方式 mybatis二级缓存效果测试 mybatis嵌套效果测试 可连接自己的本地数据库进行测试练习 已通过测试代码模拟MyBatis的执行流程

2023-03-31

Linux安装jdk、mysql、maven、Tomcat、nginx、redis、nacos、erlang、rabbitmq

jdk-1.8、 mysql-5.7、 maven-3.9.1、 Tomcat-8.5.87、 nginx-1.22.0、 redis-5.0.0、 nacos-2.0.3、 erlang-23.0.2、 rabbitmq-3.8.5

2023-03-24

RabbitMQ-Windows版.7z

包含了MQ所需要的24.0版本的erl语言环境以及所兼容的3.9.4版本的RabbitMQ: otp_win64_24.0.exe rabbitmq-server-3.9.4.exe

2022-12-06

RabbitMQ-Linux版

包含了MQ所需要的13.0.2版本的erl语言环境以及所兼容的3.8.5.1版本的RabbitMQ: esl-erlang_23.0.2-1_centos_7_amd64.rpm rabbitmq-server-3.8.5-1.el7.noarch.rpm

2022-12-06

时间表tbl_date_ntty创建文件

时间表tbl_date_ntty创建文件

2022-05-10

阿里播放器 Alibaba cloud

阿里播放器 Alibaba cloud

2022-01-20

Java面试题大全.pdf

Java面试题大全.pdf

2022-01-11

爱购EShop 电商系统

爱购EShop 电商系统

2022-01-10

OA自动化办公系统(基于springBoot+Mybatis)

OA自动化办公系统

2021-12-16

Vue--电商系统项目

Vue--电商系统项目

2021-12-16

redis 的学习笔记A

redis学习笔记

2021-11-10

tomcat-9_app.zip

tomcat 9.0

2021-11-03

必胜客在线订餐系统项目实现预览.mp4

JavaWeb' 必胜客在线订餐系统项目实现预览

2021-10-30

JavaWeb 项目 必胜客在线订餐系统.zip

JavaWeb 项目 必胜客在线订餐系统 项目需求及源码

2021-10-30

网上订餐系统1.0.pdf

JavaWeb 项目 在线订餐系统项目需求

2021-10-30

空空如也

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

TA关注的人

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