自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(250)
  • 资源 (3)
  • 收藏
  • 关注

原创 MySQL长度的含义

前言在MySQL数据库表的设计过程中,有些数据类型后面必须要指定长度,例如,那么问题来了,这里的长度具体指什么呢?我们应该如何更合理的去设计字段的长度。在设计之前,我们首先要明白他们的含义是什么。

2024-08-24 17:35:49 1072

原创 Stream流

Stream是Java 8 API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式。Stream流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数据结构并不保存数据,它的主要目的在于计算Stream流是对集合(Collection)对象功能的增强,与Lambda表达式结合,可以提高编程效率、间接性和程序可读性。

2024-08-24 17:26:12 1053

原创 spring事务的8种失效的场景,7种传播行为

Spring事务大部分都是通过AOP实现的,所以事务失效的场景大部分都是因为AOP失效,AOP基于动态代理实现的。

2024-08-04 10:39:24 203

原创 Spring Bean的作用域

首先Bean的线程安全问题只会在singleton和application出现,不会出现在prototype和request中。application 是 Spring Web 中的作用域;singleton 作用于 IoC 的容器,而 application 作用于 Servlet 容器。在Spring中,bean作用域用于确定哪种类型的bean实例应该从Spring容器中返回给调用者。然后Bean分为有状态的Bean(既查询又修改)和无状态的Bean(只有查询没有修改)

2024-08-04 09:27:42 162

原创 Seata分布式事务

Seata是Java领域很强大的分布式事务框架,其支持了多种模式。其中默认支持的AT模式,相比于传统的2PC协议(基于数据库的XA协议),很好地解决了2PC长期锁资源的问题,提高了并发度。Seata支持的各个模式中,AT模式对业务零入侵实现分布式事务,对于开发者更加友好。另外Seata的Server在选择合适的存储介质时可以进行集群模式,减少单点故障影响。

2024-06-19 10:51:29 900

原创 加解密算法及国密算法应用

常见的加解密算法可以分为可逆和不可逆两种。

2024-06-10 12:52:40 858

原创 分布式锁的三种实现方式

上面几种方式,哪种方式都无法做到完美。就像CAP一样,在复杂性、可靠性、性能等方面无法同时满足,所以,根据不同的应用场景选择最适合自己的才是王道。1.从实现的复杂性角度(从高到低)zookeeper >= redis> 数据库数据库实现的分布式锁易于理解和实现,且不会给项目引入其他依赖。zookeeper和redis需要考虑的情况更多,实现相对较为复杂,但是都有现成的分布式锁框架curator和redision,用起来代码反而可能会更简洁。

2024-06-08 15:11:34 929

原创 一文搞定单点登录

在 B/S 系统中,登录功能通常都是基于 Cookie 来实现的。当用户登录成功后,一般会将登录状态记录到 Session 中,或者是给用户签发一个 Token,无论哪一种方式,都需要在客户端保存一些信息(Session ID 或 Token ),并要求客户端在之后的每次请求中携带它们。在这样的场景下,使用 Cookie 无疑是最方便的,因此我们一般都会将 Session 的 ID 或 Token 保存到 Cookie 中,当服务端收到请求后,通过验证 Cookie 中的信息来判断用户是否登录。

2024-05-29 23:19:05 666

原创 JVM—内存可见性

可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。

2024-03-22 10:01:01 531 3

原创 java中的日期类

中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。类:代表一个包含年、月、日、小时、分钟、秒的日期对象,如2007-12-03T10:15:30。通过API或源码,可以看出Date类的大部分方法已经过时,已被第二代日期类Calendar代替,剩下的Date类常见方法如下所示。这三个类都代表日期对象,只是包含的日历字段不同,相当于Calendar类的代替。

2024-03-14 16:19:14 885

转载 Nginx(一)概述

Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0 发布于 2004 年 10 月 4 日。Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行,其特点是。在 master-worker 模式下:有一个 master 进程和至少一个的 worker 进程。:master-worker 模式和单进程模式。单进程模式:顾名思义只有一个进程。单进程模式(了解)–>调试。

2024-01-04 17:02:31 148

原创 并发相关参数指标

