自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(505)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring colud 基础组件学习,各组件之间的协调配合例子

一、cloud 基础介绍Spring Cloud 是一系列框架的有序集合,用于帮助开发者快速构建分布式系统中的常见模式,如配置管理、服务发现、断路器、智能路由、微代理、控制总线等。以下是一些常用的 Spring Cloud 组件及其功能概述:Spring Cloud Config - 配置管理工具,支持使用 Git 存储配置信息,可以方便地进行环境切换和版本管理(多个服务的统一配置管理,支持了配置的动态修改)。Spring Cloud Netflix - 包含多个子项目,如:Eureka

2024-11-06 11:03:12 761

原创 分布式缓存的基本概念入门以及如何保证数据一致性

在实际应用中,通常需要结合多种策略来保证数据的一致性,同时也要根据具体的业务场景和性能要求来选择最合适的方法。此外,还需要考虑监控和报警机制,以便及时发现和处理一致性问题。注意:以上为AI自动提炼总结,注意识别。

2024-10-20 12:55:24 789

原创 分布式事务基本概念入门以及目前常见框架

JavaWeb 中的分布式事务通常是指在分布式系统中管理多个资源管理器(如数据库、消息队列等)之间的协调工作。在一个分布式环境中,一个业务操作可能需要跨多个服务或数据存储进行处理,而这些服务或存储可能是由不同的事务管理器控制的。为了确保这些跨服务或跨存储的操作能够正确地执行,就需要一种机制来保证事务的一致性,即分布式事务。

2024-10-20 12:39:28 916

原创 MySQL 本地社区版安装(不登录) mysql官网链接

完成后有个 run mysqlConfigure 为继续配置自己的mysql 用户,密码,端口,服务名等,点击继续就可以了。这一步为是否需要mysql帮你创建一个数据库样例 用于测试,可以跳过不创建 然后自己创建,也可以让创建一个样例数据库。继续下一步 基本可以不动 需开机选项可以自行选择。选择 archives 可以选择其他版本下载。下面这个默认选择就可以(默认就是开发者模式)找到Path并编辑,添加刚才的路径内容并保存。下一步为服务文件的权限设置,可以默认。这里选择下面第一个就可以了。

2024-10-19 17:52:16 549

原创 Java GC 分类,8和9使用的哪种?

对于Java 8来说,默认的垃圾收集器配置取决于JVM启动时指定的模式(Client还是Server)。如果是Server模式,默认采用的是Parallel GC;到了Java 9及以上版本,G1被设置为Server模式下的默认垃圾收集器,这是因为G1通常能提供较好的平衡性能,特别是在较大的堆尺寸下。Java的垃圾收集器(Garbage Collector, GC)负责自动管理内存,回收不再使用的对象所占用的空间。随着JVM的发展,出现了多种不同特性的垃圾收集器来适应不同的应用场景和性能需求。

2024-10-08 10:52:37 311

原创 spring bean 是线程安全的吗?为什么

但是,如果有可变的状态,并且这种状态被多个线程共享,则需要采取额外措施来确保线程安全,比如使用同步机制或设计成不可变对象等方法来保护数据的一致性。因此,在这种情况下,每个线程都有自己的Bean副本,所以通常不需要担心线程安全问题。对于Request、Session这样的作用域,每个HTTP请求/会话都拥有独立的Bean实例,从而降低了跨线程的数据竞争风险。综上所述,Spring Bean的线程安全性并不是由Spring框架直接提供的特性,而是依赖于开发者的正确实现与配置。

2024-10-08 10:49:37 392

原创 Spring Bean 生命周期 五步->七步->十步 扩展学习总结 bean作用域 Scope,手动注册自己new的对象

即当我们实际使用一个对象时,它是何时被创建出来,何时被赋予基础属性,何时可以被我们调整,何时被实际投入spring 容器中进入可使用状态,又在何时被销毁释放不再使用。Spring 只负责创建,当容器创建了 Bean 的实例后,Bean 的实例就交给客户端代码管理,Spring 容器将不再跟踪其生命周期。:Spring容器根据配置信息(如XML配置文件或注解)找到定义好的Bean,并使用构造器或工厂方法创建Bean的实例。Spring 能够精确地知道该Bean何时被创建,何时初始化完成,以及何时被销毁。

