自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(781)
  • 收藏
  • 关注

原创 Java 中堆内存和栈内存上的数据分布和特点

栈上存储的数据是静态的,大小固定,生命周期固定,线程隔离不能跨栈引用。堆上存储的数据是动态的、不固定大小、不固定生命周期、线程共享可以跨栈引用。emanjusakaJava 中堆内存和栈内存上的数据分布和特点 - emanjusaka - 博客园JNPF快速开发平台。

2025-05-19 18:00:39 463

原创 同样的数据,更强的效果:如何让模型学会‘互补思维’?

增强学习器多样性是提升集成学习性能的重要手段。通过数据样本扰动输入属性扰动输出表示扰动和算法参数扰动等方法,可以有效地增加学习器之间的差异,从而提高集成模型的性能。在实际应用中,可以根据具体问题选择合适的方法或组合多种方法来进一步优化模型性能。组合使用多种方法(如同时使用数据扰动和参数扰动)控制扰动强度:过强的扰动会降低基学习器性能优先选择计算高效的方法:如参数扰动通常比数据扰动更快监控多样性指标:使用双样本误差或相关系数评估模型差异度wang_yb同样的数据,更强的效果:如何让模型学会‘互补思维’?

2025-05-19 16:50:35 706

原创 RocketMQ高级使用

消息队列 RocketMQ 允许 Consumer 启动的时候设置最大重试次数,重试时间间隔将按照如下策略:最大重试次数小于等于 16 次,则重试时间间隔同上表描述。最大重试次数大于 16 次,超过 16 次的重试时间间隔均为每次 2 小时。

2025-05-16 17:48:35 742

原创 详解中间件

中间件(Middleware)是软件开发中一种常见的设计模式,其核心思想是‌在核心逻辑的执行过程中插入可扩展的附加功能模块‌。

2025-05-16 16:40:48 523

原创 集成学习常用组合策略:让多个模型“合作”得更好

集成学习中的组合策略有很多种,今天我们介绍了平均法、加权平均法、投票法和加权投票法。这些策略各有优缺点,选择哪种策略取决于具体的问题和模型的性能。在实际应用中,我们可以通过实验来选择最适合的组合策略,从而提高模型的整体性能。wang_yb集成学习常用组合策略:让多个模型“合作”得更好 - wang_yb - 博客园JNPF快速开发平台。

2025-05-15 18:03:56 656

原创 SQL优化全攻略:从诊断到手术的完整指南

优化三板斧定位:慢查询日志+执行计划分析切割:化繁为简拆分多步执行重建:符合业务场景的数据结构避坑口诀索引不是银弹,覆盖才是王道Join水深,能拆就拆Order By+Limit≠分页优化最后送上传秘方:当你优化SQL到怀疑人生时,不妨试试这三味药:删业务逻辑加缓存换数据库保证药到病除(老板打不打死你我就不管了,哈哈哈)!苏三说技术如何医治一条慢SQL?- 苏三说技术 - 博客园JNPF快速开发平台。

2025-05-15 17:13:45 1028

原创 RocketMQ原理—消息读写的性能优化

一.往CommitLog写入消息时,会通过顺序写内存 + 异步顺序刷磁盘来提升性能二.往ConsumeQueue写入消息时,会基于异步转发的写入机制来提升性能一.默认先写入OS的PageCache后就直接返回成功了,优化成内存级的顺序写这里会基于MappedFile机制来实现,将磁盘文件映射为一块OS的PageCache内存,让写文件等同于写内存。其中的亮点是基于OS的PageCache来写入数据,Broker的JVM进程崩溃(高概率)是不会导致PageCache的数据丢失的。

2025-05-13 18:01:27 836

原创 Rust多线程中安全的使用变量

从上面的例子可以看出,Rust的闭包捕获规则最初可能感觉很严格,但它们在确保内存安全和数据竞争自由方面至关重要。总之,如果需要在另一个线程中拥有数据,考虑使用move;如果需要跨线程共享数据,考虑使用Arc;如果需要跨线程共享和修改数据,考虑使用Arc+Mutex;wang_ybRust多线程中安全的使用变量 - wang_yb - 博客园JNPF快速开发平台。

2025-05-13 16:56:13 850

原创 SpringBoot中的拦截器江湖