概念:此数据指的是Linux系统的负载情况,也就是咱们平时所用Top命令时,最上面显示的数据信息( load average: 0.1, 0.2, 0.5)。此时会显示1分钟、5分钟、15分钟的系统平均Load,很显然load average 的值越低,你的系统负荷越小。Qps基本类似于Tps,但是不同的是,对于一个页面的一次访问,形成一个Tps;一般系统RT 100ms 以内是比较正常的,300ms 勉强可以接受,1s的话再加上一些其他的外因,给用户的体验就是实实在在的不爽了。

2023-12-15 11:33:01 270

原创 自定义地区参数处理切面

省级账号:如果没有传参或者传参是省级,那就地区参数置NULL。如果传参是市级就进行截断。如果是区(县)级不处理。市级账号:如果没有传参,将地区设置为当前用户所属区域。如果传参和所属地区不一致,若传参>权限,地区设置为用户所属地区。如果传参和所属地区不一致,若传参<权限,判断参数级别,如果是市级就进行截断,如果是区(县)级不处理。县(区)账号:参数直接改为用户区域自定义接口注解import java.lang.annotation.*;@Retention

2023-06-28 09:39:44 412

原创 @Valid、@Validated参数校验详解

但是不能用在成员属性(字段)上,不支持嵌套检测,只能通过@Valid配合实现嵌套校验。@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上,支持嵌套检测,可以用在list,set等集合上实现嵌套校验。将不同的校验规则分给不同的组,在使用时,指定不同的校验规则,可以用于更新和新增接口不同的校验规则。因此我们在这里做了一个全局的异常处理类,用于处理参数校验失败后抛出的异常,同时进行日志输出。@Validated:提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。

2023-06-27 15:38:49 2690 1

转载 博客摘录 Java中的日志框架总结

日志框架Java中现有的日志框架:日志门面:JCL(Jakarta Common Logging)、SLF日志实现:JUL(Java Util Logging)、log4j、logback、log4j2logback 比 log4j 功能更加强大,性能更加好;log4j2 与 logback 功能相似,但前者的性能更好1、JUL1.1 JUL介绍JUL:全称 Java Util Logging,它是 Java 原生的日志框架,使用时不需要引入第三方类库,相对其它日志框架使用方便、学习简单,

2023-04-27 10:58:18 1019 1

原创 漏洞扫描解决方案汇总

【代码】漏洞扫描解决方案汇总。

2023-03-06 10:12:32 5542 10

转载 git分支的理解

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。

2023-01-06 11:46:30 404

转载 ruoyi框架@DataScope注解使用