2024-10-08 10:45:54 839

原创 什么是消息幂等性?为什么会出现消息重复消费,如何保证或解决消息幂等性,保证或解决消息幂等性的方式

事务消息可以保证消息仅被处理一次。在发送事务消息时,消息发送方先发送一条半事务消息,等到消息处理完毕之后再发送一条确认消息。只有确认消息发送成功,半事务消息才算发送成功,否则半事务消息将在一定时间内重发,直到发送成功或者达到最大重试次数。每个消息都有一个唯一的ID(消息携带的唯一标识或hashcode等),消费端通过这个ID来判断是否已经处理过,避免重复操作。指的是一个消息发送多次,接收方能够得到同样的处理效果,就像只发送了一次一样。通过消息确认机制,可以保证每个消息只被处理一次,避免重复消费。

2024-09-11 14:00:15 1146

原创 springBoot重写start run方法

这些接口的目的是在Spring应用上下文初始化完成后执行一些定制的操作。过程中做些特别的事情,如初始化服务注册到Eureka,可以在这个方法里实现。Spring Boot允许开发者自定义应用程序启动过程,如果想要重写。当Spring Boot应用启动时,会自动运行此类的。例如,如果你创建了一个类并实现了。方法,通常是在实现了。

2024-09-02 12:15:49 253 1

原创 springboot 自动装配原理

Spring Boot 的自动装配(Auto-Configuration)原理主要是基于依赖注入(Dependency Injection,DI)的思想。它通过扫描类路径下的特定目录,查找包含特定注解(如。自动装配使得开发者无需手动编写大量的bean配置,提高了代码的简洁性和可维护性。然而,如果需要自定义装配过程或有特殊需求,开发者仍可以随时覆盖或扩展Spring Boot的自动配置。等)的类,并根据这些类及其元数据来自动配置bean。注解用于条件判断,以及各种。注解用于引入其他配置。

2024-09-02 12:06:43 338

原创 【MySQL】将一张表的某一个值赋值到另一张表中

在MySQL中,要将一张表(我们称之为Table_A)的某个字段的值赋给另一张表(Table_B)的对应字段,你可以使用。两张表可以通过某个字段关联起来,并且想要将其中一张表的某个值赋值到另一张表的某个字段中。这里假设Table_A和Table_B有一个共同的字段。用于连接两张表,并且你想把Table_A的。字段的值赋给Table_B的。

2024-08-09 15:01:36 1453

原创 Java中 一方包,二方包和三方包区别

总结来说,主要区别在于权限范围和使用范围:一方包限于项目内部,二方包限于公司内部,而三方包则是面向公众或行业开放的。

2024-07-17 10:20:29 462

原创 Java String format 字符、数字、浮点数、符号等使用案例

Java中的方法允许你使用特定的格式化字符串来创建新的格式化字符串。这种方法非常灵活,可以用于控制数字、日期等的显示方式。下面是一些使用。

2024-07-02 14:31:54 352

原创 我的创作纪念日 第四年 我在人间遭罪,也在人间享乐

从老厂到新厂,从大厂到一线大厂,基本所有都各有各的问题,截止目前为止还没有见过十全十美没有任何问题的企业和公司,不论大小,还是超一线大厂都存在各自的问题,只不过问题不一样而已。技术方面的提升速度还是放慢了,只有眼界和思想还在成长。接触到的人也更多了,人分三六九等不是白说的,哪怕是在超一线的大厂也存在很差劲的人。

2024-07-01 12:52:24 322

原创 SchedulerLock LockProvider参数配置表,列,大小写等 分布式锁 定时任务锁 学习总结

如果未指定此选项,则将使用来自应用程序服务器的时钟(应用程序服务器上的时钟可能不同步,从而导致各种锁定问题)。如果是分布式任务,即多个相同的应用执行定时任务,那么为了防止重复执行可以使用其他分布式锁做内部判断或其他形式的锁机制来防止重复执行。JdbcTemplate 方式,即通过配置一张数据库表 为此提供锁的服务,官方提供的表建表语句,如果需要其他的可以额外加入。lockprovider 依赖,下面会说到,但根据选择不同的锁方式,依赖其实也不同,如果是其他方式请改为其他依赖。如果任务花费的时间超过。

