自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Elasticsearch 从入门到实战:文档聚合操作及总结

无论是构建实时日志监控系统,还是实现复杂的商业智能分析,ES 都能提供高效的解决方案。- 脑裂问题:配置 `discovery.zen.minimum_master_nodes` 避免集群分裂。{ "term": { "category": "手机" } },- 避免大结果集:使用 `scroll` API 分页查询海量数据。- 冷热数据分离:使用 ILM(索引生命周期管理)自动迁移旧数据。- 索引只读:磁盘空间不足时,ES 会自动将索引设为只读模式。五、数据聚合:挖掘数据的深层价值。

2025-04-07 09:56:08 372

原创 Elasticsearch简介及索引库操作

Elasticsearch(简称 ES)作为一款基于 Lucene的分布式搜索和分析引擎,凭借其近实时搜索、水平扩展能力和强大的聚合分析功能,迅速成为日志分析、全文检索、监控系统等场景的首选工具。- 多类型数据分析:支持结构化、非结构化数据,甚至地理位置数据的处理。- 全文检索:基于倒排索引技术,支持模糊查询、高亮显示等高级功能。- 分片(Shard):数据水平拆分的单元,提升并发处理能力。- 电商搜索:商品多维度检索(如价格、品牌、关键词)。- 副本(Replica):分片的备份,保障高可用性。

2025-04-06 15:09:35 408

原创 RabbitMQ

Exchange:消息路由(支持Direct、Topic、Fanout、Headers四种类型)- 镜像队列(Mirrored Queues)实现高可用。├── 是 → 同步调用(OpenFeign/gRPC)└── 否 → 异步消息(RabbitMQ/Kafka)- 批量发送消息(Batch Publishing)- 方案:单个队列单消费者,或使用Kafka分区。- 方案:增加消费者实例,或设置TTL+死信队列。- 方案:消费端实现幂等性(如数据库唯一索引)- 消费者手动ACK(避免消息丢失)

2025-04-05 10:19:01 635

原创 Java微服务通信实战:同步与异步调用详解

同步调用(Synchronous Communication)是典型的请求-响应模式:客户端发出请求后,必须等待服务端响应才能继续执行,如同打电话需要实时对话。// 阻塞直到获取结果。| 适用场景 | 实时交易、API调用 | 日志处理、事件通知 |- 实时性强,适合需要立即响应的场景(如支付验证)| 响应时间 | 毫秒级 | 秒级甚至分钟级 || 数据一致性 | 强一致性 | 最终一致性 |- gRPC(基于HTTP/2的高性能RPC)| 系统耦合度 | 高 | 低 || 维度 | 同步 | 异步 |

2025-04-04 11:08:09 541 1

原创 Sentinel深度解析:微服务流量防卫兵的原理与实践

围绕资源的实时状态动态配置的治理策略,包括流量控制规则(FlowRule)、熔断降级规则(DegradeRule)和系统保护规则(SystemRule)。通过动态监测CPU使用率、系统负载等指标,自动调整入口流量,防止系统过载。Sentinel应运而生,作为阿里巴巴开源的分布式系统流量防卫兵,它通过流量控制、熔断降级、系统负载保护等核心功能,为微服务架构提供全方位的稳定性保障。Sentinel的核心执行模型,由多个ProcessorSlot(处理槽)组成,依次执行统计、限流、熔断等逻辑,形成责任链模式。

2025-04-03 08:02:49 471

原创 分布式事务解决方案:Seata架构与AT/XA模式深度解析

传统解决方案如两阶段提交(2PC)存在性能瓶颈,而 Seata作为开源分布式事务框架,提供了更灵活的模式,尤其是 AT(自动补偿)和 XA(强一致性)模式,成为企业级应用的热门选择。- 拦截业务SQL,生成数据更新前后的快照(`before_image` 和 `after_image`)。- **回滚**:根据undo_log生成反向SQL补偿数据,并通过 **全局锁** 避免脏写。| **维度** | **AT模式** | **XA模式** |- **提交**:异步删除undo_log,无资源占用。

