- 博客(242)
- 资源 (3)
- 收藏
- 关注
原创 JVM—内存可见性
可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。
2024-03-22 10:01:01 436
原创 java中的日期类
中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。类:代表一个包含年、月、日、小时、分钟、秒的日期对象,如2007-12-03T10:15:30。通过API或源码,可以看出Date类的大部分方法已经过时,已被第二代日期类Calendar代替,剩下的Date类常见方法如下所示。这三个类都代表日期对象,只是包含的日历字段不同,相当于Calendar类的代替。
2024-03-14 16:19:14 747
转载 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 117
原创 并发相关参数指标
概念:此数据指的是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 185
原创 自定义地区参数处理切面
省级账号:如果没有传参或者传参是省级,那就地区参数置NULL。如果传参是市级就进行截断。如果是区(县)级不处理。市级账号:如果没有传参,将地区设置为当前用户所属区域。如果传参和所属地区不一致,若传参>权限,地区设置为用户所属地区。如果传参和所属地区不一致,若传参<权限,判断参数级别,如果是市级就进行截断,如果是区(县)级不处理。县(区)账号:参数直接改为用户区域自定义接口注解import java.lang.annotation.*;@Retention
2023-06-28 09:39:44 393
原创 @Valid、@Validated参数校验详解
但是不能用在成员属性(字段)上,不支持嵌套检测,只能通过@Valid配合实现嵌套校验。@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上,支持嵌套检测,可以用在list,set等集合上实现嵌套校验。将不同的校验规则分给不同的组,在使用时,指定不同的校验规则,可以用于更新和新增接口不同的校验规则。因此我们在这里做了一个全局的异常处理类,用于处理参数校验失败后抛出的异常,同时进行日志输出。@Validated:提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。
2023-06-27 15:38:49 2222 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 849 1
转载 git分支的理解
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。
2023-01-06 11:46:30 374
转载 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 3886
原创 自定义rocketmq启动脚本
按照顺序先后启动mqnamesrv、mqbroker、可视化管理工具。source一下,启动脚本我的是存放再script目录下。任意目录下都可以使用。
2022-08-04 17:40:45 787
原创 分布式事务解决方案
事务由单独单元的一个或者多个sq!语句组成,在这个单元中,每个mysql语句时相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条sq!语句一旦执行失败或者产生错误,整个单元将会回滚,所有受到影响的数据将会返回到事务开始以前的状态;如果单元中的所有sq!语句均执行成功,则事务被顺利执行。分布式事务就是为了保证不同数据库的数据一致性CAP定理,又被叫作布鲁尔定理。对于设计分布式系统(不仅仅是分布式事务)的架构师来说,CAP就是你的入门理论。...
2022-08-02 11:37:54 103
原创 消息中间件汇总
RabbtiMQ理论基础RabbitMQ支持消息的模式(官方API)RabbitMQ使用场景RabbitMQ支持消息的模式(SpringBoot)RabbitMQ-过期时间TTLRabbitMQ-死信队列RabbitMQ运维-持久化机制和内存磁盘的监控
2022-08-01 16:43:30 87
原创 RabbitMQ运维-持久化机制和内存磁盘的监控
消息持久化是通过消息的属性deliveryMode来设置是否持久化,在发送消息时通过basicPublish的参数传入。不论是持久化的消息还是非持久化的消息都可以写入到磁盘中,只不过非持久的是等内存不足的情况下才会被写入到磁盘中。非持久消息是指当内存不够用的时候,会把消息和数据转移到磁盘,但是重启以后非持久化队列消息就丢失。队列的持久化是定义队列时的durable参数来实现的,Durable为true时,队列才会持久化。然后重启rabbit-server服务,会发现持久化队列依然在,而非持久队列会丢失。..
2022-07-27 13:49:54 565
原创 RabbitMQ-死信队列
DLX,全称为Dead-Letter-Exchange,可以称之为死信交换机,也有人称之为死信邮箱。当消息在一个队列中变成死信(deadmessage)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX,绑定DLX的队列就称之为死信队列。消息被拒绝消息过期队列达到最大长度DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。......
2022-07-27 13:43:28 401
原创 RabbitMQ-过期时间TTL
过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。第二种方法是对消息进行单独设置,每条消息TTL可以不同。如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为deadmessage被投递到死信队列,消费者将无法再收到该消息。...
2022-07-27 13:25:55 333
原创 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 380
原创 RabbitMQ使用场景
按照以上约定,用户的响应时间相当于是订单信息写入数据库的时间,也就是50毫秒。注册邮件,发送短信写入消息队列后,直接返回,因此写入消息队列的速度很快,基本可以忽略,因此用户的响应时间可能是50毫秒。并行方式将订单信息写入数据库成功后,发送注册邮件的同时,发送注册短信。与串行的差别是,并行的方式可以提高处理的时间。串行方式将订单信息写入数据库成功后,发送注册邮件,再发送注册短信。5如果服务器承载不了,你需要自己去写高可用,HA镜像模型高可用。4如何保证消息的可靠性,死信队列和消息转移的等。...
2022-07-25 19:33:33 101
原创 RabbitMQ支持消息的模式(官方API)
由于消息接收者处理消息的能力不同,存在处理快慢的问题,我们就需要能者多劳,处理快的多处理,处理慢的少处理;2、公平分发根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理的少;总结work1和work2的消息处理能力不同,但是最后处理的消息条数相同,是“按均分配”。当有多个消费者时,我们的消息会被哪个消费者消费呢,我们又该如何均衡消费者消费信息的多少呢?Direct模式是fanout模式上的一种叠加,增加了路由RoutingKey的模式。1、轮询模式的分发一个消费者一条,按均分配;...
2022-07-25 19:12:16 189
原创 RabbitMQ理论基础
1、项目中为什么要使用消息中间件2、项目中为什么使用RocketMQ而不是RabbitMQ3、系统TPS有多少?引入消息中间件之后,系统一定不会被撑爆了吗?4、消息中间件中出现大量的消息堆积。会产生什么后果?5、如何发现出现了大量消息的堆积?采取了哪些应急措施?问题产生的根源是什么?如何避免。......
2022-07-25 09:02:26 228
原创 Docker基础
Docker的常用命令帮助命令帮助文档的地址 https://docs.docker.com/reference/镜像命令docker images 查看所有本地的主机上的镜像docker search 搜索镜像docker pull 下载镜像docker rmi -f [镜像id]容器命令说明:有了镜像才可以创建容器,linux新建容器列出所有运行中的容器退出容器删除容器启动和停止容器的操作后台启动容器查看日志查看容器中的进程信息查看镜像的元数据进入当前正在运行的容器从容
2022-06-17 09:31:42 225
转载 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 1038
原创 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 185
原创 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 3105
原创 Hadoop序列化
Hadoop序列化1、序列化概述1)什么是序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。2)为什么要序列化一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。3)为什么不用Java的序列化Java
2022-02-15 09:40:30 651
原创 MapReduce概述
1、MapReduce概述1.1 MapReduce定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。1.2 MapReduce优缺点优点1)MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写一个简单
2022-02-15 09:34:45 489
原创 HDFS概述
HDFS概述1、HDFS 产出背景及定义1)HDFS产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。2)HDFS定义HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色
2022-02-09 15:16:18 810
原创 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 1305
原创 Hadoop概述
Hadoop概述1、 简单介绍Hadoop是一个由Apache基金会所开发的分布式系统基础架构。主要解决,海量数据的存储和海量数据的分析计算问题。广义上说,Hadoop通常是指一个更广泛的概念—Hadoop生态圈。2 、Hadoop优势(4高)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处
2022-01-21 15:43:27 1647
原创 统一接口日志处理(日志入库)
统一接口日志处理(日志入库)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 2311
原创 深入探究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 390
原创 小程序开发---小程序代码构成
小程序代码构成在上一章中,我们通过开发者工具快速创建了一个 QuickStart 项目。你可以留意到这个项目里边生成了不同类型的文件:.json 后缀的 JSON 配置文件.wxml 后缀的 WXML 模板文件.wxss 后缀的 WXSS 样式文件.js 后缀的 JS 脚本逻辑文件接下来我们分别看看这4种文件的作用。JSON 配置JSON 是一种数据格式,并不是编程语言,在小程序中,JSON扮演的静态配置的角色。我们可以看到在项目的根目录有一个 app.json 和 project.c
2022-01-05 15:36:43 152
原创 Java面试Day6 - springboot相关
springboot是通过main方法下的SpringApplication.run方法启动的,启动的时候他会调用refshContext方法,先刷新容器,然后根据解析注解或者解析配置文件的形式注册bean,而它是通过启动类的SpringBootApplication注解进行开始解析的,他会根据EnableAutoConfiguration开启自动化配置,里面有个核心方法ImportSelect选择性的导入,根据loadFanctoryNames根据classpash路径以MATA-INF/sprin
2021-11-04 10:09:45 108
原创 大数据概论
大数据概念大数据(Big Data) :指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据主要解决,海量数据的 采集、存储、分析计算问题大数据的特点1.Volume(大量)2.Velocity(高速)3.Variety(多样)4.Value(低价值密度)大数据部门间业务流程分析大数据部门内组织结构...
2021-10-19 20:11:16 92
原创 Java面试Day5 - HashMap和Hashtable相关
HashMap和Hashtable相关HashMap和Hashtable的区别JDK7下的CurrentHashMap(线程安全)CurrentHashMap和hashtable的区别HashMap和Hashtable的区别1、继承的父类不同HashMap继承自AbstractMap类。但二者都实现了Map接口。Hashtable继承自Dictionary类,Dictionary已经废弃。2、HashMap线程不安全,HashTable线程安全Hashtable 中的方法大多是Synchroni
2021-10-18 15:36:31 97
原创 Java面试 Day4 - 线程相关
线程的生命周期?线程有几种状态1.线程通常有 五种状态,创建,就绪,运行,阻塞和死亡状态。2.阻塞的情况又分为三种(1) 等待阻塞:运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把该线程放入"等待池"中。进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify或notifyAll方法才能唤醒,wait是object类的方法。(2) 同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,jvm会把该线程放入"锁池"中。(3) 其他阻塞:运行的线程执行slee
2021-10-14 08:51:35 78
原创 Java面试 Day3 - InnoDB和MyISAM区别和数据库索引
InnoDB和MyISAM区别一、数据库事务简介要讲解InnoDB,MyISAM 首先一定要知道数据库事务!==数据库事务( transaction)==是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。事务特性(ACID)A: Atomicity, 原子性:事务是最小的操作序列单元,一个事务中包含的所有操作在一次执行后要么全部操作成功,要么全部操作失败,也就是说如果事务执行过程.
2021-10-12 19:00:09 188
原创 Java面试 Day3 - 一个网址在浏览器输入回车后
背景介绍一个网址在浏览器输入回车后,一道经典的面试题,参考了网上的资料,记录一下,方便日后知识点回顾。正文背后的过程大概分为以下几点:1.DNS域名解析2.建立TCP连接3.发送HTTP请求4.服务器处理请求5.返回响应结果6.关闭TCP连接7.浏览器解析HTML8.浏览器布局渲染当我们在浏览器输入网址并回车后,命运已经被安排了。。。【一、DNS域名解析】我们在浏览器输入网址,其实就是要向服务器请求我们想要的页面内容,所有浏览器首先要确认的是域名所对应的服务器在哪里。将域名
2021-10-12 15:26:19 123
原创 Java面试 Day2 - 二叉树的遍历
今天我们就来了解一下二叉树的经典面试题:已知二叉树的前序遍历顺序为ABCDEGHF,中序遍历顺序为DBAGEHCF,求该二叉树的后序遍历。还有:已知二叉树的中序遍历顺序为DBAGEHCF,后序遍历顺序为DBGHEFCA,求该二叉树的前序遍历。类似的面试题应该如何应对呢?什么是二叉树?在开始之前,容我再唠叨几句:什么是二叉树?二叉树(Binary Tree)是一种特殊的树,树上的每个结点最多有两个子树的树结构,也就是说每一个父结点最多长出两个树杈。通常两个子结点被称为左子结点和右子结点。比
2021-10-10 11:49:21 347
原创 Java笔试 Day1 - 基础相关
什么是面向对象?面向对象有什么特性?面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为,面向对象是相对于面向过程来讲的,指的是把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。面向对象具有三个特性:封装、继承和多态。什么是接口?什么是抽象类?接口和抽象类有什么异同?分别用于什么场景?抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。相同点:1、不能直接实例化,如果.
2021-09-29 10:16:34 201
学生信息管理系统.zip
2020-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人