- 博客(38)
- 收藏
- 关注

原创 tomcat服务器报内存溢出错误OutOfMemory处理
生产环境Tomcat服务运行一段时间就不能访问了,有内存溢出的错误,用jmap命令生成了dump文件,dump文件有7个多g,用MAT方式分析内存溢出错误,内存配置到10g还是报内存溢出错误,生产上未能正确生成内存分析报告,测试环境能生成内存溢出报告,最后根据测试环境内存溢出报告正确定位问题。1、上传MemoryAnalyzer-1.8.0.20180604-inux.gtk.x86 64.zip 到/home/dsm/tools 目录(需要创建 tools 目录)4、生产内存分析报告。
2024-12-03 16:54:48
802
原创 审计平台本地部署遇到的坑
要用特定版本的redis,且设置redis密码 redis-windows-7.4.0。以上jar包需要另外提供,仓库中不能下载。明明可以查看到包的路径,点开就编译不通过。多操作几次就可能不报红,不行再重新编译。支持JDK 21及JDK 8双版本适配。
2025-04-22 15:49:14
89
原创 HTML5/JS/Vue与Java后端技术类比(AI创作)
正如Java从基础语法到Spring生态的演进。理解这种分层协作模式,可以更清晰地把握前端技术栈的设计哲学与应用场景。
2025-04-10 09:36:58
503
原创 管理系统-接口信息
接口描述:新增用户并绑定角色和应用(需满足“绑定用户或角色必须且只能一个”的约束)。接口描述:根据用户ID删除用户及关联的角色、应用绑定关系。接口描述:根据用户ID查询详细信息及关联的角色、应用。请求路径:DELETE /users/{userId}请求路径:GET /users/{userId}请求路径:PUT /users/{userId}接口描述:修改用户基本信息及重新绑定角色/应用。请求参数:路径参数 userId。请求参数:路径参数 userId。请求路径:GET /users。
2025-03-29 16:01:40
339
原创 Vue学习笔记
Vue 是一款用于构建用户界面的渐进式的JavaScript框架。(官方:https://cn.vuejs.org/)介绍:Axios 对原生的Ajax进行了封装,简化书写,快速开发。
2025-02-25 11:18:03
669
原创 SpringBoot+Vue3-学习笔记
②自动配置:遵循约定大约配置的原则,在boot程序启动后,一些bean对象会自动注入到ioc容器,不需要手动声明,简化开发。③内嵌的Tomcat、Jetty(无需部署WAR文件)、外部化配置、不需要XML配置(properties/yml)如果要注册的bean对象来自于第三方(不是自定义的),是无法用 @Component 及衍生注解声明bean的。不使用SpringBoot:配置依赖、配置servlet、配置beans扫描、写Controller。◆ @EnableXxxx注解,封装@Import注解。
2025-02-20 11:21:38
280
原创 mysql学习笔记-多版本并发控制
在 MVCC机制中,多个事务对同一个行记录进行更新会产生多个历史快照,这些历史快照保存在 Undo Log里。如果一个事务想要查询这个行记录,需要读取哪个版本的行记录呢?这时就需要用到 ReadView 了,它帮我们解决了行的可见性问题。ReadView 就是事务A在使用MVCC机制进行快照读操作时产生的读视图。当事务启动时,会生成数据库系统当前的一个快照,InnoDB 为每个事务构造了一个数组,用来记录并维护系统当前活跃事务 的ID(“活跃”指的就是,启动了但还没提交)。
2025-02-19 10:46:36
368
原创 mysql学习笔记-锁
则先在 B+ 树中定位到这条记录的位置,然后获取记录的 X锁,将该记录彻底删除掉(就是把记录彻底移入垃圾链表),最后再插入一条新记录。这个定位待修改记录在B+树中位置的过程看成是一个获取X锁 的 锁定读 ,新插入的记录由 INSERT 操作提供的 隐式锁 进行保护。则先在 B+ 树中定位到这条记录的位置,然后再获取一下记录的 X锁,最后在原记录的位置进行修改操作。一般情况下,新插入一条记录的操作并不加锁,通过一种称之为 隐式锁 的结构来保护这条新插入的记录在本事务提交前不被别的事务访问。
2025-02-11 09:23:51
256
原创 mysql学习笔记-MySql事务日志&其他日志
undo log:是存储引擎层(innodb)生成的日志,记录的是 逻辑操作 日志,比如对某一行数据进行了INSERT语句操作,那么 undo log就记录一条与之相反的DELETE操作。3.事务已经提交并过期的数据(expired undo information):事务已经提交,而且数据保存时间已经超过undo retention参数指定的时间,属于已经过期的数据。主要为了保证数据的可靠性;redo log是物理日志,记录的是数据页的物理变化,undolog不是redo log的逆过程。
2025-02-05 16:06:01
788
原创 mysql学习笔记-事务基础知识
事务的隔离性是指一个事务的执行不能被其他事务干扰 ,即一个事务内部的操作及使用的数据对 并发 的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。举例2、在数据表中我们将 姓名 字段设置为 唯一性约束,这时当事务进行提交或者事务发生回滚的时候,如果数据表中的姓名不唯一,就破坏了事务的一致性要求。ACID 是事务的四大特性,在这四个特性中,原子性是基础,隔离性是手段,一致性是约束条件,而持久性是我们的目的。步骤3:事务结束的状态:提交的状态(COMMIT)、中止的状态(ROLLBACK)
2025-01-24 15:57:50
626
原创 mysql学习笔记-数据库其他调优策略
第5步:使用 Redis 或 Memcached 作为缓存。第4步:优化物理查询(在这个部分中,我们需。要掌握的重点是对索引的创建和使用。第1步:选择适合的 DBMS。第3步:优化逻辑查询。
2025-01-24 11:33:04
226
原创 mysql学习笔记-索引优化与查询优化
1.8 is null可以使用索引,is not null无法使用索引。因为classid 使用了范围条件,导致name索引没用上。1.4 计算、函数、类型转换(自动或手动)导致索引失效。不同的字符集进行比较前需要转换,会造成索引失效。1.10 OR前后存在非索引的列,索引失效。= 或者<>)索引失效。1.9 like以通配符%开头索引失效。1.6 范围条件右边的列索引失效。1.5 类型转换导致索引失效。1.1 全值匹配我最爱。1.2 最佳左前缀法则。
2025-01-20 23:10:50
337
原创 mysql学习笔记-性能分析工具的使用
MySOL的慢查询日志,用来记录在MySOL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。showProfile是MySQL提供的可以用来分析当前会话中SQL都做了什么、执行的资源消耗情况的工具,可用于sql调优的测量。如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。
2025-01-17 23:03:13
219
原创 mysql学习笔记-索引的创建与设计原则
在记录行数一定的情况下,列的基数越大,该列中的值越分散;列的基数越小,该列中的值越集中。②数据类型越小,索引占用的存储空间就越少,在一个数据页内就可以放下更多的记录,从而减少磁盘I/0带来的性能损耗,也就意味着可以把更多的数据页缓存在内存中,从而加快读写效率。连接表的数量尽量不要超过3张、对WHERE条件创建索引、对用于连接的字段创建索引并且该字段在多张表中的类型必须一致。2.1、字段的数值有唯一性的限制(如果某个字段是唯一性的,就可以直接创建唯一性索引,或者主键索引。注意和主键索引区分。
2025-01-17 22:57:07
149
原创 mysql学习笔记-InnoDB数据存储结构
FIL_PAGE_PREV(4字节)和FIL_PAGE_NEXT(4字节):页与页之间形成双向链表。FIL_PAGE_TYPE(2字节):页面类型,索引页、溢出页、系统页、Undo日志页等信息。FIL_PAGE_SPACE_OR_CHKSUM(4字节):校验数据完整性。FIL_PAGE_LSN(8字节):页面被最后修改对应的日志序列。FIL_PAGE_OFFSET(4字节):数据页唯一编号。1、File Header(文件头部)(38字节)6、Trailer(文件尾部)(8字节)记录主键最大值、最小值。
2025-01-12 23:14:25
252
原创 mysql学习笔记-存储引擎、索引数据结构
InnoDB(具备外键支持功能的事务存储引擎)、MyISAM (主要的非事务处理存储引擎)、 Archive(用于数据存档) 、Blackhole(丢弃写操作,读操作会返回空内容)、CSV(存储文件格式为CSV)、Memory(置于内存的表)、Federated(访问远程表)、Merge(管理多个MyISAM表构成的表集合)、 NDB(MySQL集群专用存储引擎)缺点:不支持事务、行级锁、外键、安全性不高(奔溃后无法完全恢复)应用场景:只读业务或以读为主的业务,访问速度快。1、mysql默认的存储引擎。
2025-01-06 23:01:34
133
原创 MySql学习笔记(1)
进制转换函数比较少用:BIN(10),HEX(10),OCT(10),CONV(10,10,8)、字符串函数。可以查询出Name='king'、='KING'的数据,Oracle是区分大小写的,只能查出name=‘King’的。集合A、集合B 组合的所有可能,组合的个数是两个集合个数的乘积。count(*)计算指定字段在查询结果的个数、方差、标准差、中位数 用得很少。2、分页方式不一样,mysql使用limit分页,oracle 用rownum加子查询进行分页。左边的表全部数据,右边展示满足条件的数据。
2024-12-31 11:09:18
283
原创 redis6.2.14集群部署
cluster-replicas 1 表示为集群中的每个master节点创建一个slave节点。redis_6380.conf修改一下配置。
2024-12-24 16:39:47
229
原创 Kafka分区副本机制
随机策略,每次都随机地将消息分配到每个分区。在较早的版本,默认的分区策略就是随机策略也是为了将消息均衡地写入到每个分区。分区中是有leader和follower的概念,为了确保消费者消费的数据是一致的,只能从分区leader去读写消息follower做的事情就是同步数据,Backup。而粘性会保证跟上一次的尽量一致,只是将新的需要分配的分区,均匀的分配到现有可用的消费者中即可。分区分配策略:保障每个消费者尽量能够均衡地消费分区的数据,不能出现某个消费者消费分区的数量特别多,某个消费者消费的分区特别少。
2024-12-22 21:53:57
734
原创 Kafka生产者幂等性与事务
Kafka事务是2017年Kafka 0.11.0.0引入的新特性。类似于数据库的事务。Kafka事务指的是生产者生产消息以及消费者提交offset的操作可以在一个原子操作中,要么都成功,要么都失败。尤其是在生产者、消费者并存时,事务的保障尤其重要。(consumer-transform-producer模式)除了 生产者生产消息以及消费者提交offset的操作 还有那些场景会用到事务呢?事务这一章节没懂讲的什么?跟数据库事务一样吗?
2024-12-21 21:58:43
118
原创 Kafka中的重要概念
Kafka集群是必须要有ZooKeeper的。注意:每一个Kafka的节点都需要修改broker.id(每个节点的标识,不能重复)
2024-12-20 23:05:23
167
原创 中间件学习笔记之Kafka-消息队列简介
举个例子来理解,为了分析网站的用户行为,我们需要记录用户的访问日志。这些一条条的日志,可以看成是一条条的消息,我们可以将它们保存到消息队列中。大型电商网站(淘宝、京东、国美、苏宁.)、App(抖音、美团、滴滴等)等需要分析用户,要根据用户的访问行为来发现用户的喜好以及活跃情况,需要在页面上收集大量的用户访问。使用消息队列可以将系统进行解耦合,现在第一个微服务可以将消息放入到消息队列中,另一个微服务可以从消息队列中把消息取出来进行处理。因为消息队列是低延迟、高可靠、高吞吐的,可以应对大量并发。
2024-12-17 22:01:58
453
原创 集合工具类Collections
/boolean replaceAll(List list,0bject oldVal,0bject newVal):使用新值换 List 对象的所有旧值。sort(List,Comparator):根据指定的Comparator 产生的顺序对 List 集合元素。//void copy(List dest,List src):将src中的内容复制到dest中。swap(List,int,int):将指定list集合中的i处元素和 j处元素进行交换。知道有这些方法就行,用的时候查询API帮助文档即可。
2024-12-14 21:01:30
186
原创 集合笔记之TreeMap
/使用默认的构造器,创建TreeMap,是无序的(也没有排序)—这一点运行跟韩老师讲得不一样。输出结果:{adids=阿迪达斯, lining=李宁, nike=耐克, peak=匹克}输出结构:{peak=匹克, nike=耐克, lining=李宁, adids=阿迪达斯}
2024-12-14 13:39:18
174
原创 集合笔记之TreeSet
TreeSet默认构造器,添加字符串,输出是有顺序的输出结果[abc, blue, chenhm, jack, lia, rose]
2024-12-14 13:15:41
214
原创 集合笔记之Properties
class Properties extends Hashtable {} 继承了HashTable,所以Properties是线程安全的。3、Properties 还可以用于 从 xxx.properties 文件中,加载数据到Properties类对象?1、Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存数据。4、说明: 工作中 xxx.properties 文件通常作为配置文件,不过好像也没怎么用过。
2024-12-14 11:08:06
109
原创 集合笔记之HashTable
/1,底层由数组 Hashtable$Entry[]初始化大小为11,数组里面存链表,链表不会不像HashMap一样变成红黑树。//4.执行方法 addEntry(hashikey,value,index);//按照 int newCapacity=(oldcapacity
2024-12-12 22:53:15
116
原创 集合笔记之HashMap
1)Map与Collection并列存在。用于保存具有映射关系的数据:Key-Value2)Map 中的 key 和 value 可以是任何引用类型的数据,会封装到HashMap.Node对象中3) Map 中的 key 不允许重复,原因和HashSet 一样,前面分析过源码.4)Map 中的 value 可以重复5) Map 的key 可以为 null, value 也可以为null ,注意 key 为null, 只能有一个value 为null ,可以多个.
2024-12-12 22:32:17
427
原创 集合专题笔记之LinkedHashSet
3)LinkedHashSet 根据元素的 hashCode 值来决定元素的存储位置,同时使用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的。答案是肯定的,当链表数量超过8个且table[]数组>=64时,其中的LinkedHashMap.Entry就会变成。//4.添加第一次时,直接将数组table扩容到16,存放的结点类型是LinkedHashMap.Entry。//2.LinkedHashSet 底层维护的是一个LinkedHashMap(是HashMap的子类)
2024-12-11 22:11:08
919
原创 集合Set下HashSet
1)无序(添加和取出的顺序不一致),没有索引7)不允许重复元素,所以最多包含·个null3)实现类可查看JDK API中Set帮助文档HashSet的全面说明1)HashSet实现了Set接囗2)HashSet实际上是HashMap,看下源码.(图)3)可以存放null值,但是只能有一个null4)HashSet不保证元素是有序的,取决于hash后,再确定索引的结果.(即,不保证存放元素的顺序和取出顺序一致)5)不能有重复元素/对象.在前面Set 接口使用已经讲过。
2024-12-08 17:33:57
310
原创 集合专题笔记之LinkedList
3)一般来说,在程序中,80%-90%都是查询,因此大部分情况下会选择ArrayList4)在一个项目中,根据业务灵活选择,也可能这样,一个模块使用的是ArrayList,另外一个模块是LinkedList.3)每个节点(Node对象),里面又维护了prev、next、item三个属性,其中通过prev指向前一个,通过next指向后一个节点。4)所以LinkedList的元素的添加和删除,不是通过数组完成的,相对来说效率较高。1)LinkedList底层维护了一个双向链表.5)模拟一个简单的双向链表。
2024-12-08 16:41:15
316
原创 集合专题笔记之List
/hasNext():判断是否还有下一个元素while(iteratorhasNext()){//next():①指针下移 ②将下移以后集合位置 经常使用,但不知道是这样运行的。3)ArrayList 基本等同于Vector,除了 ArrayList是线程不安全(执行效率高) 看源码在多线程情况下,不建议使用ArrayList。1)permits all elements, including null ,ArrayList 可以加入null,并且多个。##遍历器 Iterator内在原理。
2024-12-05 22:25:42
156
原创 Linux系统redis安装/升级
停止原 redis-5.0.14 redis 服务。用老版本redis.conf 替换新版本配置文件。mv 解压目录 安装目录。
2024-12-04 09:38:00
315
原创 nginx安装
若 Nginx 安装编译报错 conf/koi-win and /usr/local/nginx/conf/koi-win 为同一目录。-prefix=/home/dgs/nginx-1.26.2 为安装目录,最好安装在原来软件附件。安装目录:-prefix=/root/tanghai/dsm/nginx-1.26.2-gh。如果编译过程中遇到 ssl 模块报错 则跳过 ssl模块不安装 ssl 模块。/usr/local/nginx/conf/nginx.conf 替换。2、编译进入解压目录执行。
2024-12-03 17:05:02
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人