自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1697)
  • 资源 (17)
  • 收藏
  • 关注

原创 基于Spring Boot和SSE的实时消息推送系统

高效实时:毫秒级消息延迟资源友好:单连接持续复用弹性可靠:自动重连机制易于扩展:支持水平扩展根据业务需求选择合适的消息格式(JSON/Protobuf)实施完善的监控告警定期进行压力测试考虑消息持久化方案通过合理设计和优化,该方案可支持从中小规模到百万级连接的消息推送场景。

2025-08-10 14:06:30 807

原创 基于Spring SSE构建实时监控系统

通过Spring SSE构建的实时监控系统,结合上述优化策略和安全方案,可以实现高性能、高可用的监控数据推送服务,满足从基础系统监控到复杂业务指标展示的各类场景需求。

2025-08-10 14:03:13 450

原创 WebSocket集群方案解析与实现

中小型项目:优先采用广播方案,配合Redis Pub/Sub实现简单集群中大型系统:采用目标询址方案,确保消息精准投递关键业务:实现双保险机制,结合两种方案优势性能优化:重点监控会话数量和消息延迟指标容灾设计:必须实现消息持久化和重试机制├── ws-common # 公共组件 ├── ws-gateway # 接入层 ├── ws-node1 # 节点1 ├── ws-node2 # 节点2 └── ws-monitor # 监控服务。

2025-08-10 13:48:39 789

原创 基于Spring Boot和WebSocket的实时聊天系统

通过以上实现方案,我们构建了一个功能完善、性能优越且安全可靠的实时聊天系统。该系统不仅支持基本的聊天功能,还提供了消息存储、已读回执、文件传输等高级特性,同时具备良好的扩展性和可维护性。Spring Boot服务。MongoDB: 聊天记录。MySQL: 用户/关系。WebSocket连接。Redis: 在线状态。MinIO: 文件存储。Kafka: 消息分发。

2025-08-10 13:37:11 683

原创 WebSocket扫码登录系统设计与实现

安全性建议对二维码内容进行加密增加二次确认步骤实现IP白名单机制性能优化使用连接池管理WebSocket实现消息压缩传输增加负载均衡策略扩展性考虑支持多端同时登录增加登录日志记录实现登录设备管理监控指标@Bean├── qr-code-module # 二维码生成与验证 ├── websocket-module # 实时通信处理 ├── security-module # 安全控制 └── cluster-module # 集群支持。

2025-08-10 13:34:10 780

原创 Spring WebSocket安全认证与权限控制解析

通过以上方案,可以构建出企业级安全的WebSocket通信系统。HTTP握手请求(携带Token)认证拦截器校验Token。WebSocket通信。

2025-08-10 13:30:50 985

原创 Spring Boot集成WebSocket

项目架构:传统MVC还是响应式性能需求:普通消息还是高频交易扩展性:是否需要水平扩展运维成本:监控和告警能力建议从Spring原生支持方案开始,随着业务复杂度提升再逐步考虑Netty等高性能方案。连接生命周期管理消息序列化规范异常恢复机制生产环境监控通过合理的设计和配置,WebSocket可以成为构建实时应用的强大工具。

2025-08-10 13:27:41 1011

原创 Spring Boot与WebSocket构建物联网实时通信系统

通过以上方案,可以构建出高性能、高可靠的物联网实时通信系统。Spring Boot服务。

2025-08-10 13:24:52 926

原创 Spring Boot WebSocket实时在线人数统计

通过以上完整实现方案,可以构建一个高性能、可靠的实时在线人数统计系统。根据实际业务需求,可以选择内存存储或Redis集群方案,并灵活调整各项配置参数。订阅/topic/onlineUsers。WebSocket连接(/ws)发送/app/hello消息。

2025-08-10 13:22:41 721

转载 OpenFeign远程调⽤

FeignFeign 是组件中的一量级Restful的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了Ribbon和, 实现了WebService的面向接口编程,进一步降低了项目的耦合度。什么是服务调用顾名思义,就是服务之间的接口互相调用,在微服务架构中很多功能都需要调用多个服务才能完成某一项功能。为什么要使用FeignFeign 旨在使编写 JAVA HTTP 客户端变得更加简单,Feign 简化了代码,实现了Ribbon。

2025-07-03 20:08:25 85

转载 搭建Java应用监控告警系统Prometheus与Grafana

干的事儿很纯粹:拉取指标、存储时序数据。它的Pull模型特别适合微服务架构,不会像Push模型那样把你的网络打爆。更关键的是,它和Spring Boot的整合简单到让人怀疑人生。负责颜值和智商。那些花里胡哨的Dashboard不是重点,重点是它能把你的业务指标和系统指标关联起来,让你一眼看出问题在哪。

