自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 408

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

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

2023-09-20 16:16:30 633

原创 Seata 处理分布式事务

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

2023-07-12 14:53:03 191

原创 Sentinel 熔断与限流

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

2023-07-12 14:50:06 481

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

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

2023-07-12 14:46:46 120

原创 Hystrix 断路器

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

2023-07-12 14:43:26 324

原创 OpenFeign 服务接口调用

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

2023-07-12 14:40:10 124

原创 Ribbon 负载均衡服务调用

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

2023-07-12 14:37:08 858

原创 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 1429

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

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

2023-06-05 15:12:45 811

转载 面向对象设计原则

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

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

原创 SpringCloud 性能优化

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

2023-05-24 10:05:33 1347

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

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

2023-05-20 10:39:18 1262 2

原创 Jmeter 压测 QPS

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

2023-05-15 15:59:48 1256

原创 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 1570

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

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

2023-04-26 18:00:15 346 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 2078

原创 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 614

原创 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 969

原创 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 10210

原创 ConcurrentHashMap

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

2023-03-28 10:04:06 726

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

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

2023-03-28 09:58:08 870

原创 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 1047

原创 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 306

原创 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 481

原创 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 324

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

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

2023-02-14 17:57:34 622

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

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

2023-01-11 14:39:34 1868

转载 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 1346

原创 JWT实现登陆认证及Token自动续期

更新用户密码时需要重新生成新的token,并将新的token返回给前端,由前端更新保存在local storage中的token,同时更新存储在redis中的token,这样实现可以避免用户重新登陆,用户体验感不至于太差。一样的道理,要改变JWT的有效时间,就要签发新的JWT。在实际项目中,用户分为普通用户和管理员用户,只有管理员用户拥有删除用户的权限,这一块功能也是涉及token操作的,但是我太懒了,demo工程就不写了。JWT的payload使用的是base64编码的,因此在JWT中不能存储敏感数据。

2023-01-05 16:08:12 1040

原创 RabbitMQ快速上手以及RabbitMQ交换机的四种模式

2、配置application.yml3、编写配置类RabbitMQConfig.java4、编写发送者MQSender.java5、编写接收者MQReceiver.java6、编写测试接口UserController.java7、结果2、MQSender.java3、MQReceiver.java4、UserController.java5、测试调用 mq/direct01 接口,消息经由交换机转发到绑定该交换机

2022-12-06 11:28:42 782 1

原创 Linux下载安装 RabbitMQ​

官网地址:Downloads - Erlang/OTP 官网:Messaging that just works — RabbitMQgithub地址:https://github.com/rabbitmq下载地址:Downloading and Installing RabbitMQ — RabbitMQ 选择我们所需要的版本查询erl语言和RabbitMQ版本对应关系可以查看RabbitMQ Erlang Version Requirements — RabbitMQrpm -ivh erlang

2022-12-06 10:38:06 1366

原创 ​win10下安装 RabbitMQ​

RabbitMQ 下载地址 https://www.rabbitmq.com/install-windows.html 安装需要注意要以管理员权限下载安装包,然后就是傻瓜式安装下一步下一步就行,如果大家自定义安装路径的话,一定要保证你的安装路径没有中文,没有空格,然后等待两个都安装成功后,我们需要配置下 Erlang 的环境变量 7、首先可以在 RabbitMQ 的目录下执行 rabbitmqctl status 查看当前服务是否启动,也可以在win10的服务页面来查看 RabbitMQ 服务是否启

2022-12-06 09:58:08 600

原创 EasyExcel快速上手

*所有Excle导入都需要用统一的模板进行数据导入,且我们在程序中也需要对于导入Excle文件的格式和内容规范进行校验,同时我们还可以再导入业务逻辑中加入生成导入日志的功能,方便使用者尽快得知提交的文件中具体哪个位置的内容填写不规范,也可以使后台维护的工作人员能及时发现恶意的导入行为**思路:1、将Excle文件中我们需要的数据转换成对应的模板类泛型的Lsit集合。3、在校验的同时记录校验的过程,生成导入日志,插入日志表。(3)编写数据插入以及生成导入日志的业务层方法。(2)封装具体的数据排查业务逻辑。

2022-10-14 14:50:30 2482 1

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

存储型XSS可以持续攻击用户,在用户提交了包含XSS代码的数据存储到数据库后,每当用户在浏览网页查询对应数据库中的数据时,那些包含XSS代码的数据就会在服务器解析并加载,当浏览器读到XSS代码后,会当做正常的HTML和JS解析并执行,于是发生存储型XSS攻击。**例如**:下面JSP代码片段的功能是根据一个已知用户雇员ID(id)从数据库中查询出该用户的地址,并显示在JSP页面上。如果address的值是由用户提供的,且存入数据库时没有进行合理的校验,那么攻击者就可以利用上面的代码进行存储型XSS攻击。

2022-09-05 16:28:32 3001 4

原创 MySQL 事件调度

编写sql时要注意格式要求(1)开头要写BEGIN,结尾处写END(2)每一个sql结束处需要打上分好,“;”,区分每一条sql语句,漏写时,事件无法保存(3)事件示例BEGIN--推送当天门票预测数据--添加今日数据SELECT'玉龙雪山'asjqmc,0asmrFROMWHEREscenicAreaNamein('冰川公园索道','云杉坪索道','印象丽江','牦牛坪索道','玉龙雪山景区门票')SELECT'玉龙雪山'asjqmc,..................

2022-07-28 16:37:51 947

原创 mysql 查看事件状态语句和修改办法

代码】mysql查看事件状态语句和修改办法。

2022-07-25 11:31:42 1879

原创 mysql使用orderby 不起作用

mysql 使用order by排序的时候不起作用,

2022-07-21 10:50:40 4440

原创 java.io.IOException: Server returned HTTP response code: 403 for URL

403Forbidden是HTTP协议中的一个可以简单的理解为没有权限访问此站。

2022-07-20 14:01:50 5672

原创 Java 天气爬虫

代码】Java天气爬虫。

2022-07-14 19:03:26 643

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关注的人

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