很多小伙伴在工作中遇到拦截需求就无脑写HandlerInterceptor,结果被复杂场景搞得鼻青脸肿。作为一名有多年开发经验的程序员,今天领大家到SpringBoot的山头认认6把交椅:这篇文章以梁山为背景的介绍SpringBoot中的拦截器,可能更通俗易懂。

2025-05-13 08:48:53 794

原创 RocketMQ半消息对消费者不可见是如何实现的?——事务消息机制揭秘

半消息存储在TBW102,对消费者不可见提交后消息移动到目标Topic,对消费者可见回滚消息被丢弃,不会发送到目标Topic这种机制确保了事务消息的原子性,即消息的发送与本地事务的执行结果保持一致。有的小伙伴就会好奇问了:如果消费者订阅TWB102呢,不就可以消费了吗?刚刚说“生产者通知Broker回滚消息,Broker会丢弃TWB102中的半消息”,这里的丢弃是从Broker中删除吗?不会违背RocketMQ顺序写的特性吗?这是个好问题!半消息存储在TBW102,对消费者不可见。提交后。

2025-05-12 16:43:35 610

原创 Nacos源码—Nacos配置中心实现分析(二)

ConfigService是一个接口,定义了获取配置、发布配置、移除配置等方法。ConfigService只有一个实现类NacosConfigService,Nacos配置中心源码的核心其实就是这个NacosConfigService对象。步骤一:手动创建ConfigService对象首先定义好基本的Nacos信息,然后利用NacosFactory工厂类来创建ConfigService对象。//步骤一:配置信息//步骤一:获取配置中心服务步骤二:获取配置、发布配置。

2025-05-09 18:03:26 742

原创 Nacos源码—Nacos配置中心实现分析

Nacos是按如下方式整合SpringBoot去读取远程配置数据的:在SpringBoot项目启动的过程中,有一个步骤是准备上下文,该步骤中就会去加载配置文件,加载配置文件时就会调用Nacos提供的获取配置数据的HTTP接口,最终完成从Nacos服务端拉获取置数据的整个流程,并且在获取到配置数据后会将数据持久化到本地。SpringBoot在启动过程中,会调用Nacos实现的加载配置文件扩展接口PropertySourceLocator,从而实现加载Nacos配置中心的远程配置文件。

2025-05-09 17:11:28 710

原创 MySQL同步ES的6种方案!

对于文章上面给出的这6种技术方案,我们在实际工作中,该如何做选型呢?建议若团队无运维中间件能力 → 选择Logstash或同步双写需秒级延迟且允许改造 → MQ异步 + 本地事务表追求极致实时且资源充足 → Canal + Flink双保险苏三说技术MySQL同步ES的6种方案!- 苏三说技术 - 博客园JNPF快速开发平台。

2025-05-08 16:29:56 895

原创 『Plotly实战指南』--在金融数据可视化中的应用(上)

本文我们深入探讨了Plotly在金融数据可视化中的应用,重点展示了如何逐步利用Plotly绘制股票走势分析图表。Plotly的核心价值在于其高效性、灵活性和强大的交互性,这些特性使其成为金融领域中不可或缺的数据可视化工具。最后,希望大家能够多动手实践,将所学知识应用到实际的金融数据分析中。wang_yb『Plotly实战指南』--在金融数据可视化中的应用(上) - wang_yb - 博客园引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。

2025-05-07 18:04:11 822

原创 Excel百万数据高性能导出方案!

在我们的日常工作中,经常会有Excel数据导出的需求。但可能会遇到性能和内存的问题。今天这篇文章跟大家一起聊聊Excel高性能导出的方案,希望对你会有所帮助。高性能 = 流式处理引擎 + 分页查询优化 + 资源管控具体实施时可参考以下决策树:切忌过早优化:在需求明确前不要盲目选择复杂方案监控先行:务必埋点记录导出耗时、内存波动等关键指标兜底策略:始终提供CSV导出选项作为保底方案希望本文能帮助大家在数据导出的战场上,真正实现"百万数据,弹指之间"!苏三说技术Excel百万数据高性能导出方案!

2025-05-06 17:39:09 847

原创 如何打造一个高并发系统?

今天和大家聊聊作为一个后端开发,在实际工作中,我们如何打造一个高并发的系统?如下图所示,大概有六个层面,我们结合具体的场景直播间签到去一一细说。

2025-05-06 09:11:24 1115

原创 一文搞懂国际化:架构设计

