自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 202537 |《代码整洁之道》笔记

异常类应根据调用者的需求来定义,不应过度设计或者定义无关的异常类。每个异常类应聚焦于其特定场景。

2025-05-17 17:24:32 730

原创 202536 | KafKa生产者分区写入策略+消费者分区分配策略

实现自定义分区器@Override// 配置初始化@Override// 使用订单金额决定分区return 0;// 发送到分区 0return 1;// 发送到分区 1} else {return 2;// 发送到分区 2@Override// 清理资源配置生产者使用自定义分区器Kafka 提供了多种分区写入策略来帮助生产者选择将消息写入哪个分区。不同的策略适用于不同的场景,选择适合的分区策略可以提高 Kafka 集群的性能、负载均衡及消息顺序性。轮询分区策略。

2025-05-10 14:35:12 609

原创 202535| Kafka架构与重要概念+幂等性+事务

Kafka 的事务是一个强大的特性,它允许用户将多个消息的发送操作封装在一个原子操作中。通过事务,生产者可以确保多条消息的发送要么全部成功,要么全部失败。Kafka 的事务能够保证数据一致性,特别是在分布式环境下,避免了部分消息写入而其他消息丢失的问题。Kafka 事务不仅仅用于生产者,也为消费者提供了精确一次消费(Exactly Once Semantics, EOS)的能力。事务在 Kafka 中的应用解决了消息重复消费和漏消费的难题,提升了消息流的可靠性。

2025-05-10 14:34:57 964

原创 202534 | KafKa简介+应用场景+集群搭建+快速入门

Apache Kafka 是一个,用于构建实时数据管道和流应用程序。它最初由 LinkedIn 开发,并于 2011 年开源,目前由 Apache 软件基金会进行维护。Kafka 不仅是一个消息队列,更是一个用于。

2025-05-10 14:34:37 720

原创 202532 | RocketMQ 消息存储机制 + 高可用机制 + 负载均衡机制 + 消息重试机制 + 死信队列 + 消息消费幂等性 + 消息标识 + 消息堆积问题 + 消息丢失

同一消息被多次消费时,系统能保证处理结果与单次消费一致。

2025-05-05 18:46:36 680

原创 202533 | SpringBoot集成RocketMQ

通过以上代码示例,可以快速实现RocketMQ的各种消息模式集成。根据业务场景选择合适的方式,平衡可靠性与性能需求。解决方法:检查对象是否实现了Serializable。:适用于重要通知、支付结果等需要确认的场景。这样就完成了对象和集合消息的发送与接收!:适合日志收集等允许少量丢失的场景。:吞吐量最高,但不保证可靠性。

2025-05-05 18:46:07 1411

原创 202531 | RocketMQ 消息过滤 + 消息重试机制 + 死信消息 + 重复消费问题

概念是否必填作用举例Topic✅ 是消息的一级分类(业务主题)OrderTopicTag✅ 是Topic 下的逻辑子类(操作类型)Key❌ 可选消息的唯一标识(方便追踪)RocketMQ 提供了可靠的消息重试机制,用于保障消息在发送与消费过程中的稳定性和可靠性。生产者重试机制(Producer Retry)消费者重试机制(Consumer Retry)对比项生产者重试消费者重试重试触发条件消息发送失败消费逻辑失败默认重试次数2 次(共尝试 3 次)

2025-05-05 18:45:36 733

原创 202530 | RocketMQ发送同步消息 + 异步消息 + 单向消息 + 延迟消息 + 顺序消息 + 批量消息 +事务消息

