- 博客(155)
- 收藏
- 关注

原创 我的第一个开源项目 -- 实时语音识别工具
这是我的第一个开源项目,是我一直想做的一个小工具:端到端实时语音转文字系统。通过小程序和H5页面,用户可以实时采录音频,通过ws上传到java的netty server。Java在经过权限验证、流量控制等操作之后,通过gRPC流式发送给python服务。python项目通过开源的模型实时识别文字结果,然后发送给java,java 发给客户端实时展示。
2025-07-22 23:09:31
2080
原创 怎么理解使用MQ解决分布式事务 -- 以kafka为例
本文聚焦原生能力,从「事务语义 → 代码 → 运维 → 故障场景」逐层展开,给出可在生产环境直接落地的全套方案。
2025-07-29 14:53:45
251
原创 火的不得了的AI Agent,到底是什么:从基础概念到现代应用
AI Agent可以理解为具有智能行为的软件实体,它能够感知环境(通过传感器或数据输入),处理信息,做出决策,并通过执行器或输出影响环境。就像人类有眼睛(感知)、大脑(处理)和手脚(执行)一样,AI Agent也具备类似的"器官"功能。AI Agent技术正在从简单的自动化工具进化为真正的"数字物种"。理解其原理和应用,不仅对技术人员重要,对每个现代社会的参与者都至关重要。正如计算机从专业设备发展为全民工具一样,AI Agent也将成为未来人机协作的基础设施。未来已来,只是分布不均。
2025-07-28 21:28:17
910
原创 Linux 三件套 & crontab:大数据工程师的「瑞士军刀」生存指南
grep / sed / awk + crontab 的 20 个高频场景与最佳实践输出示例:→ 立刻知道哪台节点最不稳定。
2025-07-27 14:55:15
607
原创 crontab 到底是什么?它和 Linux 命令、Shell、操作系统之间是什么关系?
crontab是 Unix / Linux 系统里“定时任务调度器”的配置工具,用来告诉操作系统:“以后每天 2:00 帮我跑一次 /home/etl/daily.sh,把昨天的日志归档。Linux 命令(grep / sed / awk …)是“工具Shell是“操作台crontab是“闹钟”:到点就把工具叫起来干活。记住:没有 crontab,你的脚本只能手动跑;有了 crontab,你的脚本就成了 7×24 小时的“无人值守机器人”。
2025-07-27 14:53:16
667
原创 大数据工程师:职责与技能全景图 -- 从“数据搬运工”到“价值架构师”
当大模型时代来临,数据工程师正在进化为“AI-Native 数据架构师”用给大模型准备高质量训练语料用让业务方像调用 API 一样调用数据用Data Mesh把“数据仓库”拆成“领域数据产品”数据本身不产生价值,让数据流动起来的管道才产生价值。而大数据工程师,就是那个设计管道、维护管道、升级管道的人。延伸阅读书籍:《Designing Data-Intensive Applications》工具:Amundsen(数据发现)、dbt(数据转换即代码)
2025-07-27 14:38:46
544
原创 业务开发工程师和大数据工程师怎么分工合作
大数据工程师和业务开发工程师的协作是数据驱动型企业的关键,两者的分工与配合直接影响数据价值的落地效率。通过明确分工、规范流程和工具化协作,两者可形成「业务需求→数据供给→价值反哺」的闭环。:数据管道(实时/离线) + 数据资产目录。:数据服务接口文档 + 监控告警规则。:需求文档(含数据口径说明书)。
2025-07-27 14:30:20
557
原创 以实时语音转文字项目为例,介绍一下如何手动部署python应用到Linux服务器(附脚本)
Python模型的训练微调这里不说了,模型的集成使用也不说了,这里只说代码写好之后怎么部署。因为我之前是主要写java,对项目和项目结构比较看重,我就不太理解python 怎么在linux里部署使用的,本文重点介绍这一块。Python代码一般是引擎层,相当于直接提供某种能力,可以以HTTP API的形式提供服务,也可以以RPC的方式提供服务,这个就看内部技术选型不提了。
2025-07-26 15:53:52
166
原创 一个非常奇怪的问题,java使用gRPC连本机的python失败了
错误日志:ClientCallImpljava72atiogrpcinternalClientCallImplStreamClosedrunInternalClientCallImpljava742atiogrpcinternalClientCallImplStreamClosedrunInC。
2025-07-25 11:32:50
714
原创 gRPC、Thrift与其他主流RPC框架深度对比
选择gRPC当需要HTTP/2特性多语言环境云原生部署流式数据传输选择Thrift当已有Thrift基础设施需要极致性能(C++)自定义协议需求非HTTP环境选择Dubbo当Java技术栈为主需要完善的服务治理阿里巴巴生态体系选择JSON-RPC当快速原型开发前端直接调用简单系统集成最终选择应基于具体的技术需求、团队技能栈和长期架构规划。现代分布式系统往往会混合使用多种RPC技术,例如用gRPC处理服务间通信,同时对外提供REST/JSON-RPC接口。
2025-07-21 15:39:20
719
原创 gRPC深度解析:原理、实践与性能优化指南
gRPC作为现代分布式系统的通信基石,其强大性能来自于HTTP/2和Protocol Buffers的精心设计。实现比REST高3倍的通信效率构建强类型的安全服务接口轻松应对高并发场景下的服务通信快速定位和解决生产环境问题随着云原生技术的普及,gRPC正在成为服务网格(Service Mesh)和数据平面(Data Plane)的标准通信协议。掌握其核心原理和优化技巧,将显著提升您的分布式系统开发能力。
2025-07-21 11:14:16
1060
原创 高性能熔断限流实现:Spring Cloud Gateway 在电商系统的实战优化
单节点支持2万TPS的限流判断熔断决策延迟<5ms99.99%的限流精度未来优化方向基于机器学习的自适应限流跨数据中心的全局限流与Service Mesh的深度集成限流速率 = 预估QPS * 1.2熔断阈值 = 平均失败率 * 1.5。
2025-07-20 17:06:02
818
原创 Spring Cloud Gateway 电商系统实战指南:架构设计与深度优化
场景推荐配置注意事项秒杀活动令牌桶burstCapacity=3倍常规值配合Redis集群使用支付接口严格限流+熔断设置独立路由组商品查询启用缓存过滤器注意缓存击穿防护用户登录双活认证中心路由熔断策略要宽松。
2025-07-20 16:48:52
1425
原创 如何优雅解决缓存与数据库的数据一致性问题?
在高并发系统中,缓存是提升性能的“利器”,但随之而来的“缓存与数据库数据不一致”问题,却常常让开发者头疼。但B在A更新缓存前也更新了数据库,此时A的缓存更新会覆盖B的数据库结果,导致数据不一致。举个例子:在前司的风控系统中,全球多个团队会更新同一个数据,我们通过监听MySQL的binlog,用Kafka将变更同步到ElasticSearch缓存,确保各地团队查询到的政策文本完全一致。我们的解决办法是:删除缓存失败后,将“待删除的缓存key”写入消息队列,由专门的重试服务异步重试,直到删除成功。
2025-07-20 15:47:58
390
原创 MySQL vs PostgreSQL:2025 年终极 PK,谁才是你的真命天子?
想“跑得稳”选 MySQL,想“跑得远”选 PostgreSQL。两者都足够成熟,真正的瓶颈往往在于架构设计和索引调优,而不是数据库本身。如果还在纠结,先用 Docker 各起一套跑压测——数据不会说谎。“没有银弹,只有最适合当下业务的子弹。祝你选对门派,早日神功大成!
2025-07-16 20:25:31
862
原创 深入解析 Java AQS (AbstractQueuedSynchronizer) 的实现原理
AQS 提供了一套通用的同步框架,通过。等同步工具的核心实现都依赖于。管理线程的排队与唤醒,并支持。实现同步队列,每个节点是一个。,理解它的实现有助于深入掌握。最终会进入 AQS 的。等同步工具的工作原理。Java 并发包 (
2025-07-15 15:36:01
747
原创 ReentrantLock、Semaphore、CountDownLatch 如何使用 AQS
来定制不同的同步逻辑。本文将详细分析这些同步工具如何使用 AQS。等同步工具都是基于 AQS 实现的。) 是 Java 并发包的核心同步框架,,用于控制并发访问数量。,用于线程等待事件。
2025-07-15 15:28:52
924
原创 深入浅出Kafka Broker源码解析(下篇):副本机制与控制器
Reactor模式作为反应器Processor线程处理IO事件作为任务队列状态机模式分区状态机(PartitionStateMachine)副本状态机(ReplicaStateMachine)控制器状态机(ControllerStateMachine)观察者模式元数据更新通过监听器传播ZkClient的Watcher机制的缓存更新批量处理优化消息集的批量压缩(MemoryRecords)生产请求的批量处理ISR变更的批量传播如何通过ISR机制平衡一致性与可用性。
2025-07-14 16:34:08
1022
原创 Kafka Broker源码解析(上篇):存储引擎与网络层设计
FETCH请求(携带followerOffset)图1:Broker核心组件交互图。图2:ISR副本同步流程图。
2025-07-14 16:30:28
904
原创 深入浅出Kafka Consumer源码解析:设计哲学与实现艺术
拉取模型优势消费者控制节奏(对比RabbitMQ的推送模型)支持批量拉取(协同消费设计动态分区分配(多种分配策略可选)会话机制(精确位移控制至少一次/至多一次语义手动/自动提交选择生产建议配置# 关键参数示例通过源码分析可见,Kafka Consumer通过精巧的状态机设计、高效的内存管理和灵活的协调机制,在消息顺序性、消费进度控制和系统弹性之间取得了完美平衡。这些设计对于构建可靠的消息处理系统具有重要参考价值。
2025-07-14 16:05:25
705
原创 深入浅出Kafka Producer源码解析:架构设计与编码艺术
批处理艺术通过实现"积小成大"动态调整批次大小(参考batch.size和linger.ms内存管理哲学固定大小内存池(BufferPool精确的内存使用统计(incomplete计数器)异步化典范业务线程与IO线程完全分离基于NIO的事件驱动模型生产建议配置# 关键参数示例通过深入源码分析,我们可以更好地理解Kafka如何在高吞吐、低延迟和可靠性之间取得平衡,这些设计思想对于构建高性能分布式系统具有普遍参考价值。
2025-07-14 15:57:54
1146
原创 Spring Cloud Gateway -- 架构图和安全认证,熔断降级等代码示例
通过以上配置和实践,Spring Cloud Gateway 可以成为微服务架构中强大的API网关,提供路由、安全、监控等关键功能。让我们通过一个具体的例子来说明整个请求流程:客户端调用 api/userService/userInfo 获取用户信息。通过这样的架构,你的微服务系统可以获得更好的可维护性、扩展性和安全性。发起请求 GET /api/userService/userInfo。让我们通过一个具体的例子来说明整个请求流程:客户端调用。转发请求 GET /userInfo。
2025-07-11 09:43:02
770
原创 Spring Cloud Gateway介绍 - -基础概念,简单工作原理和配置示例
Component@Override// 前置处理// 后置处理}));// 过滤器执行顺序@Bean.build();
2025-07-11 09:31:05
791
原创 Kubernetes(k8s)安装配置,以及Springboot应用部署文档
以下是一个完整的 Kubernetes 实例,包含(支持水平扩展),以及。
2025-07-11 09:29:26
807
原创 k8s 中Non-Service Mesh和Service Mesh实现的差异和代码示例
服务,流量管理(重试、熔断)由 Sidecar 代理处理。实现,两者底层实现和上层影响差异显著。在 Kubernetes 中,服务间通信可以通过。)通过原生 K8s Service 调用。)通过 Service Mesh 调用。服务,需手动处理重试、超时等逻辑。
2025-07-11 07:44:32
707
原创 Kubernetes 中,Project、Namespace、Cluster以及应用间通信相关介绍
fill:#333;color:#333;color:#333;fill:none;包含包含包含运行运行运行通过Service名称跨Namespace需完整DNSClusterProjectfrontendbackendbackend。
2025-07-11 07:36:25
761
原创 k8s 的基本原理、架构图、使用步骤和注意事项
Kubernetes(k8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。kubectl以下是一个简化的 Kubernetes 架构图,描述kubectl。实际部署时,还需考虑网络插件(如 Calico)、负载均衡(如 MetalLB)等组件。
2025-07-11 07:21:46
866
原创 关于k8s Kubernetes的10个面试题
Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。或修改Deployment的YAML文件后。K8s会逐步替换旧Pod,确保服务可用。希望这些问题能帮助你准备面试!
2025-07-10 19:08:48
828
原创 中文语音识别技术选型与生产部署:从技术评估到成本优化
对于大多数中文语音识别场景,FunASR-Paraformer系列在5-15%的成本节约下,可提供与商业API相当的识别质量。建议先进行50-100小时的试点验证,再规模化部署。注:成本按处理1000小时音频计算,基于阿里云A10G实例(¥4/小时)估算。注:包含硬件折旧、电费、运维等全成本。语音识别系统的技术选型需要从。预算>1.5万/月?
2025-07-10 09:57:44
1043
原创 Oracle与MySQL详细对比
对比项OracleMySQL开发商Oracle Corporation (原MySQL AB)首次发布1979年1995年许可证商业专有(有免费Express Edition)开源(GPL)/商业版最新版本MySQL 8.0主要用途企业级应用、大型系统中小型应用、Web应用。
2025-07-10 08:55:02
419
原创 客户端与服务端数据加密方案及实现
返回加密响应:{data: AES加密的响应}生成随机AES密钥(key)和IV(iv)key: RSA加密的AES密钥,获取服务端RSA公钥(预置或动态获取)data: AES加密的业务数据,iv: AES的IV向量。用AES密钥+IV解密业务数据。使用同一AES密钥加密响应数据。用本地AES密钥解密响应数据。用RSA公钥加密AES密钥。用RSA私钥解密AES密钥。用AES加密业务数据。
2025-07-09 21:57:52
919
1
原创 Spring Boot 扩展点深度解析:设计思想、实现细节与最佳实践
Spring Boot 提供了丰富的扩展点(Extension Points),允许开发者在应用生命周期的不同阶段插入自定义逻辑。这些扩展点不仅简化了开发流程,还体现了 Spring 团队的核心设计思想,如。,帮助你更高效地使用 Spring Boot 进行开发。本文将深入探讨 Spring Boot 扩展点的。Spring Boot 的设计目标之一是。的 Spring Boot 应用。通过合理使用这些扩展点,可以构建。
2025-07-09 14:31:04
331
原创 @Autowired 和 @Resource 都是用于依赖注入(Dependency Injection, DI)的注解,但它们在来源、注入方式和使用场景上有显著区别。以下是两者的详细对比:
都是用于依赖注入(Dependency Injection, DI)的注解,但它们在来源、注入方式和使用场景上有显著区别。)匹配,如果找到多个同类型的 Bean,会尝试按名称(ByName)匹配。表示注入是可选的(找不到 Bean 时不报错,默认为。属性)匹配,找不到时再按类型(ByType)匹配。直接指定要注入的 Bean 名称(无需额外注解)。当有多个同类型 Bean 时,需用。先根据 Bean 的名称(根据 Bean 的类型(
2025-07-09 14:25:37
248
原创 使用 ReentrantLock实现生产者-消费者模型
ReentrantLock是Java中提供的一种可重入互斥锁,它比synchronized关键字提供了更灵活的锁操作。在生产者-消费者问题中,我们可以使用ReentrantLock配合Condition来区分"非空"和"非满"两种条件,从而实现更精确的线程控制。
2025-07-09 14:15:48
236
原创 自建ELK vs 云商日志服务:成本对比分析
在当今数据驱动的时代,日志管理已成为企业IT基础设施中不可或缺的一部分。面对日益增长的日志数据,许多团队都在纠结:是自建ELK(Elasticsearch、Logstash、Kibana)堆栈,还是直接使用云服务商提供的日志服务?本文将从成本角度对这两种方案进行详细对比分析。
2025-07-09 14:15:07
804
原创 构建百万级吞吐量的设备数据处理系统:架构设计与实现细节
构建百万级吞吐量的设备数据处理系统需要全方位的优化,从网络IO处理到最终存储写入,每个环节都可能成为性能瓶颈。批处理思想:在各个环节实现批量操作异步非阻塞:避免任何同步阻塞调用合理分层:各层独立扩展和容错全面监控:建立完善的指标监控体系实际实施时建议采用渐进式优化策略,通过性能测试不断验证和调整参数,最终达到最优的系统性能。
2025-07-08 15:30:37
507
原创 java synchronized与ReentrantLock深度对比
特性实现方式JVM内置,语言特性JDK实现,基于AQS锁获取自动获取释放必须显式调用lock()/unlock()异常释放自动释放需在finally中手动释放可中断不可中断支持可中断获取公平性仅非公平可配置公平/非公平条件变量单一等待队列支持多个Condition超时获取不支持支持tryLock(timeout)锁状态查询不支持支持isLocked()等查询性能特点低竞争下性能优异高竞争下表现更好内存开销无额外开销每个实例有额外内存消耗代码复杂度简单相对复杂适用场景简单同步需求。
2025-07-08 14:37:25
824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人