- 博客(250)
- 资源 (5)
- 收藏
- 关注
原创 Sharding-JDBC 系列专题 - 第十篇:ShardingSphere 生态与未来趋势
本篇回顾了 Apache ShardingSphere 生态的完整功能,包括 Sharding-JDBC、Sharding-Proxy、ShardingSphere-UI 和 ShardingSphere-Scaling,涵盖了分布式数据库、数据治理和高可用性等核心能力。通过与其他技术的集成(如 Spring Boot、Kubernetes、Kafka),ShardingSphere 能够满足复杂的分布式系统需求。
2025-04-24 22:34:19
703
原创 Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理
高可用性是指系统在面对故障(如数据库宕机、网络中断)时,能够快速恢复并继续提供服务。Sharding-JDBC 和 Sharding-Proxy 提供了多种机制支持高可用性,同时需要结合底层数据库的高可用方案(如 MySQL 主从复制、MHA)来实现。高可用性和集群管理是 Sharding-JDBC 和 Sharding-Proxy 在生产环境中成功应用的关键。本篇详细介绍了数据库高可用方案、Sharding-JDBC 的故障切换机制、Sharding-Proxy 的集群部署,以及分布式治理功能。
2025-04-24 22:31:29
1124
原创 Sharding-JDBC 系列专题 - 第八篇:数据治理与高级功能
数据治理是 Apache ShardingSphere 生态的重要组成部分,旨在提供数据安全、质量管理和可观测性等能力。Sharding-JDBC 作为客户端组件,支持多种数据治理功能,与分库分表、读写分离和分布式事务无缝集成。数据治理和高级功能是 Sharding-JDBC 在生产环境中不可或缺的部分。本篇详细介绍了数据加密、影子表、SQL 审计和分布式主键生成,通过实战案例展示了如何在电商系统中综合应用这些功能。这些功能增强了系统的安全性、可测试性和可观测性。
2025-04-24 22:29:00
718
原创 Sharding-JDBC 系列专题 - 第七篇:Spring Boot 集成与 Sharding-Proxy 简介
是 Apache ShardingSphere 生态中的另一个组件,与 Sharding-JDBC 不同,它是一个独立的服务端中间件,充当数据库代理,适合多语言环境或需要集中管理分片逻辑的场景。本篇详细介绍了 Sharding-JDBC 与 Spring Boot 的集成方法,通过 YAML 配置和代码示例展示了分库分表、读写分离和广播表的实现。同时,介绍了 Sharding-Proxy 的基本概念、部署方法和适用场景,为多语言或集中管理场景提供了替代方案。
2025-04-22 19:17:46
862
原创 Sharding-JDBC 系列专题 - 第五篇:分布式事务
在分库分表场景中,单一事务可能涉及多个分片数据库(如ds_0和ds_1传统数据库事务无法保证跨库操作的原子性、一致性、隔离性和持久性(ACID),因此需要分布式事务。Sharding-JDBC 提供多种分布式事务机制,满足不同一致性需求。分布式事务是 Sharding-JDBC 保障跨分片数据一致性的核心功能。本篇详细介绍了 XA 事务和 BASE 事务的原理、配置和实现方法,通过实战案例展示了订单和库存更新的场景。XA 事务适合强一致性场景,而 BASE 事务适合高性能场景。
2025-04-22 19:10:02
1129
原创 Sharding-JDBC 系列专题 - 第四篇:读写分离
读写分离是将数据库的读操作和写操作分发到不同的数据库实例,通常为主库(Master)处理写操作,从库(Slave)处理读操作。Sharding-JDBC 通过客户端直连方式实现读写分离,无需额外部署中间件,简化架构并提升性能。开发者可以实现接口自定义负载均衡逻辑。@Override// 选择响应时间最短的从库// 默认选择第一个// 模拟更新响应时间(实际可通过监控获取)配置自定义算法。
2025-04-21 10:09:11
766
原创 Sharding-JDBC 系列专题 - 第三篇:分片策略与算法
在 Sharding-JDBC 中,分片策略定义了数据如何根据分片键(Sharding Key)分配到不同的数据库(分库)或表(分表)。分片策略分为数据库分片策略和表分片策略,分别控制数据在数据库和表级别的分布。实现(精确分片)或(范围分片)接口。参考上述示例。>> {@Override// 组合逻辑:order_id 取模 + create_time 年份分片策略和算法是 Sharding-JDBC 实现分布式数据管理的核心。
2025-04-21 10:02:25
2061
原创 Sharding-JDBC 系列专题 - 第二篇:广播表(Broadcast Tables)
在 Sharding-JDBC 的分库分表场景中,广播表是一种特殊的表类型,其数据需要在所有分片数据库中保持一致。Sharding-JDBC 会将对广播表的写操作(如 INSERT、UPDATE、DELETE)自动同步到所有分片数据库,查询操作则从任意一个分片数据库获取数据。广播表是 Sharding-JDBC 提供的一种高效机制,用于管理需要在所有分片数据库中保持一致的公共数据。通过简单的配置,开发者可以实现全局数据的自动同步和高效查询。
2025-04-20 16:10:25
845
原创 Sharding-JDBC 系列专题 - 第一篇:简介与快速入门
Sharding-JDBC 是一个开源的数据库分片解决方案,通过客户端直连方式提供分库分表、读写分离和分布式事务等功能。它直接嵌入到应用程序中,无需额外的中间件部署,适合需要高性能和高扩展性的分布式数据库场景。在分库分表场景中,某些表的数据需要在所有分片数据库中保持一致,这些表称为广播表(Broadcast Tables)。广播表的写操作会同步到所有分片数据库,读操作只需访问一个分片数据库。本篇介绍了 Sharding-JDBC 的基本概念、核心功能和快速入门示例。
2025-04-20 13:24:53
891
原创 KWDB 创作者计划 KWDB(KaiwuDB)系列专题 (四) KWDB核心概念解析:多模、时序与分布式
时序数据:如传感器的时间戳和数值(温度、压力)。关系数据:如设备元信息(ID、型号、位置)。其他数据:如日志、事件流等。传统数据库通常专注于单一模型(如MySQL的关系模型或InfluxDB的时序模型),导致AIoT应用需部署多个数据库,增加复杂性。KWDB的多模融合设计允许在同一数据库实例内同时创建和管理时序表和关系表,通过统一的SQL接口实现跨模查询。时序数据是AIoT场景的核心,特点是高频写入、时间序列索引和聚合查询需求。例如,智能电表每秒上传用电量,工业传感器每毫秒记录振动数据。
2025-04-19 10:25:02
1177
原创 KWDB 创作者计划 KWDB(KaiwuDB)系列专题 (三) 快速上手KWDB:从零到部署的5分钟指南
通过本篇,你已经成功在单机上部署了KWDB,创建了时序表和关系表,并通过命令行和Python客户端体验了其多模数据操作。整个过程不到5分钟,展示了KWDB的易用性和强大功能。接下来,你可以尝试更多功能,如分布式部署或性能优化。下一站:想深入了解KWDB的设计原理?请关注系列第四篇《KWDB核心概念解析:多模、时序与分布式》!
2025-04-19 10:24:31
954
原创 KWDB 创作者计划 KWDB(KaiwuDB)系列专题 (二) KWDB vs 传统数据库:多模数据库的独特优势
KWDB通过多模融合、高性能时序处理和分布式架构,突破了传统数据库在AIoT场景中的局限。相比MySQL的单模限制、InfluxDB的专用性不足和PostgreSQL的复杂性,KWDB提供了更简单、高效和可扩展的解决方案。无论是在车联网的亿级数据处理,还是工业物联网的实时监控,KWDB都展现了强大的竞争力。下一站:想快速体验KWDB?请关注系列第三篇《快速上手KWDB:从零到部署的5分钟指南》!
2025-04-19 10:23:43
723
原创 KWDB 创作者计划 KWDB(KaiwuDB)系列专题 (一) KWDB简介:面向AIoT的分布式多模数据库
KWDB(KaiwuDB)是由浪潮控股的上海沄熹科技有限公司开发的一款开源分布式多模数据库,专为AIoT(人工智能物联网)场景设计。它结合了时序数据库和关系数据库的优点,支持同一实例内创建和管理时序库与关系库,实现多模数据的统一存储和高效处理。KWDB于2024年8月在Gitee正式开源(https://gitee.com/kwdb/kwdb),由开放原子开源基金会孵化,目标是成为AIoT领域高性能、易扩展的数据库解决方案。
2025-04-19 10:23:07
548
原创 Spring Batch 专题系列(九):Spring Batch 生产实践
通过 Listener 记录详细日志。示例:Job 监控 Listener@Override@Override配置@Bean.build();说明记录 Job 开始和结束状态。可扩展为写入日志文件或发送到外部系统。
2025-04-17 07:38:44
996
原创 Spring Batch 专题系列(八):Spring Batch 高级主题:扩展与定制
ItemReader负责读取数据,自定义 Reader 可以适配非标准数据源,如 REST API、Kafka、文件系统等。负责数据转换或业务逻辑,自定义 Processor 可以实现复杂处理,如调用外部服务、数据校验等。ItemWriter负责写入数据,自定义 Writer 可以适配非标准目标,如文件、API、队列等。示例:记录 Step 执行时间@Override@Override配置@Bean.build();说明beforeStep记录开始时间。afterStep。
2025-04-17 07:38:06
1024
原创 Spring Batch 专题系列(七):Spring Batch 与数据库集成
在上一篇文章中,我们学习了 Spring Batch 的并行处理机制(多线程 Step、分区、并行 Job)和性能优化技巧,掌握了如何处理海量数据。在批处理任务中,数据库操作是最常见的场景之一,例如从源表读取数据,经过转换后写入目标表(ETL)、批量更新记录或生成报表。本文详细讲解了 Spring Batch 与数据库的集成,包括 JDBC、JPA 和 MyBatis 的读写方式,以及事务管理和性能优化实践。A:JDBC 适合高性能 ETL,JPA 适合复杂实体关系,MyBatis 介于两者,灵活性高。
2025-04-16 15:33:19
758
原创 Spring Batch 专题系列(六):并行处理与性能优化
在上一篇文章中,我们学习了 Spring Batch 的错误处理机制(Skip、Retry、Restart 和 Listener),掌握了如何提升作业的健壮性。随着数据量的增加,批处理任务的性能成为关键挑战。Spring Batch 提供了强大的并行处理功能,包括多线程 Step、分区(Partitioning)和并行 Job,能够显著缩短运行时间。此外,性能优化还涉及 Chunk 大小、缓冲区配置等细节。本文将聚焦以下内容:通过本文,你将学会如何利用 Spring Batch 的并行机制处理海量数据,并优
2025-04-16 15:32:26
1020
原创 Spring Batch 专题系列(五):错误处理与重试机制
对于更复杂的重试需求,可以使用 Spring Retry 的@Retryable注解。示例:重试 Processor 中的外部服务调用假设 Processor 需要调用外部 API 转换价格,可能因网络问题失败。@Component// 模拟外部服务调用,可能抛出异常@Override启用 Retry在主应用类添加说明@Retryable指定重试逻辑,表示最多重试 3 次。设置重试间隔 1 秒。如果重试失败,抛出异常,触发 Skip 或作业失败。最佳实践。
2025-04-15 16:31:36
772
原创 Spring Batch 专题系列(四):配置与调度 Spring Batch 作业
JobParameters 通过StringLongDoubleDate示例:手动传递 JobParameters@Component@Autowired@Autowired@Override说明runTime作为唯一标识,确保每次运行创建新的 JobInstance。inputFile可用于动态指定输入文件。通过本文,你掌握了 Spring Batch 的配置和调度核心知识。Java 配置提供了现代化的开发体验,XML 配置适用于遗留系统;
2025-04-15 16:30:51
1083
原创 Spring Batch 专题系列(三):Spring Batch 的核心组件详解
如果内置实现无法满足需求,可以实现ItemReader@Override// 返回 null 表示读取结束场景:从自定义数据源(如内存列表、API 调用)读取数据。实现ItemWriter@Override// 模拟写入场景:将数据写入非标准目标(如 API、日志)。
2025-04-14 08:36:56
2268
原创 Spring Batch 专题系列(二):快速入门:构建第一个 Spring Batch 作业
在上一篇文章中,我们介绍了 Spring Batch 的核心概念,包括 Job、Step、Chunk、ItemReader、ItemProcessor 和 ItemWriter 等。本文将通过一个简单的示例,带你从零开始构建一个 Spring Batch 作业,体验其基本功能。本示例展示了 Spring Batch 的基本用法,但还有更多功能等待探索。A:Chunk 大小(如 10)需要根据数据量和性能权衡,过大可能占用内存,过小影响效率。(因为 Spring Batch 默认会运行所有定义的 Job)。
2025-04-14 08:36:12
605
原创 Spring Batch 专题系列(一):Spring Batch 简介与核心概念
Spring Batch 是一个功能强大且轻量级的批处理框架,专为处理企业级系统中的大规模数据任务而设计。它是 Spring 生态系统的一部分,充分利用了 Spring 框架的依赖注入、AOP 和事务管理等特性。批量数据处理:如 ETL(Extract-Transform-Load)任务,从数据源提取数据、转换后加载到目标。定时任务:如每日生成财务报表、清理过期数据。数据迁移:如将数据从旧系统迁移到新系统,或在数据库之间同步数据。复杂业务逻辑:如批量更新订单状态、计算促销折扣。
2025-04-13 00:15:00
519
原创 Elasticsearch 系列专题 - 第七篇:实战项目
理论学习固然重要,但实战才能真正巩固知识。本篇将通过两个项目,带你从需求分析到实现,体验 Elasticsearch 在真实场景中的应用。Mermaid 图示 - 日志分析架构服务器日志FilebeatElasticsearchKibana用户: Dashboard1.2 数据采集、存储与查询实现配置 Filebeat():启动:定义索引映射:查询错误日志:1.3 Kibana 可视化展示在 Kibana 中:添加索引模式:。创建 Visualization:选择 “Line
2025-04-13 00:00:00
613
原创 Elasticsearch 系列专题 - 第六篇:高级功能与生态系统
Elasticsearch 不仅是一个强大的搜索引擎,还提供了高级功能和丰富的生态系统支持。本篇将深入探讨这些特性,并介绍如何与其他工具协同工作。
2025-04-12 00:15:00
742
原创 Elasticsearch 系列专题 - 第四篇:聚合分析
聚合是对文档集合的统计分析,类似于 SQL 中的GROUP BY和聚合函数(如SUMAVGMetric 聚合:计算数值统计(如平均值、总和)。Bucket 聚合:将文档分组(如按字段值、范围)。Pipeline 聚合对其他聚合的结果进行二次处理。"aggs": {},avg_bucket:计算每个作者浏览量的平均值。
2025-04-12 00:00:00
941
原创 Elasticsearch 系列专题 - 第五篇:集群与性能优化
随着数据量和访问量的增长,单节点 Elasticsearch 已无法满足需求。本篇将介绍集群架构、性能优化方法以及常见故障排查,帮助你应对生产环境中的挑战。
2025-04-11 00:15:00
870
原创 Elasticsearch 系列专题 - 第三篇:搜索与查询
"query": {views:文档浏览量,增加热门内容的权重。Mermaid 图示 - Function Score 流程fill:#333;User发送查询 (match: Elasticsearch)计算基础评分 (BM25)应用函数 (views * 1.2)返回调整后的结果User。
2025-04-11 00:00:00
1433
原创 Elasticsearch 系列专题 - 第二篇:数据建模与索引管理
ILM 用于自动管理索引生命周期,适合时间序列数据(如日志)。阶段:Hot(活跃写入)、Warm(查询为主)、Cold(归档)、Delete(删除)。示例策略:PUT _ilm/policy/my_policy。
2025-04-10 00:15:00
856
原创 Elasticsearch 系列专题 - 第一篇:Elasticsearch 入门
Elasticsearch 是一个基于 Apache Lucene 的分布式全文搜索引擎,设计目标是提供高效的搜索和分析能力。它支持 RESTful API,可以轻松与各种编程语言和工具集成。分布式:数据分布在多个节点,支持高可用性和横向扩展。全文搜索:支持复杂的查询和文本分析。近实时:数据写入后几乎立即可搜索。Elasticsearch 使用 RESTful API,通过 HTTP 请求与服务交互。GET:查询数据。POST:创建或更新数据。PUT:创建索引或更新配置。DELETE。
2025-04-10 00:00:00
760
原创 Three.js 系列专题 8:实战项目 - 构建一个小型 3D 游戏
本专题将通过一个实战项目展示 Three.js 的综合应用。游戏包含迷宫生成、角色移动、相机控制和简单的物理碰撞检测(可选)。这将帮助你将之前学到的知识融会贯通。我们将创建一个迷宫,玩家用键盘(WASD)控制一个立方体角色移动,视角跟随角色。代码逐步讲解基础设置:迷宫地板:迷宫墙壁:玩家角色:光源:相机跟随:键盘控制:动画:以下是用 Mermaid 绘制的迷宫简化结构:解释:玩家从 (-8, -8) 开始,需绕过墙壁到达 (9, 9)。运行与效果保存为 文件并在浏览器中打开。你会
2025-04-09 00:15:00
1125
原创 Three.js 系列专题 7:性能优化与最佳实践
随着 3D 场景复杂度的增加,性能优化变得至关重要。Three.js 项目可能因几何体数量、纹理大小或渲染设置而变慢。本专题将介绍减少 draw call、优化纹理和使用调试工具的最佳实践。
2025-04-09 00:00:00
531
原创 Three.js 系列专题 6:后处理与特效
后处理(Post-Processing)是在渲染完成后对画面进行额外的处理,以实现模糊、辉光、颜色校正等效果。Three.js 通过提供后处理支持。本专题还将简要介绍着色器和粒子系统,为更复杂的特效打基础。着色器(Shader)自定义视觉效果的代码,使用 GLSL 编写。例如,可以通过着色器实现水波纹或扭曲效果。本例未深入,但内部依赖着色器实现。粒子系统用于创建烟雾、星星等效果。可以用Points和实现大量小粒子的渲染。。
2025-04-08 00:15:00
704
原创 Three.js 系列专题 5:加载外部模型
Three.js 支持加载多种 3D 文件格式(如 GLTF、OBJ、FBX),这让开发者可以直接使用专业建模软件(如 Blender、Maya)创建的复杂模型。本专题将重点介绍 GLTF 格式的加载,并调整模型的位置和材质。
2025-04-08 00:00:00
1127
原创 Three.js 系列专题 4:动画与交互
动画和交互是 3D 场景的核心体验。Three.js 使用实现平滑动画,而交互则可以通过鼠标或键盘事件实现。本专题将介绍动画循环的基本原理,并使用添加鼠标控制功能。
2025-04-07 00:15:00
1464
原创 Three.js 系列专题 3:光照与阴影
光照是 3D 场景真实感的关键。Three.js 提供了多种光源类型,每种光源有不同的效果和用途。本专题还将介绍如何启用和优化阴影效果,提升场景的深度感。
2025-04-07 00:00:00
2398
原创 Three.js 系列专题 2:几何体与材质
在 Three.js 中,几何体(Geometry)定义了 3D 物体的形状,而材质(Material)决定了它的外观(如颜色、光泽、纹理)。本专题将介绍常见的几何体类型、多种材质的特性,并通过加载纹理实现更真实的效果。
2025-04-06 00:15:00
830
原创 Three.js 系列专题 1:入门与基础
Three.js 是一个基于 WebGL 的 JavaScript 库,它简化了 3D 图形编程,让开发者无需深入了解底层 WebGL API 就能创建复杂的 3D 场景。它广泛应用于网页游戏、可视化、虚拟现实等领域。
2025-04-06 00:00:00
583
原创 QGIS实战系列(七):项目案例篇——从零开始完成一个完整的 GIS 项目
欢迎来到“QGIS实战系列”的最后一期!在前六期中,我们从基础操作到进阶应用逐步掌握了 QGIS 的核心技能。这一篇,我们将通过一个完整的项目案例——“城市洪水风险评估”,整合所学,带你体验从数据准备到成果输出的全流程。
2025-04-05 00:15:00
891
原创 QGIS实战系列(六):进阶应用篇——Python 脚本自动化与三维可视化
欢迎来到“QGIS实战系列”的第六期!在前几期中,我们从基础操作到插件应用逐步提升了 QGIS 技能。这一篇,我们将迈入进阶领域,探索如何用 Python 脚本实现自动化,以及如何创建三维可视化效果,让你的 GIS 项目更高效、更立体。
2025-04-05 00:00:00
1203
原创 QGIS实战系列(四):空间分析篇——缓冲区分析、叠加分析与热力图制作
欢迎来到“QGIS实战系列”的第四期!在前几期中,我们学会了导入数据、编辑图层并优化地图样式。现在,我们将进入 GIS 的核心领域——空间分析。这一篇将带你掌握缓冲区分析、叠加分析和热力图制作,解锁 QGIS 的强大分析能力。
2025-04-04 07:46:34
807
postgresql10 yum 离线资源包
2018-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人