/ 通过消息重试机制模拟30分钟延迟if(需要延迟处理){// 对应30分钟});适用场景:订单超时关闭、预约提醒、异步任务延迟触发等时效性要求不严格的场景。

2025-04-13 10:39:38 311

原创 202529 | RocketMQ 简介 + 安装 + 集群搭建 + 消费模式 + 消费者组

特性Push模式Pull模式实现原理服务端长轮询客户端主动请求实时性高(毫秒级)依赖拉取频率资源消耗服务端连接开销大客户端控制开销大消费控制自动提交offset需手动管理offset适用场景常规实时业务特殊调度需求/批量处理消费者组是RocketMQ中逻辑上的订阅单元,由多个消费者实例组成,共同消费同一Topic下的消息。// 消费者组声明示例。

2025-04-13 10:37:13 839

原创 202527 | RabbitMQ-基础 | 队列 | Direct + Fanout + Topic 交换机 | 消息转换器

Bean。

2025-04-12 10:12:02 979

原创 202528 | RabbitMQ-高级 | 消息可靠性 | 业务幂等性 | 延迟消息

fill:#333;color:#333;color:#333;fill:none;1. 网络中断2. 自动重连3. 恢复发送4. 超过阈值生产者检测连接重试策略Broker降级处理fill:#333;建立连接连接断开等待5秒(RecoveryInterval)第一次重连连接恢复等待10秒(interval*multiplier)第二次重连alt[失败]fill:#333;color:#333;color:#333;fill:none;1. 发送消息2. 返回ACK。

2025-04-12 10:11:19 1278

原创 202526 | 消息队列MQ

fill:#333;color:#333;color:#333;fill:none;MQ核心能力解耦异步削峰生产者消费者互不感知非阻塞调用缓冲突发流量fill:#333;请求同步调用响应返回结果请求发消息立即返回消费消息异步处理fill:#333;color:#333;color:#333;fill:none;是否是否是否需要消息顺序?需要事务?需要高吞吐?color:#333;color:#333;fill:none;

2025-04-12 10:10:28 785

原创 202525 | 服务雪崩 | 服务保护 | Sentinel

服务雪崩是指由于某个微服务节点故障或高延迟,导致调用链路上的多个服务级联崩溃,最终整个系统不可用的现象。fill:#333;color:#333;color:#333;fill:none;用户请求服务A服务B服务C数据库/外部APIfill:#333;color:#333;color:#333;fill:none;调用超时全部阻塞服务A: 100线程服务B: 50线程服务C: 已宕机fill:#333;color:#333;color:#333;fill:none;突发流量服务A服务B。

2025-04-12 10:09:20 902

原创 202524 | 分布式事务

分布式事务是指的事务操作,要求所有参与方要么全部成功提交,要么全部回滚,保证数据一致性。在单体应用中,事务可以通过数据库的(原子性、一致性、隔离性、持久性)保证。fill:#333;color:#333;color:#333;fill:none;用户下单订单服务支付服务库存服务。

2025-04-12 10:08:32 677

原创 202523 | 配置管理

在微服务架构中,配置管理是一个关键环节,用于集中管理不同环境(开发、测试、生产等)中各个服务的配置参数,确保服务的灵活性和可维护性。dev通过调用端点(需配合Spring Cloud Config或Nacos)可实时更新配置。通过合理的配置管理,微服务可以更灵活地适应不同环境,提升运维效率并降低风险。根据团队规模和技术栈选择合适的工具(如小型团队可用Nacos,大型企业可选Apollo)。

2025-04-05 07:22:39 801

原创 202522 | 网关

Spring Cloud Gateway 自定义过滤器详解1. 过滤器类型对比类型作用范围执行阶段实现方式全局(所有路由)可指定PRE/POST阶段实现接口特定路由生效仅作用于配置的路由通过实现2. 自定义GlobalFilter核心代码模板@Component@Override// 1. 获取请求信息// 2. 验证逻辑if (!// 中断请求// 3. 添加自定义请求头.mutate()// 4. 继续过滤器链@Override。

2025-04-05 07:20:32 967

原创 202521 | 远程调用 | 注册中心

OpenFeign是Spring Cloud提供的。

2025-04-05 07:19:26 720

原创 202520 | 微服务

是一套基于。

2025-04-05 07:18:32 1140

原创 202519 | Mybatis-Plus

MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,它在 MyBatis 的基础上只做增强不做改变,简化了开发,提高了效率。以下是 MyBatis-Plus 的快速入门指南,帮助您快速上手使用。在 IDE 中创建一个 Maven 项目,并在 中添加 MyBatis-Plus 和相关依赖。3. 配置数据库连接在 或 中配置数据库连接信息。4. 创建实体类使用 MyBatis-Plus 时,实体类需要与数据库表对应。可以使用 注解指定表名, 注解指定主键。5. 创建 M

2025-03-29 09:53:25 629

原创 202518 | Ngnix

Nginx是一个事件驱动异步架构HTTP服务器:直接处理客户端请求并返回静态或动态内容。反向代理:将客户端请求转发到后端服务器,并将响应返回给客户端。负载均衡:在多个后端服务器之间分发请求,以提高系统的性能和可用性。邮件代理:支持IMAP、POP3和SMTP协议,用于邮件代理服务。

2025-03-29 09:46:56 916

原创 202516 | Docker

Docker 通过容器化技术,解决了应用程序在开发、测试和部署过程中环境不一致的问题,极大地提高了开发和运维的效率。它的轻量级、可移植性和高效性使其成为现代软件开发和部署的重要工具。以上是 Docker 中常用的命令,涵盖了镜像、容器、网络、卷等核心功能。熟练掌握这些命令可以帮助你高效地管理和使用 Docker。如果你需要更详细的帮助,可以使用或docker <命令> --help查看具体命令的用法。

2025-03-23 10:21:30 806 4

原创 202517 | Kubernetes

Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。它由 Google 设计并开源,现已成为云原生生态系统的核心组件之一。YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,广泛用于配置文件和数据交换。YAML 的设计目标是易于阅读和编写,同时能够被机器轻松解析。YAML 是一种简洁而强大的数据序列化格式,适用于配置文件、数据交换等多种场景。

2025-03-15 11:43:15 1023

原创 202515 | 设计模式13 | 访问者模式 | 备忘录模式 | 访问者模式

捕获对象的当前状态,并在未来需要时恢复到这个状态**,同时确保对象的封装性不被破坏。定义一种语言的语法表示,并提供一个解释器来解析和执行该语言的语法**。,允许在不修改数据结构的前提下,增加新操作。负责定义一系列的操作,而数据结构(元素对象)(如 IDE、Office 文档) ✅。:数学计算、规则解析、DSL 设计等。:文本编辑、游戏存档、事务回滚等。(如编译器、XML 解析) ✅。:编译器、文件系统、数据分析等。将数据结构与操作解耦**,使得。(如文件系统遍历) ✅。

2025-03-15 10:17:03 912

原创 202514 | 设计模式12 | 观察者模式 | 迭代者模式

定义了一种一对多的依赖关系**,当一个对象(被观察者)发生变化时,它的所有依赖者(观察者)都会收到通知,并自动更新。,从而避免对象之间形成复杂的网状结构,提高系统的可维护性和扩展性。通过一个中介对象封装一组对象之间的交互**,使对象之间的通信。在该模式下,迭代器(Iterator)对象负责遍历集合,而。(用户之间不直接聊天,而是通过服务器转发消息):遍历复杂集合(如链表、树、数据库结果集等)。(多个飞机不直接通信,而是通过控制塔协调)(如按钮、文本框、列表框之间的交互)聚合对象(集合)中的元素**,而。

2025-03-15 10:16:47 787

原创 202513 | 设计模式11 | 命令模式 | 责任链模式 | 状态模式

每个处理者依次处理请求,直到有处理者能够处理该请求为止。,如日志处理系统中不同级别的日志分别传递到不同的处理者。如果需要持久化状态(如数据库存储订单状态),可以用。,然后在后台异步执行它们,如任务调度器。动态调整处理者的顺序,支持更灵活的策略。实现“撤销栈”,让撤销操作更灵活。,它允许多个处理者(Handler),每个状态类只负责自己的行为,符合。请求(操作)封装为对象**,使得。,可以动态添加新命令,而不修改。,确保操作的“回滚”顺序正确。,否则传递给下一个处理者。,让多个处理者形成链条。

2025-03-08 10:01:41 1051

原创 202511 | 设计模式09 | 组合模式 | 享元模式

组合模式(Composite Pattern)主要目的以树形结构表示“整体-部分”关系,统一单个对象和组合对象的操作。核心思想让单个对象和组合对象使用相同的接口,以便统一管理和处理。适用场景需要表示层级结构,如文件系统、组织结构、GUI 组件等。优点1. 统一对待单个对象和组合对象。2. 客户端无需关心具体类型,符合开闭原则。3. 容易扩展,支持新增子节点。缺点1. 可能让系统设计变得更复杂。2. 需要注意递归操作可能导致性能问题。

2025-03-02 09:27:15 749

原创 202512 | 设计模式10 | 模版方法模式 | 策略模式

动态选择不同的策略,而不影响使用它的代码。算法或行为**,并将它们封装成。算法的骨架**,并允许子类。“封装算法,动态切换”

2025-03-02 09:25:10 563

原创 202510 | 设计模式08 | 桥接模式 | 外观模式

又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。外观(Facade)模式是“迪米特法则”的典型应用.

2025-03-02 09:23:35 546

原创 202509 | 设计模式07 | 装饰者模式

快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时。在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。当对象的功能要求可以动态地添加,也可以再动态地撤销时。

2025-03-01 20:57:52 723

原创 202508 | 设计模式06 | 适配器模式

将一个类的接口换成另一个接口,使得原本由于接口不兼容而不能在一起工作的类可以在一起工作。

2025-03-01 18:55:10 363

原创 202507|设计模式05|建造者模式

创建者模式的主要目的是将复杂对象的构建与表示分离,使得相同的构建可以创建不同的表示。

2025-02-16 11:38:45 536

原创 202505|设计模式04|代理模式

给某个对象提供一个代理对象来控制对该对象的访问。访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象的存在。

2025-01-29 21:09:13 944

原创 202505 | 小工具02 | Typora for Mac安装 + PicGo + Gitee 配置图床(免费)

提取码:1234直接下载安装即可免费使用。

2025-01-18 20:04:10 395

原创 202504 | 设计模式03 | 原型模式

用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。

2025-01-18 09:52:05 334

原创 202503|小工具01|Sublime Text Mac版安装教程+快捷键+安利设置

Sublime Text是一套跨平台的文本编辑器,支持基于Python的插件。Sublime Text是专有软件,可透过包(Package)扩展。大多数的包使用自由软件授权发布,并由社群建置维护。

2025-01-12 18:12:22 2467

原创 202502|设计模式02|工厂模式

设计一个茶类(Tea),并定义两个子类:红茶(RedTea)和绿茶(GreenTea),还有茶店类,茶店类(TeaStore)具有下单茶品的功能。

2025-01-10 23:36:31 958

原创 202501|设计模式01|单例模式

单例模式的实现

2025-01-04 21:24:13 412

第10章 聚类方法.pptx

第10章 聚类方法.pptx

2021-11-24

空空如也

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

TA关注的人

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