分布式 事务 模式saga

【RocketMQ】事务实现原理总结

RocketMQ事务的使用场景 单体架构下的事务 在单体系统的开发过程中,假如某个场景下需要对数据库的多张表进行操作,为了保证数据的一致性,一般会使用事务,将所有的操作全部提交或者在出错的时候全部回滚。以创建订单为例,假设下单后需要做两个操作: 在订单表生成订单 在积分表增加本次订单增加的积分记录 ......
RocketMQ 原理 事务

在 .NET 中使用策略模式优化业务逻辑

随着业务逻辑的复杂度增加,我们经常需要处理一系列相似但具有不同细节的操作。在这种情况下,策略模式可以帮助我们优化代码结构,提高可扩展性和可维护性。本文将介绍如何在 .NET 应用程序中实现策略模式。 场景 假设我们有一个电商系统,系统需要根据不同的会员等级计算折扣。会员分为普通会员、银卡会员和金卡会 ......
逻辑 策略 模式 业务 NET

RocketMq发送消息之事务消息

概述 事务消息共有三种状态,提交状态、回滚状态、中间状态: TransactionStatus.CommitTransaction: 提交事务,它允许消费者消费此消息。 TransactionStatus.RollbackTransaction: 回滚事务,它代表该消息将被删除,不允许被消费。 Tr ......
消息 RocketMq 事务

实模式和保护模式

读源码时应该注意的事项 在第一遍阅读源码时,已弄懂整体流程为主,至于具体的实现细节先简单的理清处过一遍,不用过于纠结。 当梳理清楚全部的框架逻辑后,第二遍再深入的学习研究各个模块的实现,此时应该解决第一遍中的疑惑。 第三遍可以跳出代码的实现,来看Linux的设计思路、编程艺术和演进之路。 实模式 x ......
模式

设计模式-享元模式

享元模式 模式定义 运用共享技术有效的支持大量颗粒度的对象 模式动机 如果一个应用使用了大量的对象,而大量的对象造成了很大的存储开销时就应该考虑使用 当对象的大多数状态为外部状态,如果删除对象的外部状态,那么可以用相对较少的共享内存对象取代很多组对象,此时可以考虑使用享元模式。 UML 类图 优缺点 ......
模式 设计模式

软件设计模式系列之十四——代理模式

代理模式是一种结构型设计模式,它允许一个对象(代理)充当另一个对象的接口,以控制对该对象的访问。代理模式通常用于控制对真实对象的访问,以实现一些额外的功能,例如延迟加载、权限控制、日志记录等。这种模式属于结构型设计模式,因为它关注对象之间的组合,以形成更大的结构。 ......
模式 设计模式 软件

工厂方法模式

工厂方法模式 总体代码 //MySpider.h #pragmaMySpider.h once #include <memory> using namespace std; class MySpider { public: virtual void Crawl() = 0; }; class MyS ......
工厂 模式 方法

golang 使用redis设置分布式锁 demo

内容来自对 chatgpt 的咨询 分布式锁是在多个节点上运行的应用程序中协调工作的一种常用方法,而Redis是实现分布式锁的流行选择。以下是使用Go语言和github.com/go-redis/redis库来设置Redis分布式锁的一个简单示例: 首先,确保你已经安装了该库: go get -u ......
分布式 golang redis demo

JMeter 分布式集群远程压测及搭建常见问题

1、JMeter可以在以下场景下使用分布式远程压测: 性能测试:JMeter可以模拟大量用户并发访问,进行性能测试。当需要模拟成千上万的用户请求时,单台机器可能无法承受如此大的负载,此时可以使用分布式远程压测来将测试负载分发到多台机器上,提高测试的效率和准确性。 稳定性测试:在一段时间内持续发送请求 ......
分布式 集群 常见问题 常见 JMeter

单例模式(正式)