回顾笔者主导的这一年的国际化改造项目过程,可归纳出三大块设计难点:1):系统支持用户设置自己的语言,支持语言切换,即【】功能。2)多:系统支持多时区客户端时间。客户看到的是自己本地时区时间,但后端服务、数据库一般只部署在一套环境中。如何设计解决【】的业务场景。3):上线生产后,为了快速实现,持续可拓展的新增语言功能,急需一个翻译运营工具,即如何设计实现一个新增/维护语言的【相信大部分做国际化改造的项目都会遇到上面所说的设计场景,下面我们针对这三大块进行初步分析。

2025-04-29 17:10:45 988

原创 一文搞懂SaaS架构建设流程:业务战略设计、架构蓝图设计、领域系统架构设计、架构治理与实施

SaaS架构建设是一项复杂的系统工程,不仅需要技术层面的实现,更要从业务战略、架构设计、治理与实施等多个维度进行全面规划。一个成功的SaaS架构可以帮助企业降低IT成本、提升业务灵活性、加快创新步伐,并为客户带来更优质的服务体验。本章将详细介绍SaaS架构建设的各个关键阶段,从战略规划到具体实施,为读者提供完整的架构建设指南。

2025-04-28 18:14:26 816

原创 Java多进程多线程处理详解

多进程:多进程是指操作系统中同时运行多个独立的进程。每个进程都有自己独立的内存空间和系统资源,进程间通过进程间通信(IPC)进行交互。多进程适用于需要高隔离性、高稳定性的应用场景,如服务器中的多个独立服务。多线程:多线程是指在一个进程内同时运行多个线程。线程是进程的一部分,共享进程的资源(如内存和文件句柄),线程间通信相对容易且高效。多线程适用于需要共享资源且需要高并发的应用场景,如GUI应用、网络服务器等。

2025-04-28 17:00:12 770

原创 掌握设计模式--代理模式

这些不同类型的代理模式根据应用场景和需求各自发挥作用,以上只是常见的几种情况。比如:Spring AOP使用了动态代理模式+自定义注解实现的切面编程;JavaRMI Java平台之间的远程方法调用;RPC框架实现跨平台的远程过程调用。代理模式的思想不仅仅是代码的编写,比如服务器的正向代理和反向代理。代理对象同样可以起到服务访问日志记录(审计);请求服务器只知道代理服务器的IP,对于目标服务器起到安全保护,同时可以设置IP的黑白名单和限流等;服务器网络之间的解耦。

2025-04-23 18:00:51 579

原创 MyBatis中的 10 个宝藏技巧!

说到 MyBatis,很多小伙伴都会用,但未必用得“惊艳”。实际上,这个轻量级的持久层框架还有很多隐藏的“宝藏技巧”。如果你能掌握这些技巧,不但能让开发更高效,还能避免掉入一些常见的“坑”。今天就从浅入深,分享 10 个让人眼前一亮的 MyBatis 开发技巧,每一个都配上具体的场景和代码示例,务求通俗易懂,希望对你会有所帮助。有些小伙伴会遇到这样的问题:数据库表字段是下划线命名,但 Java 对象是驼峰命名。比如user_name对应userName。如果直接用默认的resultType。

2025-04-23 16:28:22 543

原创 让 LLM 来评判 | 基础概念

评估模型 (Judge models) 是一种用于评估其他神经网络的神经网络。大多数情况下它们用来评估生成文本的质量。评估模型涵盖的范围很广,从小型的特定分类器 (例如 “垃圾邮件分类器”) 到大型的 LLM,或大而广、或小而专。请对语句流畅度从 0 到 5 评分,0 分表示完全不可理解,…使用模型作为评估工具可以对文本中复杂和细微的特性有效的评估。例如精确匹配预测文本和参考文本的任务,只能评估模型预测正确事实或数字的能力。

2025-04-22 18:02:56 660

原创 别再堆文档了,大模型时代知识库应该这样建

知”是知道,“识”是辨识。你知道小明今年10岁,体重120斤,但仅凭这些信息,无法指导你做出“小明今天晚饭吃什么?”的决策。而当你获得一条“10岁儿童的正常体重范围是23-50kg”的信息时, 你能够判断小明超重了,然后得出“清淡饮食更合适”的决策。

2025-04-22 16:40:47 696

原创 为什么 .NET8线程池 容易引发线程饥饿