2024-06-26 18:32:32 1148

原创 Mybatis (plus 也适用)原生直接执行某句SQL

想要不论传入什么sql 都能直接执行。

2024-06-18 15:44:14 1441

原创 Idea jdk配置的地方 启动时指定切换的地方

管理添加或删除的地方,增加后,可以在在上面切换。项目sdk 所在位置。

2024-06-14 17:01:34 468

原创 Problematic frame Failed to write core dump. Minidumps are not enabled by default on client versions

Problematic frame:# C [sigar-amd64-winnt.dll+0x14ed4]Failed to write core dump. Minidumps are not enabled by default on client versions of Windows找了很多类似的问题,终于是找到具体要怎么处理这一类问题。

2024-06-14 14:41:18 1122

原创 java: No property named “XXXX“ exists in source parameter(s).

不使用 lombok ,手动生成 getter setter,或调整pom中lombok依赖位置 放到 mapstruct前面 (pom引入的前后顺序)Mapstruct build时提示某些字段不存在,但是实际上实体是存在的,但依旧报错。定义的类使用了 lombok 但是 lombok 的依赖顺序迟于 mapstruct。导致编译的时候 getter setter 没有生成所有没有获取到。

2024-06-11 17:30:23 684

原创 java: Internal error in the mapping processor: java.lang.NullPointerException at org.mapstruct.ap.in

build时显示错误。java: Internal error in the mapping processor: java.lang.NullPointerException at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.java:180)

2024-06-11 17:05:08 327

原创 Mybatis-plus 更新或新增时设置某些字段值为空

指定 updateStrategy = FieldStrategy.IGNORED 后会忽略该字段的空值判断,从而达到更新null的效果。通过这种方式会指定更新时该字段的策略,通常情况下updateById这种会根据字段更新,通常都会判断null 以及空值。通过updateWrapper 更新,需要手动set 字段等于 null 或 空串,以此来达到目的。通过自定义 sql,或使用原始 xml 来完成,或通过注解 都是手动写更新的语句。(一旦启用,所有通过实体更新的动作都会变化)

2024-05-31 17:11:03 1873

原创 Kafka消息丢失处理方式,消息丢失与消费失败区别和分别的处理

Kafka 消息丢失的处理方式可以从生产者、Broker 和消费者三个角度来考虑,以确保消息的可靠传递。

2024-05-24 11:42:36 918

原创 JavaWeb 什么是缓存击穿,缓存击穿的解决方案学习总结

缓存击穿在JavaWeb应用中是一个常见的问题,它特指在一个高并发的场景下,如果一个缓存键的生命周期结束(即缓存过期)并且这个键对应的数据在数据库中也不存在或者访问量极高,那么大量的并发请求会因为无法在缓存中找到数据而直接穿透到后端数据库,从而对数据库造成极大的压力,可能导致数据库连接耗尽、响应变慢甚至服务崩溃。

2024-05-24 11:28:31 1086

原创 Java 三种主流的消息中间件 RabbitMQ、Kafka 和 RocketMQ 特点以及适用,使用场景 学习总结

RabbitMQ特点基于AMQP(Advanced Message Queuing Protocol)协议,这是一个开放的标准,支持多种语言客户端。支持复杂的消息路由功能,如Direct, Topic, Fanout, Headers交换机类型,能够满足不同的消息分发需求。提供高可用性配置,支持集群部署以保证消息不丢失。社区活跃,文档丰富,易于上手。适用场景当你需要一个功能全面、灵活的消息路由机制,并且对消息的可靠性要求较高时,RabbitMQ是一个好选择。

2024-05-24 10:31:07 2383

原创 调用方返回文件流,获取文件流 inputstream 并转换为MultipartFile 或一般文件输出流下载,案例 inputstream 转 byte[]