通过报错信息,我们发现这么一句 WHERE (.dept_id ,说明sql语句中没有加别名,只要加上即可:select queue_id, queue_name from backup_queue_manage d。(1)mysql表sys_role中,有一个data_scope字段,该字段为角色对应的数据权限标识。(3)后台根据登录用户角色的dataScope动态的拼接sql语句,来进行数据范围的过滤。(1)打开角色管理菜单,创建角色,选择该角色可以查看的菜单权限。(3)、新增用户,并关联你的角色。..

2022-08-15 21:29:05 4433

原创 自定义rocketmq启动脚本

按照顺序先后启动mqnamesrv、mqbroker、可视化管理工具。source一下,启动脚本我的是存放再script目录下。任意目录下都可以使用。

2022-08-04 17:40:45 866

原创 分布式事务解决方案

事务由单独单元的一个或者多个sq!语句组成,在这个单元中,每个mysql语句时相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条sq!语句一旦执行失败或者产生错误,整个单元将会回滚,所有受到影响的数据将会返回到事务开始以前的状态;如果单元中的所有sq!语句均执行成功,则事务被顺利执行。分布式事务就是为了保证不同数据库的数据一致性CAP定理,又被叫作布鲁尔定理。对于设计分布式系统(不仅仅是分布式事务)的架构师来说,CAP就是你的入门理论。...

2022-08-02 11:37:54 126

原创 消息中间件汇总

RabbtiMQ理论基础RabbitMQ支持消息的模式(官方API)RabbitMQ使用场景RabbitMQ支持消息的模式(SpringBoot)RabbitMQ-过期时间TTLRabbitMQ-死信队列RabbitMQ运维-持久化机制和内存磁盘的监控

2022-08-01 16:43:30 96

原创 RabbitMQ运维-持久化机制和内存磁盘的监控

消息持久化是通过消息的属性deliveryMode来设置是否持久化,在发送消息时通过basicPublish的参数传入。不论是持久化的消息还是非持久化的消息都可以写入到磁盘中,只不过非持久的是等内存不足的情况下才会被写入到磁盘中。非持久消息是指当内存不够用的时候,会把消息和数据转移到磁盘,但是重启以后非持久化队列消息就丢失。队列的持久化是定义队列时的durable参数来实现的,Durable为true时,队列才会持久化。然后重启rabbit-server服务,会发现持久化队列依然在,而非持久队列会丢失。..

2022-07-27 13:49:54 603

原创 RabbitMQ-死信队列

DLX,全称为Dead-Letter-Exchange,可以称之为死信交换机,也有人称之为死信邮箱。当消息在一个队列中变成死信(deadmessage)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX,绑定DLX的队列就称之为死信队列。消息被拒绝消息过期队列达到最大长度DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。......

2022-07-27 13:43:28 416

原创 RabbitMQ-过期时间TTL

过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。第二种方法是对消息进行单独设置,每条消息TTL可以不同。如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为deadmessage被投递到死信队列,消费者将无法再收到该消息。...

2022-07-27 13:25:55 399

原创 RabbitMQ支持消息的模式(SpringBoot)

生产者负责生产订单,并调用消息队列调用其他服务//1.根据商品id查询库存是否重组//2.保存订单StringorderId=UUID.randomUUID().toString();System.out.println("订单生产成功"+orderId);//3.通过MQ来完成消息的分发/**参数1交换机*参数2路由key/queue队列名称System.out.println("producer发送订单信息成功");......

2022-07-26 09:26:52 407

原创 RabbitMQ使用场景

按照以上约定,用户的响应时间相当于是订单信息写入数据库的时间,也就是50毫秒。注册邮件,发送短信写入消息队列后,直接返回,因此写入消息队列的速度很快,基本可以忽略,因此用户的响应时间可能是50毫秒。并行方式将订单信息写入数据库成功后,发送注册邮件的同时,发送注册短信。与串行的差别是,并行的方式可以提高处理的时间。串行方式将订单信息写入数据库成功后,发送注册邮件,再发送注册短信。5如果服务器承载不了,你需要自己去写高可用,HA镜像模型高可用。4如何保证消息的可靠性,死信队列和消息转移的等。...

2022-07-25 19:33:33 115

原创 RabbitMQ支持消息的模式(官方API)

由于消息接收者处理消息的能力不同,存在处理快慢的问题,我们就需要能者多劳,处理快的多处理,处理慢的少处理;2、公平分发根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理的少;总结work1和work2的消息处理能力不同,但是最后处理的消息条数相同,是“按均分配”。当有多个消费者时,我们的消息会被哪个消费者消费呢,我们又该如何均衡消费者消费信息的多少呢?Direct模式是fanout模式上的一种叠加,增加了路由RoutingKey的模式。1、轮询模式的分发一个消费者一条,按均分配;...

2022-07-25 19:12:16 223

原创 RabbitMQ理论基础

1、项目中为什么要使用消息中间件2、项目中为什么使用RocketMQ而不是RabbitMQ3、系统TPS有多少?引入消息中间件之后,系统一定不会被撑爆了吗?4、消息中间件中出现大量的消息堆积。会产生什么后果?5、如何发现出现了大量消息的堆积?采取了哪些应急措施?问题产生的根源是什么?如何避免。......

2022-07-25 09:02:26 272

原创 Docker基础

Docker的常用命令帮助命令帮助文档的地址 https://docs.docker.com/reference/镜像命令docker images 查看所有本地的主机上的镜像docker search 搜索镜像docker pull 下载镜像docker rmi -f [镜像id]容器命令说明:有了镜像才可以创建容器,linux新建容器列出所有运行中的容器退出容器删除容器启动和停止容器的操作后台启动容器查看日志查看容器中的进程信息查看镜像的元数据进入当前正在运行的容器从容

2022-06-17 09:31:42 257

转载 Yarn 资源调度器概述

Yarn资源调度器概述思考:1)如何管理集群资源?2)如何给任务合理分配资源?Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。1、Yarn基础架构Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。2、Yarn工作机制​ (1)MR程序提交到客户端所在的节点。​ (2)Ya

2022-04-25 10:57:37 1178

原创 Hadoop数据压缩