可以肯定的是减少callback重入队列次数可以尽可能的避免线程饥饿,但怎么说呢?.NET8的线程池综合性能绝对比.NET6要强悍的多,但.NET8中的设计理念可能也不能达到100%的全域领跑,可能在某些1%的场景下还不如 .NET6 的简单粗暴。一线码农为什么 .NET8线程池 容易引发线程饥饿 - 一线码农 - 博客园引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。

2025-04-21 17:54:24 886

原创 SQL优化的这15招,真香!

sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化sql语句呢?这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。

2025-04-18 18:09:02 1216

原创 促销系统:促销活动、优惠券、优惠规则概念模型设计

概念模型设计是促销系统开发的关键环节,我们需要基于之前的功能分析,将复杂的促销业务拆解成清晰的领域概念,这些概念之间的关系界定和边界划分,将直接决定系统的可维护性和扩展性。

2025-04-17 17:38:34 707

原创 JVM实战—线上FGC的几种案例

因为-XX:SoftRefLRUPolicyMSPerMB=0,导致YGC时回收了调用反射时JVM创建的大部分软引用对象(在堆中),导致下一次调用反射又继续创建类和Class,而Class被放在元空间,从而导致元空间很快满了,于是就触发FGC。多次调用反射时,会因为NativeMethodAccessor的次数影响(默认为15次),而生成最终的类似于generateXXXAccessorXXX这样的类。generateXXXAccessorXXX类会将反射调用转化为本地调用,提升性能。

2025-04-11 17:32:09 1004

原创 PHP传递参数(跨文件)的8种常见方法

临时数据传递:优先用$_SESSION或include(注意作用域)客户端数据:用$_GET$_POST$_COOKIE(必须过滤输入)持久化存储:选择文件或数据库全局状态管理:使用静态类属性或单例模式嘉君PHP传递参数(跨文件)的8种常见方法 - 嘉君 - 博客园引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。

2025-04-10 18:04:14 473

原创 RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明

用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子:那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入到事务中即可,发生错误立即回滚,但是再响应客户端的时候也有可能出现网络中断或者异常等等。

2025-04-10 17:11:56 895

原创 多线程开发常见问题汇总

是一个接口,用于处理线程因未捕获异常而突然终止的情况。虽然,通常都会在线程执行的代码中加try...catch来捕获异常,那么如果某些异常没有被catch住(比如,线程突然死掉了)那么我们将不知道发生了什么。因此,给每个现在设置一个未捕获异常处理器很有必要。通常我们采用线程池的方式使用线程,下面是在线程池中使用方式。

2025-04-08 18:00:51 423

原创 JVM实战—频繁YGC和频繁FGC的后果

新生代也可以称为年轻代,这两个名词是等价的。当新生代的Eden内存区被占满后,就需要触发新生代GC(年轻代GC)。此时这个新生代GC就是所谓的Minor GC,也可以称为Young GC。所以Minor GC和Young GC这两个名词,就是专门针对新生代GC的。通常来说,YGC即使发生比较频繁,其实对系统也造成不了太大影响。只有在机器内存特别大时,才要注意YGC可能会导致比较长时间的停顿。所以针对大内存机器通常建议采用G1垃圾回收器。

2025-04-08 17:03:44 1023

原创 【解决方案】多租户技术架构设计入门(二)

对于整个多租户技术架构的设计而言,笔者认为最关键的就是 3 点:底层数据隔离模式(策略) + 统一的用户&权限体系(认证鉴权) + 业务层调用时的行为隔离(请求拦截)。其次可以拓展的有:租户管理系统 + 门户系统 + 角色配置中心等。基本的一些概念我在上篇文章中已经有过较为详细的介绍,此处便不再赘述了。作为入门系列的第二篇,本文主要分享的是在业务系统的应用内部如何对多数据源进行切换,而底层的数据库硬件资源管理这部分会简单带过(一般由运维团队来负责搭建)。

2025-04-08 09:53:19 726

原创 【解决方案】多租户技术架构设计入门(一)

多租户的概念是我在毕业后不久进第一家公司接触到的,当时所在部门的业务是计划建设一套基于自研的、基于开放 API 的、基于 PaaS 的、面向企业(ToB)的多租户架构平台,将我们的服务可以成规模地、稳定高效地交付给客户使用。即业务规模大到需要使用多租户架构来解决,不然就考虑普通的 SaaS 做交付;需要足够支持这样量级的业务,运维、高可用、监控这几方面可能需要云原生团队的支持;一定要保证高隔离性、高可扩展性、高性能,同时可以支持复杂的、高并发的场景;