然而,如果你的应用程序不需要直接与Spring的文件上传功能集成,直接处理原始的输入流并将其保存到文件系统或其他存储服务上可能更为直接有效。通常用于处理HTTP请求中的文件上传部分,而并非直接用于处理HTTP响应中的文件流。实例,并在一个try-with-resources块中使用它,确保即使发生异常也能正确关闭输出流。的行为,以便在后续操作中使用它,比如通过Spring框架的文件处理机制进行处理。以下是一个简化的示例,展示如何将获取的输入流包装成一个模拟的。的内容到缓冲区,并将缓冲区的内容写入。

2024-05-23 16:49:42 1953

原创 ScheduledThreadPoolExecutor 周期性执行任务的线程池作用,基本使用,使用场景

是Java并发编程中一个非常实用的类,它是包下的一个线程池实现,专为定时或周期性任务执行而设计。它提供了灵活且强大的定时任务调度功能,相比传统的Timer类,它具备更好的并发控制能力和错误处理机制。

2024-05-23 16:34:49 602

原创 将字符串内容写入多个文件并加入到zip文件中输出,以及zip输出到 HttpServletResponse

下面是一个简单的示例代码,演示了如何遍历一个字符串集合,为每个字符串创建一个.sql文件,然后将这些文件打包成一个zip文件并导出。请确保在运行此代码之前,您的项目已经正确设置了文件读写权限,并且理解这只是一个基础示例,实际应用中可能需要更复杂的错误处理逻辑。请注意,这个示例假设您已经有了一个包含字符串的集合,以及一个合适的方法来处理文件路径和权限问题。)时,它会生成一个包含单个字符串条目的ZIP文件,并通过HTTP响应发送给客户端,触发文件下载。可以使用Java的IO和Zip相关的API来完成。

2024-05-20 17:25:01 354

原创 postman 请求上传文件,post请求携带文件,以及对应postMapping 处接收写法

此时 外面的file 也是被赋值了的,当然 上面postman 还是没有变化的 还是一个表单。当然 同时在定义的类外面写也可以获取到 例如。先要修改content-type。不要带 @RequestBody。不要带 @RequestBody。不要带 @RequestBody。是的,这样就可以拿到。

2024-05-15 15:58:15 1642

原创 Mybatis plus 三种分页方式,可以兼容pagehelper

mybatis-plus 的三种分页方式

2024-05-11 10:09:01 1607

原创 让大模型返回更准确的结果 提示词工程 Prompt Engineering

最核心的写一条好prompt的原则就是尽可能清晰、明确地表达你的需求(类比组长向组员提工作要求)。细分下来,具体原则包括:●清晰的指令:足够清晰明确地说明你希望模型为你返回什么,最后更加细致地说明需求,避免模糊表达。●提供上下文和例子:给出较为充分的上下文信息,让模型更好地理解相关背景。如果能够提供示例,模型能表现更好(类似传统LLM中的in-context learning)。●善用符号和语法:使用清晰的标点符号,标题,标记有助于转达意图,并使输出更加容易被解析●让模型一步一步地思考。

2024-05-07 09:21:04 3797 1

原创 Java jstat 基本使用 gc 查看,jstat -gcutil等

jstat(Java Statistics Monitoring Tool)是JDK自带的一个命令行工具,用于监视Java虚拟机(JVM)的各种运行时性能统计信息,如垃圾收集、内存使用情况等。它允许用户无需附加到目标Java进程中,即可查看诸如堆内存、方法区、垃圾收集器活动等详细统计数据。这对于分析Java应用的性能问题和调优特别有帮助。使用jstat时,你可以指定不同的选项来查看不同类型的统计信息。

2024-04-30 17:13:01 1778 2

原创 获取Java 虚拟机进程ID(java应用进程Id的方法) Linux & windows

这个命令会列出所有包含"java"的进程信息。从中你可以找到你的Java应用对应的进程行,第一列就是进程ID(PID)。这个命令会列出所有包含"java"的进程信息。在输出的信息中,你可以找到Java进程及其PID。替换为你的Java主类名或jar文件名的部分匹配字符串,pgrep会直接返回对应的进程ID。如果你需要在Java程序内部获取其自身的进程ID,可以使用。这段代码会打印出当前运行Java程序的进程ID。