Hadoop数据压缩1、概述1)压缩的好处和坏处压缩的优点:以减少磁盘IO、减少磁盘存储空间。压缩的缺点:增加CPU开销。2)压缩原则(1)运算密集型的Job,少用压缩(2)IO密集型的Job,多用压缩2、MR支持的压缩编码1)压缩算法对比介绍压缩格式Hadoop自带?算法文件扩展名是否可切片换成压缩格式后,原来的程序是否需要修改DEFLATE是,直接使用DEFLATE.deflate否和文本处理一样,不需要修改Gzip是,直接使用DEFL

2022-03-17 12:18:31 216

原创 MapReduce 框架原理

MapReduce 框架原理1、InputFormat 数据输入1.1 切片与MapTask并行度决定机制1)问题引出MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的处理速度。思考:1G的数据,启动8个MapTask,可以提高集群的并发处理能力。那么1K的数据,也启动8个MapTask,会提高集群性能吗?MapTask并行任务是否越多越好呢?哪些因素影响了MapTask并行度?2)MapTask并行度决定机制数据块: Block是HDFS物理上把数据分成一块一块。

2022-03-17 12:11:58 3166

原创 Hadoop序列化

Hadoop序列化1、序列化概述1)什么是序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。2)为什么要序列化一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。3)为什么不用Java的序列化Java

2022-02-15 09:40:30 672

原创 MapReduce概述

1、MapReduce概述1.1 MapReduce定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。1.2 MapReduce优缺点优点1)MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写一个简单

2022-02-15 09:34:45 516

原创 HDFS概述

HDFS概述1、HDFS 产出背景及定义1)HDFS产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。2)HDFS定义HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色

2022-02-09 15:16:18 1026

原创 Hadoop集群搭建

Hadoop运行环境搭建1、模板虚拟机环境准备安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G「自定义安装CentOS全过程」https://www.aliyundrive.com/s/QAibtB7RwxC安装epel-release注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大

2022-02-07 17:02:42 1327

原创 Hadoop概述

Hadoop概述1、 简单介绍Hadoop是一个由Apache基金会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上说,Hadoop通常是指一个更广泛的概念—Hadoop生态圈。2 、Hadoop优势(4高)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处

2022-01-21 15:43:27 1666

原创 统一接口日志处理(日志入库)

统一接口日志处理(日志入库)1.环境搭建日志数据库-- 接口日志信息表 CREATE TABLE `log_note` ( `id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT ''主键'', `interface_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ''接口名称'', `interface_url` varc

2022-01-18 15:23:38 2426

原创 深入探究AOP的使用

AOP向切面编程通过提供另一种思考程序结构的方式来补充面向对象编程(OOP)。OOP中模块化的关键单元是类,而AOP中模块化的单元是切面。切面支持跨多个类型和对象的关注点(如事务管理)的模块化。(在AOP教程中,此类关注点通常被称为"横切"关注点)1.AOP 概念对AOP中Aspect(切面)、JoinPoint(连接点)、PointCut(切入点)、Weaving(织入)、Advice(通知)等关键的术语和概念进行讲解2.AOP使用(注解方式)1、开启AOP@Configuration

2022-01-13 18:02:16 438

原创 小程序开发---小程序代码构成

小程序代码构成在上一章中,我们通过开发者工具快速创建了一个 QuickStart 项目。你可以留意到这个项目里边生成了不同类型的文件:.json 后缀的 JSON 配置文件.wxml 后缀的 WXML 模板文件.wxss 后缀的 WXSS 样式文件.js 后缀的 JS 脚本逻辑文件接下来我们分别看看这4种文件的作用。JSON 配置JSON 是一种数据格式,并不是编程语言,在小程序中,JSON扮演的静态配置的角色。我们可以看到在项目的根目录有一个 app.json 和 project.c

2022-01-05 15:36:43 171

Github加快访问速度.zip

github插件

2021-08-21

vip会员管理系统.zip

php实现会员信息管理,包括增删改查。

2021-05-24

学生信息管理系统.zip

简单的学生信息管理系统(无界面) 1:可以定义学生人数 2:添加一个学生 3:查找一个学生 4:根据编号更新学生的基本信息 5:根据编号删除学生 6:根据编号输入学生各科成绩 7:根据某门成绩进行排序 8:根据总分进行排序 9:退出系统

2020-03-27

空空如也

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

TA关注的人

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