2025-07-03 19:58:23 96

转载 SpringBoot集成p6spy监控sql耗时

以上我们了解了p6spy的基本作用及使用方式,一般的mybatis/plus打印的sql大概是需要自己拼接的?占位符,这里我们利用第三方工具p6psy就能直接看到sql耗时,且可直接拷贝sql出来运行。p6spy是一个开源的JDBC驱动包装器,用于拦截和记录Java应用程序与数据库之间的SQL语句、参数、执行时间等。SQL日志记录:捕获所有SQL语句及其参数,便于调试和验证ORM框架生成的SQL。慢查询检测:可配置慢查询阈值,自动标记耗时较长的SQL。5)测试sql打印(省略了集成orm那一套查询细节)

2025-07-03 19:54:01 109

转载 Java线程池实现原理及其在美团业务中的实践

线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。降低资源消耗。

2025-06-29 20:27:25 54

原创 海量数据存储与分析:HBase、ClickHouse、Doris三款数据库对比

混合架构(如HBase+Doris)可兼顾实时与分析需求,建议根据业务模块拆分使用。场景:既有实时交易记录,又需历史数据分析。交互式查询+实时更新。

2025-06-29 09:17:16 1155

转载 K8S滚动发布

容器状态还指示容器的内部ID(containerID)、容器正在运行的镜像和imageID、容器是否准备好以及重新启动的频率(restartCount)。滚动更新通过设置MaxSurge和MaxUnavailable来规定可以有多少个额外的Pod和可以忍受多少个Pod无法提供服务(两个参数可以为0,但是不能同时为0),在整个更新的过程中都是平滑无缝衔接。**两者不能同时为0maxSurge:**和期望ready的副本数比,超过期望副本数最大比例(或最大值),这个值调的越大,副本更新速度越快。

2025-06-29 09:05:58 94

转载 SpringBoot + K8S 中的滚动发布、优雅停机、弹性伸缩、应用监控、配置分离

在K8s中,当我们实现滚动升级之前,务必要实现应用级别的优雅停机。否则滚动升级时,还是会影响到业务。此外,若需使用回调钩子,需保证镜像中包含curl工具,且需注意应用管理端口(50000)不能暴露到公网。k8s资源调度之滚动更新策略,若要实现零宕机发布,需支持健康检查。定义访问端口、路径及权限 application.yaml。定义访问端口、路径及权限 application.yaml。定义访问端口、路径及权限 application.yaml。定义访问端口、路径及权限 application.yaml。

2025-06-29 08:58:31 81

转载 一线大厂都在使用的 RocketMQ 生产级别规范

1、 Topic 规则:一个应用尽可能用一个 Topic,如 topic_recharge_order减少 Topic 数量有助于降低 Broker 的管理和内存开销(每个 Topic 会创建多个队列和元信息)。同一应用逻辑聚焦在一个 Topic 更便于数据统计和管理,避免消息分散带来的排查困难。RocketMQ 最佳实践提倡:Topic 粗粒度,Tag 精细化。2、 Tag 规则:消息子类型则可以用 Tag 来标识,如 tag_order_create、tag_order_pay。

2025-06-27 09:31:39 62

转载 SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!

Spring Boot实现文件分块上传解决了大文件传输的核心痛点,结合断点续传、分块验证和安全控制,可构建出健壮的企业级文件传输方案。本文提供的代码可直接集成到生产环境,根据实际需求调整分块大小和并发策略。在互联网应用中,大文件上传是一个常见而棘手的挑战。传统的单文件上传方式在面对大文件时经常面临超时、内存溢出等问题。本文将深入探讨如何利用Spring Boot实现高效的分块上传方案,解决大文件传输痛点。

2025-06-25 19:45:13 43

转载 SpringBoot整合Kafka构建亿级消息系统

通过本文的实践方案,开发者可以构建日均千亿级消息处理系统。:• 并发度与分区数对齐 • 添加耗时监控埋点 • 使用Header获取元数据。提供Spring生态整合支持 • Avro实现高效二进制序列化。:LZ4压缩效率比Snappy高30%:单个批次最大字节数 •。:批量发送等待时间 •。

2025-06-25 19:42:59 31

原创 Java统计代码执行时间方式

简单场景:直接用或。高精度需求:用或Instant。多步骤计时:用 Spring 的StopWatch。无侵入统计:用 AOP(如 Spring AOP)。性能基准测试:用 JMH。

2025-06-21 09:50:37 453

原创 Mybatis拦截器与动态SQL结合

