自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

让我们共同进步

每天进步一点点

  • 博客(21)
  • 收藏
  • 关注

原创 Apache NiFi 自定义Processor处理器编写

当我们在使用ApacheNiFi时,当已有的processor不支持我们现有需求时,需要我们自己编写自定义处理器并且发布,以至于更好的支持我们的需求;下面我写一个将JSON数据转化为Excel并且输出到本地文件的自定义Processor Demo

2024-06-19 15:40:54 1510

原创 Apache NiFi 安装和使用

点击工具栏处的Processor,拖拽到工作区,搜索处理器ConvertAvroToJSON,因为在第一步中,我们通过sql查询到的数据为Avro格式,所以在这里需要转化为json在进行输出。可视化编程:基于Web图形界面,用户可以通过拖拽、连接、配置等操作完成基于流程的编程,实现数据采集、处理等功能。数据处理与分发:NiFi是一个统一的、与数据源无关的大数据集成平台,能够自动化管理系统间的数据流。高度可配置:支持高度可配置的指示图,用于指示数据路由、转换和系统中流转关系。配置完之后点击这里,启用连接。

2024-05-30 15:46:59 2849 2

原创 DragonflyDB调研

简介:全世界内存最快的数据库,Dragonfly是一种针对现代应用程序负荷需求而构建的内存数据库,完全兼容Redis和Memcached的 API,迁移时无需修改任何代码。相比于这些传统的内存数据库,Dragonfly提供了其25倍的吞吐量,高缓存命中率和低尾延迟,并且对于相同大小的工作负载运行资源最多可减少80%。Dragonfly始于一项实验,旨在探索如果在2022年重新设计内存数据库,它会是什么样子。

2024-04-18 16:12:27 1749 1

原创 基于Spring的RabbitMQ消息异步处理实践

在当今的分布式系统架构中,消息中间件扮演着至关重要的角色。RabbitMQ 作为一款成熟、稳定且广泛使用的消息队列系统,凭借其出色的可靠性、灵活性和易集成性,成为众多企业构建异步通信和解耦服务的首选方案。本文将带你快速上手 RabbitMQ,助你掌握这一关键技术,为系统带来更高的可扩展性与健壮性。

2025-07-10 11:09:57 235

原创 Spring与Kafka深度整合

随着实时数据处理需求的增长,Kafka 作为高吞吐、低延迟的消息中间件,已成为构建分布式系统的重要组件。Spring Boot 凭借其简洁的开发体验和强大的生态支持,成为集成 Kafka 的首选框架。本文将带你快速实现 Spring Boot 与 Kafka 的整合,涵盖生产者、消费者的基本使用及核心配置优化,助你构建可靠、高效的消息通信能力。

2025-07-07 14:40:56 305

原创 Spring集成Sentinel限流示例

在高并发系统中,突发流量可能导致服务雪崩。作为阿里开源的轻量级限流组件,能有效保障系统稳定性。本文将介绍如何在Spring Boot中快速集成Sentinel,通过注解方式实现接口限流,并利用控制台实时监控流量。无论你是应对秒杀场景,还是提升服务韧性,Sentinel都是值得掌握的利器。让我们开始Sentinel的实战之旅!

2025-07-04 11:17:29 477

原创 Java Spring使用hutool的HttpRequest发送请求的几种方式

hutool为我们封装了发送请求的工具,我们一起来看看常用的有哪些吧!

2024-11-21 13:14:11 785 1

原创 Java替换jar包中class文件(亲测有用)

在我们开发过程中,有一些场景只需要修改某个Java类中的很少的代码,然后又不希望重新打完整的jar包,这个时候,就可以只将修改后的某个Java类的class文件替换掉原来jar包中的class文件,重新启动服务即可。

2024-11-20 13:38:59 1547 1

原创 MybatisPlus修改某个特定字段的值

其中updateWrapper中.in(DataLayoutModuleInfo::getModuleCode, moduleCodeList)为条件。其中Service层的写法和baseMapper写发稍有不同,底层Service也是调用的baseMapper。当我们想修改数据时,想根据id或者其他的条件只修改对象的某几个字段而不想修改所有字段,下面这种写法简单且高效。set为你想要修改的字段和修改后的值。