2025-04-08 09:53:00 803

原创 golang的条件编译

依赖注入工具wire让开发者把需要注入的依赖写入有特殊编译tag的源文件,这些源文件正常编译的时候不会被编译到程序里,使用wire工具生成注入代码的时候这些文件才会被识别,这样既可以正常实现依赖注入功能又不会对代码产生太大的影响。所以第一种方案只适合那种平台间差异巨大的代码,一个典型的例子是go自己的runtime的代码,因为协程调度需要很多操作系统甚至硬件平台的功能做辅助,因此runtime在每个操作系统上出了自己的api之外差异很大,因此使用文件名后缀的形式分成多个文件维护是比较合适的。

2025-04-01 17:40:58 579

原创 千万级大表的优化技巧

大表优化是一个老生常谈的话题,但随着业务规模的增长,总有人会“中招”。很多小伙伴的数据库在刚开始的时候表现良好,查询也很流畅,但一旦表中的数据量上了千万级,性能问题就开始浮现:查询慢、写入卡、分页拖沓、甚至偶尔直接宕机。这时大家可能会想,是不是数据库不行?是不是需要升级到更强的硬件?其实很多情况下,根本问题在于没做好优化。今天,我们就从问题本质讲起,逐步分析大表常见的性能瓶颈,以及如何一步步优化,希望对你会有所帮助。大表性能优化是一个系统性工程,需要从表结构、索引、SQL到架构设计全方位考虑。

2025-04-01 16:10:54 1053

原创 Java的IO模型、Netty原理详解

说起Java的IO模型,绕不开的就是Netty框架了,那什么是Netty,为什么Netty的性能这么高呢?Netty是由JBOSS提供的一个Java开源框架。提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器Netty的原理就是NIO,是基于NIO的完美封装很多中间件的底层通信框架用的都是它,比如:RocketMQ、Dubbo、Elasticsearch。

2025-03-31 17:46:26 983

原创 Netty源码—10.Netty工具之时间轮

简单来说,时间轮是一个高效利用线程资源进行批量化调度的调度器。首先把大批量的调度任务全部绑定到同一个调度器上,然后使用这个调度器对所有任务进行管理、触发、以及运行,所以时间轮能高效管理各种延时任务、周期任务、通知任务。时间轮是以时间作为刻度组成的一个环形队列,所以叫做时间轮。这个环形队列通过一个HashedWheelBucket[]数组来实现,数组的每个元素称为槽,每个槽可以存放一个定时任务列表,叫HashedWheelBucket。

2025-03-31 15:47:58 768

原创 常见的 AI 模型格式

过去两年,开源 AI 社区一直在热烈讨论新 AI 模型的开发。每天都有越来越多的模型在 Hugging Face 上发布,并被用于实际应用中。然而,开发者在使用这些模型时面临的一个挑战是。我们将分析每种格式的,并提供,帮助你选择最适合的格式。

2025-03-28 18:07:32 1198

原创 使用SPA单页面跟MPA多页面的优缺点?

MPA(Multi-Page Application,多页面应用)是传统的 Web 架构,每次用户请求新页面时,浏览器都会向服务器请求一个新的 HTML 页面,服务器端处理逻辑并返回完整的 HTML 代码。这就是多个水杯各自装着自己的水了。SPA 适用于交互复杂、需要前后端分离、性能优化可控的场景,如后台管理系统、单页应用(Gmail、Facebook、Netflix)。MPA 适用于SEO 友好、内容驱动、对页面加载速度有高要求的场景,如新闻、电商、企业网站。现代 Web 开发中,许多项目采用。

2025-03-28 16:36:53 863

原创 浅聊web前端性能测试

我的答案:这个问题我问了两个不同的AI软件(chatgpt和豆包),结果给的答案截然相反,所以后续我又查了很多资料,最终确认在GET URL请求时是包括的,如果JMeter测得的响应时间过长,大概率意味着页面整体加载以及资源获取过程存在延迟因素,可以进一步排查是服务器处理缓慢、网络传输问题,还是资源本身加载异常。众所周知,jmeter最出名的其实是它作为压测工具的使用,利用其灵活的线程组设置,JMeter 能够模拟不同并发用户数场景下页面的加载情况。Jmeter可以完美模拟用户的操作序列。

2025-03-27 18:02:39 1240

空空如也

空空如也

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

TA关注的人

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