MyBatis。这些插件可以用来实现多种功能,例如性能监控、事务处理、安全控制等。Executor介绍说明:Executor拦截器主要用于拦截数据库的执行器,它负责执行MyBatis的SQL语句。作用:Executor拦截器可以拦截执行器的update(写操作)和query(读操作)方法,使你能够在执行SQL语句前后注入自定义逻辑。使用场景: 适用于需要在数据库写入或读取操作前后执行额外逻辑的情况,比如日志记录、性能监控等。介绍说明:拦截器主要用于拦截SQL语句的处理,包括SQL。

2025-06-20 09:52:29 276

原创 MyBatis-Plus中联表查询用法

MyBatisPlus并不直接支持,但是可以使用mybatisplusjoin库。在Mybatis中,我们最常用的方法是手写sql,像下面这样的标准join语句。

2025-06-20 09:39:51 186

原创 Redis的大key和热key如何解决

字符串类型(String):单个Key的Value特别大,一般认为在普通业务场景下,如果单个String类型的value大于1MB,或者在高并发低延迟场景中大于10KB,就可能被视为大Key集合数据类型:如Hash、Set、ZSet、List等,其中的元素数量过多或总体数据量过大。例如,一个Hash类型Key的成员数量虽只有1000个,但这些成员的Value总大小达到100MB,或者一个ZSet类型的Key成员数量达到10000个内存占用过高。

2025-06-20 07:51:14 1458

原创 Netty 是如何解决半包和粘包问题

半包问题是指一个完整的应用层消息被分成多个 TCP 数据包发送,接收端在一次读取操作中只接收到消息的一部分。例如,发送端发送了一条 100 字节的消息,但由于网络原因,这条消息被拆分成了两个 TCP 数据包,一个 60 字节,另一个 40 字节。接收端可能在第一次读取时只接收到前 60 字节的数据,剩下的 40 字节需要在后续的读取操作中才能接收到。基于换行符解码器和自定义分隔符解码器(比如 特殊字符)来划分消息边界,从而解决半包和粘包问题,使用者可以根据自己的需求灵活确定分隔符。

2025-06-19 16:59:28 863

原创 MyBatis-Plus中使用Wrapper构建动态SQL查询条件

【代码】MyBatis-Plus中使用动态SQL构建动态查询条件。

2025-06-19 11:28:04 781

原创 Spring 中拦截器(Interceptor)与过滤器(Filter)的区别

是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。③拦截器只能对action(也就是controller)请求起作用,而过滤器则可以对几乎所有的请求起作用,并且可以对请求的资源进行起作用,但是缺点是一个过滤器实例只能在容器初始化时调用一次。的反射机制的,而过滤器是基于函数回调。

2025-05-29 17:16:23 281

原创 代码同时提交到GitHub和Gitee

同步推送到github和gitee。添加两个远程仓库地址。

2025-05-29 14:38:34 179

转载 阿里的一款数据高效同步工具DataX

DataX 是阿里云 DataWorks 数据集成 的开源版本,

2025-05-24 21:14:18 91

转载 数据实时同步:inotify + rsync 实现数据实时同步

rsync 常用于作为 linux系统下的数据镜像备份工具,实现远程同步,支持本地复制,或者与其他SSH、rsync主机同步数据,支持增量备份,配合任务计划,rsync能实现定时或间隔同步,配合 inotify 或 sersync,可以实现触发式的实时数据同步。前两者的本质是通过本地或远程shell,而第3种方式则是让远程主机上运行 rsyncd 服务,使其监听在一个端口上,等待客户端的连接,此种方式使用的 rsync 的专有协议。inotify 是内核中的功能,在2.6.13版本的内核开始都默认存在。

2025-05-24 18:29:14 173

原创 kafka、activemq、rabbitmq、rocketmq对比

2025-05-24 15:59:29 332

转载 JVM参数调优

XX:+UseStringDeduplication -XX:+DisableExplicitGC #其他优化。-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g #元空间配置。-Xloggc:/logs/gc.log -XX:+PrintGCDetails #GC日志与监控。-XX:MetaspaceSize 和 -XX:MaxMetaspaceSize。合并重复的字符串对象,节省堆内存(适合字符串操作频繁的场景)。G1回收器(平衡型,JDK9+默认)

2025-05-22 20:16:56 78

转载 nginx实时请求监测-ngxtop

ngxtop是一个实时命令行工具,可以分析nginx访问日志,以表格形式将http请求的主要指标直观展示。ngxtop将nginx的访问请求数据实时动态展示,并支持按字段过滤请求。ubuntu环境安装,测试系统为Ubuntu 24.04.2 LTS。centos环境安装。

