- 博客(66)
- 资源 (2)
- 收藏
- 关注
原创 JAVA-JVM 内存模型&类加载器&GC算法&GC调优
jvm是(Java虚拟机)的缩写,JVM是一个虚构出来的计算机,有着自己完善的硬件架构,如处理器、堆栈等。内存模型,类加载器机制和GC垃圾回收算法和优化
2024-09-03 21:11:17 1262
原创 Mysql实时数据同步工具Alibaba Canal 使用
canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。基于日志增量订阅和消费的业务包括数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、倒排索引等)业务 cache 刷新带业务逻辑的
2023-12-27 18:59:37 1862
原创 【9】Spring Boot 3 集成组件 : 基于spring security的认证权限开发【认证】
:book: 本文核心知识点: - [x] 认证和权限流程 - [x] 认证和权限控制说明 - [x] 认证流程在spring security中的相关理论知识 - [x] JWT认证 - [x] 用户名认证 - [x] session认证 - [x] 认证流程Sepring Security配置
2023-12-07 14:42:39 1295
原创 Spring Boot 3.0 : 集成flyway数据库版本控制工具
Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL(PL/SQL、T-SQL)方式和Java方式,支持命令行客户端等,还提供一系列的插件支持(Maven、Gradle、SBT、ANT等)。
2023-12-07 11:26:05 2049
原创 【8】Spring Boot 3 集成组件:安全组件 spring security【官网概念篇】
spring securit是一个框架,它提供身份验证授权和针对常见攻击的保护。它具有保护命令式和响应式应用程序的一流支持,是保护基于spring的应用程序的事实上的标准。Spring Security默认使用。但是,您可以通过将公开为来定制它。如果您正在从Spring Security 4.2迁移。通过公开NoOpPasswordEncoder bean,您可以恢复到以前的行为。@Bean定义一个Filter集成Filter,or添加到 SecurityFilterChain@Beanhttp// ...
2023-11-22 22:31:50 2651 1
原创 【7】Spring Boot 3 集成组件:缓存组件 spring cache + spring data redis
spring cache 缓存抽象加上spring data包和spring boot autoconfig 配置包的能力,可以快速接入一个具体的缓存实现。redis是我们公司基本使用的缓存策略。所以针对redis的一些自定义配置,通过 java bean的方式实现。着重强调一下。
2023-11-17 01:02:48 2348
原创 【6】Spring Boot 3 集成组件:knift4j+springdoc+swagger3
本文核心知识点: openApi 规范 Swagger3 springdoc knift4j+springdoc+swagger3
2023-11-15 13:51:10 1001
原创 【3】Spring Boot 3 集成mybatis-plus+druid+mysql
本文核心知识点:Hikari + jdbc + mysql 集成方案Druid + Mybatis Plus + Mysql集成方案
2023-11-14 19:27:24 1694
原创 【4】Gradle-快速入门使用【Gradle多模块项目详解】
本文核心知识点: 多模块项目 多模块添加子项目 多模块全局配置方式 多模块间依赖 多模块项目调整 多模块buildSrc目录 多模块配置时间和执行时间 并行执行和解耦合
2023-11-12 19:28:38 1089
原创 【3】Gradle-快速入门使用【Gradle概念】
Gradle的一些概念 - [x] 任务 - [x] 任务的依赖关系 - [x] 库依赖关系 - [x] 插件 - [x] 构建缓存
2023-11-11 20:23:56 220
原创 【2】Gradle-快速入门使用【Gradle项目结构概念】
本文核心点:- [x] Gradle安装的条件- [x] Gradle的项目初始化命令- [x] Gradle的IDEA中使用- [x] Gradle Wrapper的概述- [x] Gradle的项目结构- [x] Gradle多模块- [x] settings.gradle和build.gradle文件的作用
2023-11-11 17:18:37 376
原创 【1】Gradele概述
Gradle 构建工具是一款`快速`、`可靠`且`适应性强`的`开源`构建`自动化工具`,具有优雅且`可扩展的``声明式构建`语言。本文从为什么选择gradle,兼容性,与maven的比较进行编写
2023-11-10 13:46:02 114
原创 Spring Boot 3.0正式发布及新特性解读
`Spring Boot 3.0` 现已正式发布,它包含了 12 个月以来 151 个开发者的 5700 多次代码提交。这是自 4.5 年前发布 2.0 以来,Spring Boot 的第一次重大修订。它也是第一个支持 `Spring Framework 6.0` 和 `GraalVM` 的 `Spring Boot GA` 版本,同时也是第一个基于 `Java 17` 的 Spring Boot 版本,以 `Jakarta EE 9` 为基准并支持 Jakarta EE 10。同时借助于 Graal
2023-11-09 14:43:35 1689
原创 Redis系列-Redis性能优化与安全【9】
Redis 是基于`单线程模型`实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了`非阻塞式 IO`,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 `O(1)`),但由于 Redis 是`单线程执行`的特点,因此它对性能的要求更加苛刻,本文我们将通过一些优化手段,让 Redis 更加高效的运行。
2023-11-09 10:24:41 472
原创 Redis系列-Redis集群模式【8】
Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 Redis 在 分布式 方面的需求。当遇到 单机内存、并发、流量 等瓶颈时,可以采用 Cluster 架构方案达到 `负载均衡` 的目的。
2023-11-08 18:45:51 291
原创 Redis系列-四种部署方式-单机部署+主从模式+哨兵模式【7】
redis-四种部署模式 - 单机模式 - 主从模式 - 哨兵模式 - 集群模式
2023-11-08 18:04:45 1094 2
原创 Redis系列-Redis过期策略以及内存淘汰机制【6】
redis主要是基于内存来进行高性能、高并发的读写操作的。但既然内存是有限的,例如redis就只能使用10G,你写入了20G。这个时候就需要清理掉10G数据,保留10G数据。那应该保留哪些数据,清除哪些数据,为什么有些数据明明过期了,怎么还占用着内存?这都是由redis的过期策略来决定的。
2023-11-08 15:52:31 260
原创 Redis系列-Redis数据类型【3】
Redis是一个开源,内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
2023-11-08 13:39:08 137
原创 Redis系列-Redis安装与配置【2】
二、Redis安装与配置1. Redis安装步骤2. Redis配置文件说明3. Redis启动和停止命令
2023-11-08 11:30:02 180
原创 Redis系列-redis概述【1】
redis的官网地址redis.io。(域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地),Vmware在资助着redis项目的开发和维护。,即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表。
2023-11-08 11:03:26 71
原创 【JAVA】:万字长篇带你了解JAVA并发编程-死锁优化【六】
死锁是多线程编程中常见的问题,对系统的性能和可用性有很大的影响。为了避免死锁的发生,我们可以遵循一些原则,如。
2023-11-08 09:08:43 180
原创 【JAVA】:万字长篇带你了解JAVA并发编程-并发设计模式【五】
并发设计模式是一种用于解决并发编程中常见问题的设计思想和模式集合。这些设计模式提供了通用的解决方案,帮助开发者构建可靠、高效的并发程序。
2023-11-07 19:46:57 169
原创 【JAVA】:万字长篇带你了解JAVA并发编程-线程安全【四】
线程安全是多线程编程是的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且准确的执行,不会出现数据污染等意外情况。
2023-11-06 13:32:29 86
原创 【JAVA】:万字长篇带你了解JAVA并发编程-并发集合【三】
Java提供的并发集合框架和并发集合类 java.util.current包下的并发集合工具。ConvurrentHashMap,CopyOnWriteArrayList,CopyOnWriteArraySet,ConcurrentSkipListMap,BlockingQueue,ConcuurentLinkedQueue,介绍了迭代器的fail-fast和fail-salft机制
2023-11-03 11:02:54 142
原创 【JAVA】:万字长篇带你了解JAVA并发编程-线程池【二】
线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程所带来的资源消耗。在JAVA中主要是使用ThreadPoolExecutor类来创建线程池,并且JDK中也提供了Executors工厂类来创建线程池(不推荐使用)。❗❗❗ 这就是线程池最核心的设计思路,「复用线程,平摊线程的创建与销毁的开销代价」。
2023-10-26 16:39:21 396
原创 【JAVA】:万字长篇带你了解JAVA并发编程【一】
并发针对单核 CPU 而言,它指的是 CPU 交替执行不同任务的能力;并行针对多核 CPU 而言,它指的是多个核心同时执行多个任务的能力。单核 CPU 只能并发,无法并行;换句话说,并行只可能发生在多核 CPU 中。在多核 CPU 中,并发和并行一般都会同时存在,它们都是提高 CPU 处理任务能力的重要手段。
2023-10-25 22:24:17 460
原创 【分布式】: 幂等性和实现方式
在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。
2023-10-24 18:09:59 1236
原创 【JAVA】多线程:一文快速了解多线程
多线程能够帮助我们有效利用CPU的性能处理任务。提高了处理能力和并发能力。但是多线程(并发)会引起线程数据安全访问问题。需要我们对安全问题有足够认识,该文章只是介绍了Java中的多线程编程的理论基础知识。线程安全我们下一章再讨论~
2023-10-23 18:19:51 75
原创 二十三、设计模式之组合模式![
组合模式解耦了客户程序与复杂元素内部结构,从而使客户程序可以像处理简单元素一样来处理复杂元素。如果你想要创建层次结构,并可以在其中以相同的方式对待所有元素,那么组合模式就是最理想的选择。本章使用了一个文件系统的例子来举例说明了组合模式的用途。在这个例子中,文件和目录都执行相同的接口,这是组合模式的关键。通过执行相同的接口,你就可以用相同的方式对待文件和目录,从而实现将文件或者目录储存为目录的子级元素。
2023-10-23 14:59:24 219
原创 二十二、设计模式之访问者模式
访问者模式(Visitor Pattern)是GoF提出的23种设计模式中的一种,属于行为模式。据《大话设计模式》中说算是最复杂也是最难以理解的一种模式了。从定义可以看出结构对象是使用访问者模式必备条件,而且这个结构对象必须存在遍历自身各个对象的方法。这便类似于Java语言当中的collection概念了。
2023-10-23 14:17:40 186
原创 二十一、设计模式之解释器模式
解释器模式为某个语言定义它的语法表示,并定义一个解释器用来处理这个语法。语言:不仅仅指平时说的中、英、日、法等各种语言。从广义上来讲,只要是能承载信息的载体,我们都可以称之为“语言”,比如,古代的结绳记事、盲文、哑语、摩斯密码等。一些应用提供了内建(Build-In)的脚本或者宏语言来让用户可以定义他们能够在系统中进行的操作。解释器模式的目的就是使用一个解释器为用户提供一个一门定义语言的语法表示的解释器,然后通过这个解释器来解释语言中的句子。
2023-10-23 10:57:30 98
原创 二十、设计模式之迭代器模式
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。
2023-10-22 13:03:20 299
原创 十九、设计模式之责任链模式
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
2023-10-22 12:15:43 143
原创 十八、设计模式之命令模式
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)
2023-10-20 11:21:31 36
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人