2025-04-02 00:42:33 676

原创 零基础入门npm:从安装到实战,一篇熟悉Node.js包管理

接下来,建议深入学习`package.json`配置、继续探索npm脚本的自动化能力。- 删除`node_modules`后重装:`rm -rf node_modules && npm install`2. 锁定依赖版本:使用`package-lock.json`或`npm shrinkwrap`。| `npm list -g --depth 0` | 查看全局安装的包 || `npm uninstall <package>` | 卸载包 |- 清除缓存:`npm cache clean --force`

2025-03-31 12:04:11 732

原创 排序算法(Java篇)

System.out.println("快速排序结果:" + Arrays.toString(testArr));System.out.println("原始数组:" + Arrays.toString(testArr));2. 原地排序:除计数排序外,其他算法均实现为原地排序(直接修改输入数组)- 快速排序使用三数取中法选择基准值(代码中简化为取最后一个元素)1. 方法结构优化:所有排序方法都设计为静态方法,可以直接通过类调用。- 堆排序实现为O(1)空间复杂度。

2025-03-29 17:59:42 455

原创 十大经典排序算法详解(Pyhon篇)

快速排序 | O(n log n) | O(n²) | O(log n) | 不稳定 || 归并排序 | O(n log n) | O(n log n) | O(n) | 稳定 || 堆排序 | O(n log n) | O(n log n) | O(1) | 不稳定 || 计数排序 | O(n+k) | O(n+k) | O(k) | 稳定 || 冒泡排序 | O(n²) | O(n²) | O(1) | 稳定 |非比较类排序:利用元素特征确定位置(计数、基数、桶排序)

2025-03-29 17:56:46 493

原创 Java微服务拆分原则深度解析:从理论到实践

例如,一个电商系统的订单模块与库存模块深度耦合,修改订单逻辑可能影响库存计算,导致测试和部署周期延长。例如,将用户管理系统拆分为用户认证服务和用户画像服务,前者处理登录鉴权,后者负责行为数据分析。例如,用户服务提供`GET /users/{id}`接口,禁止其他服务直接查询用户表。例如,订单服务通过API调用库存服务,而非直接操作库存表。垂直拆分:将单表按业务拆分,如将`orders`表拆分为`orders`(订单基础信息)和`order_details`(商品明细)高内聚:同一服务内的功能紧密相关。

2025-03-28 13:55:23 804

原创 深入浅出Nacos核心用法:服务发现与配置管理实战指南

