自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 【切面编程】自定义注解实现操作日志

*** @description 日志注解*//*** 模块名称* @return*//*** 业务类型* @return*/

2024-07-31 20:53:55 256

原创 Redis 的过期策略

Redis有几种不同的过期策略,用于管理键的过期和自动删除:

2024-07-03 15:40:34 337

原创 JAVA中什么是反射

在Java中,反射(Reflection)是指程序在运行时能够检查和修改类、方法、字段等结构的能力。

2024-07-03 14:32:40 633

原创 【幂等性】详解

在实际应用中,保证幂等性通常需要依赖于唯一标识符或版本号来追踪处理状态,或者设计操作步骤和算法,使得多次执行同一操作不会产生不同的结果。这在分布式系统和消息队列中尤为重要,因为网络问题或系统故障可能会导致消息重复传递和处理。幂等性(Idempotence)是指一个操作无论执行一次还是多次,结果都是一致的。在消息系统中,幂等性是指无论消息被处理多少次,系统的状态都不会改变,即不会产生副作用。总结来说,幂等性保证了系统在处理消息时的可靠性和一致性,能够有效地避免由于消息重复发送或处理而引发的问题。

2024-07-02 14:06:30 227

原创 Kafka如何防止消息重复发送

综上所述,Kafka 提供了多种机制来防止消息重复发送和处理,具体的选择取决于应用的需求和使用场景。在设计和实现中,通常会结合生产者端的幂等性设置、消费者端的幂等性保证、事务性保证以及适当的消息处理策略来确保消息系统的稳定性和一致性。Kafka 提供了几种方式来防止消息重复发送和处理。

2024-07-02 14:02:23 611

原创 npm的常用命令详解

npm 是 Node.js 的包管理工具,也是一个功能强大的命令行工具,用于管理项目依赖、执行脚本、发布包等。

2024-07-01 09:46:15 482

原创 Kafka如何防止消息丢失