2024-05-30 15:22:08 2351

原创 Java Map转换为JSONObject乱序且保留值为null的key

在Java中,当讲HashMap转化为JSONObject,会有key乱序且值为null的key被自动过滤掉,如以下代码。可以看到,输出的顺序并不是我们put的顺序,并且key_5没有了。

2024-05-11 15:14:25 1033 3

原创 获取spring resource目录下的文件

在Spring框架中,你可以使用Resource接口和ResourceLoader接口来获取位于classpath、文件系统或其他位置的文件。对于resource目录下的文件(这通常指的是类路径下的一个目录),你可以使用ClassPathResource或者直接注入一个Resource类型的bean。

2024-04-30 15:12:25 533 1

原创 spring validation 常用注解详解

背景:当前端调用后端接口时,接口参数校验是必不可少的,spring validation提供了一系列校验规则,直接使用注解即可,无需手动写校验逻辑。Java代码,添加@Valid注解。

2024-04-30 14:41:25 741 2

原创 Java策略模式Demo

当我们的业务逻辑根据不同的场景要做不同的处理时,需要大量的if判断加处理,这样导致代码臃肿且拓展性低;下面我用一个简单的业务,使用策略模式去处理不同的场景;业务场景为在IM聊天中,根据不同的消息类型,去处理不同的消息。4.创建自定义注解MessageTypeAnnotation。2.创建各业务实现handler。6.创建消息handler工厂。5.创建参数上下文对象。

2024-04-19 11:05:13 439 1

原创 Java责任链模式Demo

4.定义每个执行单元业务处理handler,(order从小到大执行)5.定义责任链配置(项目启动时初始化执行顺序,以及调用执行入口)2.定义全局上下文参数。3.定义处理器抽象类。

2024-04-19 10:29:26 491 1

原创 分布式事务的几种实现方案

可靠事件模式2.0(去哪网使用)(需要第三方协调服务的健壮性):每个参与方都在本地维护一个本地事务表,A调B、C,A调B失败,A调C成功,B失败有可能是真的失败,也有可能是超时失败实际成功,那么在B端就记录的是成功,这时候需要一个第三方服务,复制协调对比每一方的事务结果,如果想刚刚这种情况B实际是调用成功了,则不进行回滚或者补偿,把A端记录B的调用改为成功,如果B确实是失败了,根据业务补偿B,或者回滚A和C都行。TCC模式:将一个任务拆分三个操作:Try、Confirm、Cancel;

2024-04-18 16:53:24 328 1

原创 Elasticsearch 查询优化策略有哪些

建立冷热索引库(可用固态硬盘存放热库数据,普通硬盘存放冷库数据),热库数据可以提前预热加载至内存,提高检索效率。控制字段的数量,业务中不使用的字段,就不要索引。如果业务场景中的过滤查询比较多,建议将。避免大型文档存储,默认最大长度为。设置大一些,以提高查询速度。不要返回无用的字段,使用。

2024-04-18 16:48:47 278

原创 线上CPU高问题排查

当我们的应用上线之后,运行一段时间发现CPU居高不下,现在我来带领大家一起排查问题所在。首先,使用top命令查看cpu高的进程,发现进程号为3633的进程cpu占用99%进入该进程,查看线程的cpu占用情况。获取到线程id后,转化为16进制。上图中定位到了问题出现在类。线上CPU高问题排查。

2024-04-18 16:20:19 377

原创 Navicat 查看Mysql blob字段

使用Navicat直接查询blob类型字段是看不到具体内容的,需要使用cast,直接上代码。

2024-04-18 16:00:45 1192

原创 Java接入ChatGPT API

如今chatgpt运用在各行各业,那么Java接入ChatGPT API如何接入呢,直接上代码。

2024-04-18 15:42:23 471

原创 Java spring替换word模版数据

在使用spring开发时,将word文件中的变量替换成自己想要的数据,如下图中,要讲word中的变量{{name}} {{age}},替换成 ‘张三’‘18’第三步:执行之后的效果。第二步:Java代码。