当需要严格控制一个类在全局只有唯一一个实例,并且可以随时调用它的时候,就可以使用单例模式。 单例模式可以以实例化时间分为懒汉式和饿汉式、以C实现方式分为C++98的实现以及C++11的实现。 懒汉式 c++11 class Singleton { public: static Singleton* ......
模式

设计模式概述

为什么需要设计模式 促进代码重用,应对需求和系统的变化 面向对象设计模式 面向对象的三大机制:封装、继承和多态 代码隔离:对新增的代码采取新增类的方式实现,对类的继承不需要修改甚至可能不需要重新编译原有的类。 在一个基本的爬虫类中,都会有一个不变的流程,也就是发送请求,匹配数据,写入文件。这三个步骤 ......
设计模式 模式

建造者模式

建造者模式 动机 将一个复杂对象的创建过程及其表示分离,同一个创建过程可以创建不同的表示 当需要创建一个包含多个部分或配置选项的复杂对象,并且需要将构建过程与表示分离时,建造者模式很有用 帮助你灵活地构建不同配置的对象,同时保持构建过程的清晰性和可维护性 经典Builder模式 以一个构建 comp ......
模式

工厂模式(正式)

抽象工厂模式及示例 模式的动机 提供一种接口,用于创建一系列相关或相互依赖的对象 抽象工厂模式通过引入抽象工厂接口,允许客户端代码通过工厂接口创建产品,而不需要关心具体的产品类; 使得客户端代码可以与特定产品的具体类解耦,实现了抽象和实现的分离 模式的实现 抽象的工厂和抽象的类,扩展的整体风格 抽象 ......
工厂 模式

代理模式

工作场景:让用户根据接口查询系统各资源占用率 优化用户性能 传统代码: 传统代码 //main.cpp #include <iostream> #include "ServerInfoGetter.h" #include <chrono> #include <thread> int main() { ......
模式

Redis搭建哨兵模式架构

使用Docker安装 因为配置太复杂,所以这里我们使用 docker compose 来一键部署 不使用内部网络搭建 编写redis主从docker-compose.yml version: '3' services: master: image: redis container_name: red ......
哨兵 架构 模式 Redis

工厂模式

工作场景:编写一个给用户发送短信的程序 传统写法 #include <stdio.h> #include <string> enum NotifMessageType { WUDI, FEITIAN }; class NotifMessage { public: int sendMessage(lo ......
工厂 模式

rabbitmq集群搭建-镜像模式

rabbitmq简介 RabbitMQ 采用 Erlang 语言开发,Erlang 语言由 Ericson 设计,Erlang 在分布式编程和故障恢复方面表现出色,电信领域被广泛使用。 Broker: 接收和分发消息的应用,RabbitMQ Server 就是Message Broker,一个Bro ......
集群 rabbitmq 镜像 模式

素数分布的基本定理(一)

切比雪夫函数$\psi(x)$和$\vartheta(x)$ / Chapter2 $\vartheta(x)$与$\pi(x)$的关系 / 素数定理的等价形式 ......
素数 定理

软件设计模式系列之十三——享元模式

享元模式(Flyweight Pattern)是一种结构型设计模式,它旨在减少内存占用或计算开销,通过共享大量细粒度对象来提高系统的性能。这种模式适用于存在大量相似对象实例,但它们的状态可以外部化(extrinsic),并且可以在多个对象之间共享的情况。 ......
模式 设计模式 软件

生产环境跑火车模式发版问题

生产环境跑火车模式回头看问题讨论会议 会议时间:2023-07-12 15:00-16:15 会议地点:小会议室 会议参加人员:刘建成、张长远、谢志飞、李彦、郭红雷 会议主题:生产环境跑火车模式下发布的问题讨论 议题:针对运维总结的问题进行讨论; 给出解决方案和解决时间。 会议结论: 序号 发版问题 ......
火车 模式 环境 问题

spring事务控制的原理解析2

上一篇: [spring事务控制的原理解析1](https://www.cnblogs.com/chengxuxiaoyuan/p/16581334.html) 上一篇中总结了在spring中事务控制的基本原理,这一篇来记录下在spring源码中是如何实现的。 一、TransactionInterc ......
原理 事务 spring

事务

事务 ## 开始事务 begin; ## 提交事务 commit; ## 回滚 rollback; 以下是一个简单的示例,包括表结构和一些示例数据。 首先创建一个用户表: CREATE TABLE user ( user_id INT PRIMARY KEY, username VARCHAR(50 ......
事务

关于一些《软件设计模式》的一些基础笔记

![](https://img2023.cnblogs.com/blog/2808014/202309/2808014-20230923135511509-1063314289.jpg) ![](https://img2023.cnblogs.com/blog/2808014/202309/2808... ......
设计模式 模式 基础 笔记 软件

事务和锁机制

事务和锁机制 事务 和MySQL一样,在Redis中也有事务机制,当我们需要保证多条命令一次性完整执行而中途不受到其他命令干扰时,就可以使用事务机制。 我们可以使用命令来直接开启事务: multi 当我们输入完所有要执行的命令时,可以使用命令来立即执行事务: exec 我们也可以中途取消事务: di ......
机制 事务

观察者模式在事件驱动中的运用

title: 观察者模式在事件驱动中的运用 categories: - Java tags: - 设计模式 abbrlink: 53cb85e5 date: 2023-03-02 15:06:28 在面对一些较为复杂的业务时,合理的使用事件驱动设计,能够帮助我们对主业务逻辑和分支业务逻辑进行解耦,更 ......
观察者 模式 事件

分布式基础理论

分布式基础理论 分布式系统简介: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(distributed system)是建立在网络之上的软件系统。 单一应用架构简介: 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简 ......
分布式 基础理论 理论 基础

设计模式之单例模式

单例模式简介 单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它是一种创建型模式,通常用于需要严格控制某个类的实例数量的情况。单例模式确保一个类在整个应用程序生命周期中只有一个实例,因此可以节省系统资源,同时提供了一个集中的访问点,以便在需要时获取该实例。 以下是单 ......
模式 设计模式

具有可加性的分布函数

一、二项分布 二、泊松分布 三、正态分布 四、卡方分布 ......
函数

什么是分布式锁,如何实现分布式锁

分布式锁其实可以理解为:有序的去操作分布式系统中的共享资源,通过互斥来保持一致性。 分布式锁的三种实现方式:1.数据库,2.redis,3.zookeeper 第2,3种参考:https://zhuanlan.zhihu.com/p/72896771?utm_source=wechat_timeli ......
分布式

享元模式

享元模式 案例引入 小型的外包项目,给客户A做一个展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同。 1.有客户要求以新闻的形式发布。 2.有客户要求以博客的形式发布。 3.有客户希望以微信公众号的形式发布。 传统方案实现案例 1.直接赋值粘贴一份,根据不同客户,进 ......
模式