持久化存储:Kafka 使用基于日志的存储模型。每个主题的分区都会被分割成多个片段(Segment),每个片段都是一个可追加的日志文件。生产者发送的每条消息都会被追加到对应分区的当前活跃片段(active segment)中。这种设计保证了消息在写入时是持久化的,即使在写入过程中发生故障,已经写入的消息也不会丢失。副本机制:Kafka 使用副本来提高消息的可靠性和持久性。每个主题的分区可以配置多个副本,每个副本分布在不同的 Broker 上。每个分区都有一个 Leader 副本(Lea

2024-07-01 09:41:24 314

原创 【详谈】延迟双删(数据库与缓存一致性策略)

延迟双删作为一种缓解数据库与缓存数据一致性问题的方法,通过延迟删除缓存数据来平衡系统性能和数据实时性的需求。在实际应用中,需要根据具体情况选择合适的延迟时间和实现方式,以保证系统在性能和一致性之间达到最佳的平衡。

2024-07-01 09:03:02 2255

原创 详解 Spring 框架中的动态代理(附案例)

代理模式简介代理模式是一种结构型设计模式,允许在不改变原始类(被代理类)代码的情况下,通过引入代理类来控制对原始类的访问。Spring 中的代理机制Spring AOP 提供两种代理方式:基于接口的 JDK 动态代理和基于类的 CGLIB 动态代理。–默认的实现是 JDK 动态代理JDK 动态代理如果目标对象实现了接口,Spring AOP 将使用 JDK 动态代理来创建 AOP 代理。

2024-06-24 13:57:29 505

原创 【超详细】使用RedissonClient实现Redis分布式锁

使用RedissonClient实现Redis分布式锁是一个非常简洁和高效的方式。Redisson是一个基于Redis的Java客户端,它提供了许多高级功能,包括分布式锁、分布式集合、分布式映射等,简化了分布式系统中的并发控制。

2024-06-14 09:14:40 653

原创 redis的分布式session和本地的session有啥区别

在web应用开发中,Session用于在多个请求之间存储用户数据。传统上,Session存储在服务器的内存中,即本地Session。然而,随着应用规模和复杂度的增加,特别是在分布式环境中,本地Session会遇到一些问题。这时,Redis等分布式存储系统就显得尤为重要,用于实现分布式Session存储。

2024-06-13 20:57:42 700

原创 Java异步任务详解

异步任务指的是不阻塞当前线程,任务提交后会在后台线程执行,主线程可以继续执行其他操作。异步任务通常用于提高应用程序的响应性和效率。通过这些方法,Java 中的异步任务可以有效地提高应用程序的性能和响应性,但同时也需要注意并发编程的各种潜在问题。

2024-06-13 16:34:16 400

原创 读写分离和分库分表详解

在实际应用中,读写分离和分库分表可以结合使用。比如,先通过分库分表解决数据量和并发访问的问题,然后再通过读写分离进一步提升读操作的性能。这两种技术的结合可以有效地提高系统的水平扩展能力和整体性能,但也需要更多的设计和运维投入。分库分表是将单个数据库中的数据拆分到多个数据库或多个表中,以提高数据库的性能和扩展能力。读写分离是将数据库的读操作和写操作分离到不同的数据库实例上,以提高系统性能和可扩展性。

2024-06-13 16:26:38 337

原创 详谈【悲观锁】和【乐观锁】的理解

悲观锁和乐观锁是两种常见的并发控制策略,它们用于解决多线程环境下数据的一致性问题。

2024-06-13 16:06:58 710

原创 【超详细】分析数据库sql语句执行慢的排查思路以及优化

sql语句查询效率慢的优化及定位分析

2024-06-12 21:03:28 3251

原创 数据库的优化方案

以上数据库优化,涵盖了索引优化、表结构优化、查询优化、缓存优化、硬件优化、定期维护和监控调优等方面。这些方法可以帮助提高数据库的性能和效率,从而改善系统的整体运行情况。

2024-06-12 20:55:59 313

原创 JAVA中EasyPoi导出word文档附带表格数据

导入easy-poi相关依赖

2024-06-12 20:00:15 366

原创 自定义注解获取属性对应枚举的翻译值

EnumShowIntegerSerializer 类的作用是根据EnumShow注解的配置,对整数类型的枚举值进行序列化时,除了输出数值本身,还会额外输出一个带有特定suffix的字符串字段,该字段的值是根据枚举值的特定规则计算得到的。如果枚举类为普通的Java枚举,则通过反射获取枚举值的键和值方法,并遍历枚举常量,找到对应整数值的枚举值,并获取其值。如果枚举类实现了BaseEnum接口,则通过BaseEnum.of方法获取枚举值,并获取其对应的字符串值。

2024-06-10 20:56:00 545

原创 JAVA根据视频url,获取视频时长

在需要获取视频时长时候需要调用这个工具类即可返回视频时长(秒)创建个视频解析工具类来获取视频时长。使用jave-all-deps包。导入相关视频解析依赖。

2024-06-03 08:36:15 698

原创 Java中【线程】及【线程池】详细介绍(概念、实现方式、生命周期、案例)

线程池在多线程编程的场景中非常常用,可以有效地控制并发线程的数量,提高程序的执行效率,并且避免线程创建和销毁的开销。在操作系统中,每个进程都有自己的地址空间和资源,而线程是在进程中运行的,它共享进程的资源,包括内存、文件和网络连接等。使用线程池时,我们只需要将需要执行的任务提交给线程池,线程池会自动管理线程,分配任务给空闲的线程执行。线程池的生命周期管理是保证多线程编程质量和性能的关键一环,合理地管理线程池的生命周期有助于避免资源泄漏和线程阻塞的问题,同时提高系统的性能和可维护性。

2024-05-15 09:08:17 1097

原创 java中wait()和sleep()的区别

是两个不同的方法,用于线程控制和同步。方法主要用于线程的暂停,暂停的时间可以是指定的固定时间。方法常用于线程的协作和同步,与锁对象配合使用,而。

2024-05-15 08:55:40 283

原创 【超详细】JAVA设计模式总结之23种设计模式详解(附示例代码)

单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点来访问该实例。这意味着无论何时请求该类的实例,都将返回相同的实例。单一实例: 一个类只能有一个实例。全局访问点: 提供一个全局的访问点,使得其他对象可以轻松地访问到这个实例。延迟实例化: 实例化过程被延迟到第一次请求该实例时。节省资源: 由于只有一个实例,节省了内存和系统资源。易于控制: 由于单例模式限制了实例化过程,因此易于对实例化过程进行控制。易于扩展: 对单例类的访问点是全局的,因此易于对其功能进行扩展和修改。

2024-05-11 15:59:02 2822 1

原创 SpringBoot整合Elasticsearch的CRUD--kafka同步更新数据库到es

ProductRepository接口,继承自CrudRepository,提供对ProductTOElastic类型数据的基本CRUD操作。该接口为操作产品数据提供了一套方法,使得可以在Elasticsearch中进行产品数据的增删改查。在application.yml中编写配置项目的启动信息。创建springboot项目上导入依赖。该实体类用于es中对应的文档属性。

2024-05-10 16:45:35 655 3

原创 Java整合Elasticsearch相关查询操作

在测试方法执行之前初始化一个EsClient的实例,并将其赋值给client变量。使用@Before注解标识该方法,确保它在所有@Test注解的方法执行之前运行。通过调用EsClient类的getClient()方法获取EsClient实例,为后续的测试提供必要的客户端对象。执行后可以进入kibana查看添加的文档,可以看到我们刚添加的书本信息数据。执行后可以进入kibana查看修改的文档,可以看到我们刚修改的书本信息数据。可以看到文档的内容已经被修改成功。执行后可看到数据已经被删除。

2024-05-09 15:47:52 606

原创 【超详细】Docker部署Elasticsearch、Kibana及其分词器的使用

Elasticsearch是一个开源的分布式搜索和分析引擎,它被设计用于快速、实时地搜索大量数据。它构建在Apache Lucene搜索引擎库之上,并提供了简单易用的RESTful API接口。Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。分布式架构。

2024-05-08 14:03:20 1182 1

原创 docker安装nginx部署前端项目

​ Nginx挂载的优点是可以方便地进行网站配置和管理。通过对不同目录进行挂载,可以针对不同的网站进行定制化的配置。同时,Nginx挂载也可以提高服务器的安全性,减少攻击的风险,因为攻击者无法直接访问服务器的根目录。​ Nginx挂载是指将某个文件夹或目录作为Nginx服务器的根目录进行访问,用于存放默认页面、日志、配置文件.打包成功后复制文件到你挂载的/home/nginx/html的文件夹中。然后进入/home/nginx/conf配置下 Nginx 配置。将容器内的文件复制到宿主机。

2024-04-29 09:12:42 1379 1

原创 阿里云服务器安装Docker详细步骤总结

今天申请了一个阿里云服务器,需要装docker,特此记录一下。

2024-04-25 13:56:11 1357 3

原创 克隆下来的项目删除原有git信息,上传到自己的git仓库

如果仓库干净,就不用进行这步,如果存在其他文件(md文件等),需要执行rebase,命令:git pull --rebase origin master。之后再使用 git remote add origin https://xxxx.git 进行添加。如果有远程信息 使用 git remote rm origin 删除,删除后再次查看则无信息。此时使用git remote -v 查看远程信息 可以看到刚才添加的。(2)添加本地文件,使用 git add . 进行添加。这时候去看自己的远程仓库上传成功。

2023-10-31 10:27:49 695 1

原创 Java实现微信模板消息推送----微信消息订阅模版

appid:微信小程序的唯一标识符,用于区分不同的小程序。secret:用于对小程序进行身份验证和安全保护的密钥。token:用于验证消息的有效性,确保消息来自微信服务器。aesKey:消息加解密密钥,用于对消息进行加密和解密。msgDataFormat:消息的数据格式,这里指定为JSON格式。相关参数都可在微信公众号里找到。

2023-10-24 15:22:18 627

原创 Docker 安装 Jenkins (保姆级教学——以及推荐插件安装不上问题解决)

本人在安装jenkies时候根据网上资料遇到很多问题,最后终于解决,现在总结下,避免踩坑。

2023-10-11 11:13:54 3213

原创 简单的Apache POI 案例(Excel的文件操作)

ApachePOI是用Java编写的免费开源的跨平台的Java工具,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件maven。

2023-10-10 15:09:51 124

原创 Java 实现邮箱发送验证码验证登录

在进行登录时候,可以在后端对存入在redis的数据获取,并于前端传递的验证码参数比较,成功则登录成功,反之登录失败。该功能还可以用于邮箱的注册等。,开启成功后会获得一个授权码,记录下来(代码中需要使用,这个授权码并不是一定的 )/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。打开Pop3/SMPT服务 ,获取邮箱授权码(需要手机验证),点击账户,下拉找到。

2023-10-10 13:52:32 1212 1

读写分离和分库分表详解

在实际应用中,读写分离和分库分表可以结合使用。比如,先通过分库分表解决数据量和并发访问的问题,然后再通过读写分离进一步提升读操作的性能。这两种技术的结合可以有效地提高系统的水平扩展能力和整体性能,但也需要更多的设计和运维投入。 适用于: Java开发者:从初学者到高级开发者,这些内容适用于所有希望掌握或深入理解Java异步编程的人员。 软件工程师:需要在项目中处理复杂并发任务的工程师。 系统架构师:设计高性能和高响应性系统的架构师。

2024-06-13

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

TA关注的人

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