2024-04-18 15:35:29 869 1

原创 Spring项目打包后将resource下的资源压缩导致文件破损,文件流不可用

您可以在项目运行时指定外部文件的路径,或者将文件放在服务器的文件系统中,并在应用中引用这些外部文件的路径。这样可以确保Word文件不会被压缩,避免文件损坏的问题。当我们使用spring开发时,经常会将一些资源放到resource目录下,方便我们获取和使用,但是,在打包项目时,资源文件会被压缩到JAR或WAR包中,这可能导致Word文件等二进制文件损坏。例如,在Maven中,你可以使用maven-resources-plugin来排除对特定文件的压缩,如下图中,将docx排除。

2024-04-18 15:22:37 761 1

【大数据集成】Apache NiFi数据流管理平台的功能特性与应用实例:从安装配置到自定义处理器开发

内容概要:本文详细介绍了Apache NiFi的背景、主要功能、快速开始指南、创建示例、扩展性、数据导出格式、稳定性和汉化等多方面的内容。NiFi最初由NSA开发并于2014年贡献给Apache社区,2015年成为顶级项目。它是一个强大的大数据集成平台,支持数据处理与分发、可视化编程、多数据源支持及网络安全与自动化。快速开始部分提供了安装、配置、启动的具体步骤。创建示例展示了如何将MySQL数据导出为文件。此外,文章还探讨了自定义模块、多分支处理器、外部调用支持、导出格式、稳定性和处理速度、数据安全以及汉化和集成的可能性。; 适合人群:对大数据处理、数据集成感兴趣的开发人员和技术爱好者,尤其是有一定Java编程基础并希望深入了解数据流管理和自动化处理的人群。; 使用场景及目标:①需要自动化管理跨系统数据流的企业或个人开发者;②希望通过可视化界面轻松构建复杂数据处理流程的技术团队;③寻求高稳定性和高效能的数据处理解决方案的专业人士;④希望实现自定义模块、外部调用或数据导出格式多样化的高级用户。; 其他说明:Apache NiFi不仅提供了强大的内置功能,还支持通过自定义处理器和外部调用来扩展功能。其稳定性和处理速度表现优异,适用于大规模数据流处理。此外,尽管汉化工作量较大,但可以通过修改源码实现。对于希望将NiFi集成到现有系统的用户,可以通过iframe内嵌的方式实现。清理不需要的处理器则需要修改源码以确保安全性和用户体验。

2025-07-10

【内存数据库】DragonflyDB高性能内存数据库设计与应用:关键技术及实战案例分析以下要素:

内容概要:DragonflyDB是一款针对现代应用需求构建的内存数据库,完全兼容Redis和Memcached的API,无需修改代码即可迁移。相比传统内存数据库,DragonflyDB提供25倍的吞吐量,高缓存命中率和低尾延迟,并减少80%的运行资源消耗。DragonflyDB采用无共享式架构,确保高并发下的原子性和低延迟,使用VLL事务框架实现多键操作的原子性。其核心哈希表基于Dash设计,具备渐进式哈希和无状态扫描能力,并实现了高效的TTL记录过期、零内存开销的缓存驱逐算法和无fork快照算法。目前,DragonflyDB已实现185个Redis命令和13个Memcached命令。安装和使用简单,支持多种数据类型的操作,并可通过Spring等框架集成进行测试。 适合人群:具备一定编程基础,对高性能内存数据库感兴趣的开发者,尤其是有Redis或Memcached使用经验的技术人员。 使用场景及目标:①需要更高性能和更低资源消耗的应用场景;②希望无缝迁移现有Redis或Memcached应用;③对内存数据库的并发性能和原子性有较高要求的项目;④希望通过高效缓存机制提升应用响应速度。 阅读建议:DragonflyDB不仅在性能上超越传统内存数据库,还在架构设计上有诸多创新。读者应重点关注其无共享式架构、VLL事务框架和Dash哈希表的设计思路,并结合实际应用场景进行实践。此外,DragonflyDB的安装和使用相对简单,建议读者尝试搭建环境并进行命令测试,以更好地理解其特性和优势。

2025-07-10

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

TA关注的人

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