2025-05-22 20:06:31 61

原创 线程池线程数配置

线程数 ≈ CPU 核心数 × (1 + 任务等待时间 / 任务计算时间)CPU 密集型→ 少量线程足够;IO 密集型→ 可以设置更高;混合型任务→ 可拆分后按比例配置多个线程池。

2025-05-22 20:02:41 522

原创 java并发-Semaphore信号量

举个生活中的例子:银行总共有3个柜台办理业务,有很多人来排队,但一个柜台同时只能有一个人办理业务,也就是说最多同时只能有3个人办理业务。其他的人都要排队等待,等到有一个人办理好了,下一个人才能来办理。Semaphore是用来控制同时访问特定资源的线程数量,它通过协调各个线程,来保证合理的使用公共资源。它通过维护一组许可(permits)来限制同时访问某个资源的线程数量。以下是一个使用 Semaphore 的示例,展示如何限制同时访问某个资源的线程数量。

2025-05-22 19:54:01 389

原创 Nginx配置记录访问信息

Nginx被广泛应用于各种场景如:Web服务器、反向代理服务器、负载均衡器、Web应用防火墙(WAF)等在实际的产品开发中,无论是功能测试或访问行为审计,都需要详细记录每一次访问行为。

2025-05-20 21:10:09 549

原创 Spring Boot 使用 jasypt配置明文密码加密

配置方式:ENC(加密串)

2025-05-20 21:01:58 557

原创 vi实时查看日志

按 Ctrl+C 停止 tail -f,然后按 Enter 返回 vim。可以在 vim 中看到实时日志,但无法直接编辑。如果只是查看日志而不需要编辑,less 更适合。在 vim 中执行 tail -f。​​在 vim 中打开日志文件​​。用 watch 定期刷新日志​​。重新加载文件以获取最新内容。将日志内容导入 vim​​。-n 1 表示每秒刷新一次。按 :e 手动刷新文件内容。

2025-05-19 21:08:57 427

原创 ​​麒麟系统(Kylin OS)​​ 忘记开机密码解决

不同机型按键可能不同,可尝试多次。一 进入安全模式(救援模式)passwd 用户名。

2025-04-12 09:34:16 12103 1

原创 git从历史版本创建新分支或标签

git从某个分支的指定历史版本中创建新分支。git从某个历史版本创建标签。

2025-04-03 20:54:21 351

原创 Windows 11 中搜索服务索引文件大处理

是 Windows 11 中搜索服务索引的数据库文件,用于存储文件、邮件等内容的索引信息,以提供快速搜索结果。如果磁盘空间非常紧张,且不经常使用系统搜索功能,可以采用此方法,但不建议长期使用,因为会失去快速搜索能力。这是较为推荐的方法,能有效减小文件大小,同时保留搜索功能。暂时禁用 Windows 搜索服务并删除文件。文件或重要数据,以防操作失误导致数据丢失。在进行上述操作前,建议先备份。

2025-03-30 11:28:08 1056

android环境搭建

下载资源,到搭建环境,到调试,每一步都有图片 傻瓜式操作!

2015-08-14

xutils简介.docx

android 开发

2021-09-18

Waterdrop使用手册

WaterdropManual_T00148x-20-010_2017-04-10.pdf

2021-09-18

GDB完全中文手册.pdf

GDB完全中文手册

2021-09-18

jre1.8.0_221.7z

jre1.8,绿色免安装,解压即用,方便便捷。无需安装。需要jre的童鞋拿走。```````````````````````

2020-09-09

中软安卓培训教程ppt

中软国际国佩教程,经典安卓培训教程,大家好好学习一下

2015-08-14

IBM_JDK_V8.rar

注意不是Oracle的jdk。是IBM_JDK_V8版本JDK。绿色免安装版。解压即用。不常见。特此留存。

2020-09-09

jdk1.7.04.rar

jdk1.7老版本,免费版。解压即用。无需安装。需要的拿走。老项目可能用的到!特在此留存!

2020-09-09

中文与Unicode码转换(十六进制).html

中文与Unicode码转换(十六进制)

2021-09-23

百度日历效果.html

百度日历效果

2021-09-23

会计科目表及说明.docx

会计科目说明

2021-09-18

jdk8u221.7z

免费版本

2020-09-09

Foxmail_7.0.rar

Foxmail_7.0

2021-09-18

sas9.4安装教程.7z

sas9.4安装教程

2021-09-18

ab并发测试及说明.rar

ab并发测试

2021-09-18

银行会计基础知识.ppt

银行会计基础知识

2021-09-18

空空如也

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

TA关注的人

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