2024-04-30 17:02:38 1669

原创 Java jstack线程分析工具的使用,jps 使用等

jstack是一个强大的命令行工具,用于分析 Java 应用程序的线程堆栈信息。下面是使用jstack。

2024-04-30 16:40:35 1214 1

原创 Linux 指令lsblk 作用,以及查看cpu使用情况和磁盘IO iostat指令详解

(列表块设备)命令是一个非常实用的工具,用于显示所有可用的块设备信息,如硬盘、USB驱动器、SD卡以及它们的分区。这个命令以易于理解的树状结构展示这些信息,清晰地表明了设备间的层次关系和依赖性。是一个用于监控Linux系统中CPU使用情况和磁盘I/O统计信息的命令行工具,它是sysstat包的一部分。行中的数据,你可以大致了解系统的CPU资源是如何被分配和使用的,进而判断是否存在CPU瓶颈或者I/O等待等问题。可以帮助识别系统中的I/O瓶颈,监控磁盘活动,并据此进行性能调优或问题诊断。在Linux系统中,

2024-04-30 14:35:27 1640 2

原创 Linux 查看主机内存,CPU使用率的两种推荐指令top ,free 指令解读

指令是 Linux 系统中一个实时显示系统状态的动态视图工具,主要用于监控系统的整体运行状态,包括CPU使用率、内存使用情况、运行中的进程信息等。命令是 Linux 系统中用来显示系统内存使用情况的一个常用工具,包括物理内存、虚拟内存(swap)以及其他相关信息。这将提供包括所有可用选项和每个选项详细说明在内的完整文档,有助于更深入地理解系统内存使用情况。命令还支持更多高级功能和自定义设置,通过阅读其内置的帮助文档或 manual 页面 (命令后,你可以快速查看到关于系统内存的概览。

2024-04-30 14:08:34 2256 1

原创 网络乱序是什么?乱序会造成什么?乱序会出现什么问题?如何解决?

主机内网络乱序,通常指的是在网络通信过程中,数据包到达接收端的顺序与发送端发出的顺序不一致。这种现象主要发生在传输层以下,尤其是在网络层(IP层)和数据链路层。

2024-04-30 13:55:09 1453 1

原创 Linux 查看所有进程 ps -ef 命令详解, 查看网络链接信息 netstat -tuplan 命令详解

命令会列出所有TCP和UDP的连接信息,包括监听中的端口,并且会显示每个连接或监听对应的进程ID和进程名称,所有IP地址和端口都以数字形式展现,以便于快速查看和分析系统的网络连接状况。是一个用来查看系统中所有进程详细信息的命令。命令时,将会看到一个列表,其中包含了系统中每一个进程的详细信息,这对于诊断系统问题、查找特定进程或者监控系统状态非常有帮助。:显示所有活动的TCP连接、UDP连接以及监听的端口(也就是既包括连接中的也包括等待连接的)。此命令的输出通常会非常多,如果你想要查找特定的进程,可以结合。

2024-04-30 11:42:57 1182 1

原创 spring restTemplate的使用和学习总结

在 Spring 内,是一个非常方便的 HTTP 客户端。虽然在 Spring 5 中WebClient是推荐的替代方法用于进行异步请求,但依然被广泛使用于同步请求场景。以下是一些使用的基础用法示例。

2024-04-29 17:16:54 851

原创 JavaWeb 通用的直接从 ServletRequestAttributes 中获取Request以及Response和Session

其他Controller 可以通过继承该 基础 controller 来直接内部调用封装后的方法来直接获取请求的一些属性。定义通用基础 controller 一些需要直接从请求中获取的公共属性或内容。

2024-04-29 16:52:01 505

原创 Java 使用Socket测试某一地址和端口是否通

用于测试某些地址是否可以链接成功,或发送消息成功。

2024-04-29 14:08:23 451 1

kingbase8-8.2.0.jar

kingbase8人大金仓驱动jar包,也可以到官网去找

2021-04-10

空空如也

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

TA关注的人

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