[Spring Cloud Alibaba参考指南](https://spring-cloud-alibaba-group.github.io/github-pages/2021/en-us/index.html)| 特性 | Nacos | Eureka | Consul | Apollo || 配置实时推送 | ✅ | ❌ | ❌ | ✅ || 多数据中心 | ✅ | ❌ | ✅ | ✅ || 服务发现 | ✅ | ✅ | ✅ | ❌ || 配置管理 | ✅ | ❌ | ✅ | ✅ |

2025-03-27 17:17:12 1025

原创 Docker:从核心概念到跨主机通信的实践指南

而Docker基于Linux内核的命名空间(Namespace)和控制组(Cgroups)技术,仅虚拟化应用运行环境,多个容器共享宿主机内核,资源利用率提升50%以上。本文系统性解析Docker的核心技术原理,涵盖容器与虚拟机的本质差异、四种网络模式的应用场景、镜像构建全流程,以及跨宿主机通信的解决方案。2. 创建Macvlan网络:`docker network create -d macvlan --subnet 172.19.0.0/24 -o parent=eno1 macvlan-net`

2025-03-24 09:05:51 542

原创 MyBatis Plus核心详解:从入门到高效开发的实战指南

摘要:MyBatis Plus作为MyBatis的增强工具,凭借其简洁的API和强大的功能,成为Java开发者提升ORM效率的利器。本文深度解析MyBatis Plus的核心特性,包括通用CRUD、条件构造器、分页插件等,并通过代码示例展示其实际应用场景,助你快速掌握这一框架的精髓。结语:MyBatis Plus通过巧妙的封装,在保留MyBatis灵活性的同时大幅提升了开发效率。GitHub源码地址:https://github.com/baomidou/mybatis-plus。// 当前页、每页数量。

2025-03-22 15:58:47 524

原创 Java编程规范与最佳实践:提升代码质量与团队协作效率

通过统一的代码风格、清晰的注释与文档、健壮的异常处理机制,开发者能显著降低维护成本,提升代码可读性与系统稳定性。文档注释(Javadoc):用于类、方法、成员变量的描述,通过`/** ... */`格式编写,包含功能说明、参数、返回值及异常信息。实现注释:包括块注释(`/* ... */`)和行注释(`//`),用于解释复杂逻辑或临时性代码调整,需与代码同步更新以避免误导。精准捕获:避免捕获泛化的`Exception`,应针对`IOException`、`SQLException`等具体异常处理。

2025-03-18 16:01:03 547

原创 2025年Java面试高频八股文总结

方法过滤 | InvocationHandler | MethodInterceptor |- List<String>与List<Integer>的class对象相同。- **问题**:为什么String设计为不可变类?| 限制 | 必须实现接口 | 无法代理final类 || 性能 | 调用快,生成慢 | 生成快,调用稍慢 |- 典型反例:StringBuffer的线程安全代价。| 特性 | JDK Proxy | CGLIB |- **并发问题**:多线程扩容导致数据丢失的底层原理。

2025-03-15 01:30:44 283

原创 Java Web开发核心内容全解析(下)

首先定义不同的角色,如管理员、普通用户等。当用户发送请求到控制器(Servlet)时,控制器会解析请求参数,根据请求的类型调用相应的模型方法(如查询数据库获取数据等),然后将处理结果(如查询到的数据或者操作成功/失败的信息)转发给视图(JSP页面)进行显示。设置Content - Security - Policy(CSP):这是一种浏览器端的防护机制,通过在HTTP响应头或者HTML页面的标签中设置CSP规则,可以限制页面中可以加载的资源来源,如脚本、样式表、图片等的来源,从而防止恶意脚本的注入和执行。

2025-03-15 01:05:27 480

原创 Java Web开发核心内容全解析(上)

Session是Hibernate与数据库交互的主要接口,通过它可以进行数据库操作,如开启事务(Transaction)、保存对象(save())、查询对象(get()、load())、更新对象(update())和删除对象(delete())等操作。例如,定义一个Java实体类,如User类,然后通过Hibernate的映射文件或者注解的方式将类中的属性与数据库表中的字段进行映射,这样就可以直接对User对象进行增删改查操作,Hibernate会在底层自动生成相应的SQL语句。

2025-03-15 00:52:59 622

原创 《Java核心之面向对象编程(OOP)》

方法重写发生在子类和父类之间,子类可以根据自身的需求重写父类的方法,以提供自己特定的实现。例如,定义一个“学生”类继承自“人”类,“学生”类就可以拥有“人”类的姓名、年龄等属性以及相关的方法,同时还可以有自己的特定属性如学号和特定行为如学习。抽象类在设计和构建类的层次结构时非常有用,它可以强制子类实现某些特定的方法,同时也允许提供一些通用的方法实现。在Java编程领域,面向对象编程(OOP)无疑是其核心概念之一,它为开发者提供了一种全新的、高效的编程范式,极大地提升了代码的构建、组织和复用能力。

2025-03-14 23:50:08 218

原创 Java正则表达式

Matcher matcher = pattern.matcher("价格:99元,库存:5");String text = "联系我:admin@test.com 或 user@qq.com";// false(正确)"a1b2".matches("\\d+");// 错误写法:Pattern.compile("\d+");. 任意字符 "a.c" abc, a@c。+ 1次或多次 "\\d+" 1, 123。

2025-03-14 23:38:57 953

TscLoginDemo.zip

TscLoginDemo.zip

2025-03-28

空空如也

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

TA关注的人

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