分布式 事务 模式saga
读发布!设计与部署稳定的分布式系统(第2版)笔记03_让系统稳定运行
![](https://img2023.cnblogs.com/blog/3076680/202306/3076680-20230614104717576-738446683.png) # 1. 概念 ## 1.1. 事务 ### 1.1.1. 系统处理的抽象工作单元 #### 1.1.1.1. 与 ......
设计模式之工厂模式
一、工厂模式概述 工厂模式(Factory Pattern)是一种创建型设计模式,旨在提供一种统一的方式来创建对象,将对象的实例化过程封装在一个单独的类中。工厂模式通过定义一个公共的接口来创建对象,但允许子类决定实例化哪个类。这样可以将对象的实例化与客户端代码的耦合度降到最低,同时也提供了一种可扩展 ......
spring中用到哪些设计模式
1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了; 2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了; 3.代理模式,在Aop实现中用到了JDK的动态代理; 4.单例模式,这个 ......
【后端面经-数据库】MySQL的事务隔离级别简介
[TOC](【后端面经-数据库】MySQL的事务隔离级别简介) ## 0. 事务的概念 事务指的是一连串的集中操作指令,一个事务的执行必须执行完所有的动作才能算作执行结束。事务具有四个特点,简记作`ACID`: - `A`-Atomicity: 原子性,事务的执行必须保证所有的动作都执行完毕; - ......
状态模式:用类表示状态
在不使用状态模式之前,我们经常通过 ```java if(state1) { // do state1 something } else if(state2) { // do state2 something } else { // do other something } ``` 在状态设计模式中 ......
模式识别复习提纲
# 一、设计系统 ## 1、基本步骤 > 1.特征选择(关心的信息) > > 2.近邻测度(是否相似) > > 3.聚类准则(优化目标) > > 4.聚类算法(依照近邻测度,追求聚类准则) > > 5.结果验证(逼近正确结果) > > 6.结果判定(专家判定) # 二、聚类 ***要求理解掌握各种模 ......
聊聊什么是分布式事务
### 概述 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,以上是百度百科的解释。 简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失 ......
Java8-Predicate 策略模式的替代品消灭 if else
使用策略模式消灭if else,可以利用Java8的新特性来实现策略模式。 利用Java8的Predicate消灭 if else。首先定义一个map,key是不同的服务代码,value是需要做校验的条件,然后针对不同的服务代码做校验。当然Supplier、Consumer都可以做类似的实现。 `` ......
抽象工厂模式-04
### 概述 抽象工厂 (abstract factory) 模式又称 Kit 模式,由一个抽象工厂类、多个抽象产品类以及这些抽象类的多个具体子类构成。每个具体工厂类可以创建每个抽象产品类的某个具体子类。 **优点**:高内聚低耦合,符合“开闭原则”。 **缺点**:难以添加新的产品类,这涉及到更改 ......
建造者模式-05
### 概述 建造者模式 (Builder Pattern) 又称生成器模式(视翻译而定)。该模式由一个抽象建造者类、多个具体建造者类、被创建的复杂类、指挥者(director)类构成。抽象建造者类定义被创建类的创建步骤;具体创建者类根据不同目的实现创建步骤;被创建类定义自身的复杂属性成员;指挥者类 ......
策略模式:整体替换算法
策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在策略模式中,我们定义了多个算法,并将每个算法封装在一个独立的类中(__策略类__),以便在运行时根据需要进行切换。这使得算法与调用其算法的客户端代码分离,从而实现了更高的灵活性和可维护性。 主要实现方式:1 策略接口 -> n * 具体策略 ......
python对接事务性MSMQ队列
研究了很久,逐步了解到原理后,发现python发送消息到事务性msmq肯定可行。 现在能搜到的资源没有任何一篇文章说明了这个,包括gpt都一样。废话不多说,直接上代码 import win32com.client # 关键代码 必须使用 gencache 导入 "MSMQ.MSMQQueueInfo ......
谈论关于Redis产生的分布式ID获取为空问题
一:事故 在项目测试中,遇到一个事件创建失败问题,追踪日志发现分布式ID的获取值为空,导致后续表写入异常。 经排查锁定相关方法,具体方法经简化如下: @Transactional public String testRedisTrans(){ redisTemplate.setEnableTrans ......
事务的隔离级别及实现
事物的隔离级别 1.Read Uncommitted 读未提交,存在脏读,不可重复读看,幻读等问题 2.Read Committed 读已提交,存在不可重复读看,幻读等问题 3.Repeatable Read 可重复读,存在幻读 4.Serializable 串行,脏读,不可重复读看,幻读均可避免 ......
单例模式学习
1、例子 如果单例对象是类的static成员,那么在程序结束时不会调用类的析构函数,如下: #include <iostream> using namespace std; class A{ private: static A* m_ins;//声明,静态指针成员 A(){} public: sta ......
minio分布式文件存储系统
1什么是minio? MinlO是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinlO是一个非 ......
分布式事务实现
1)基于XA协议的两阶段提交(2PC) XA 规范主要 定义了 ( 全局 ) 事务管理器 ( Transaction Manager ) 和 ( 局部 ) 资源管理器 (Resource Manager ) 之间的接口。 2)两阶段提交 事务的提交分为两个阶段:预提交阶段(Pre-Commit Ph ......
Spring如何实现事务
参考:spring事务管理(详解和实例):https://www.cnblogs.com/yixianyixian/p/8372832.html Spring 事物四种实现方式:基于编程式事务管理实现基于TransactionProxyFactoryBean的声明式事务管理基于AspectJ的XML ......
minikube配置网络为calico BGP模式
[TOC] ## 序言 > 原本没有想写这么一篇文章,因为每次下班回家晚上都会学习会,家里机器条件没那么好,搞三台到四台虚拟机出来做K8S测试还是比较困难的,所以这里就用了minikube来进行搭建。 > 想利用minikube搭建kubernetes 1.27.2,但是受网络影响,只能安装到kub ......
对接三方支付平台 + 分布式锁
# 一、对接三方支付平台 > 第三方支付平台是指平台提供商在商家和银行之间建立连接,供以支付等交易活动 ### 1.1 支付宝支付、微信支付……(以支付宝为例) 1、通过支付宝的开放平台对接 : https://open.alipay.com/ 2、进入平台API的当面付 : https://ope ......
三种架构模式简介(MVC、MVP、MVVM)
一 简介 手机终端随着每年的更新换代,其性能也飞速增长。依附于此的 Android 应用规模也愈发复杂。截止 2023 年 4 月,最新版本 8.0.32 微信 apk 大小为 238MB,而对比 2011 年微信 1.0 版本 apk 包大小仅为 457KB,短短 12 年增长了 533 倍。 随 ......
开发模式:原型模式、曳光弹模式
## 起因 软件开发过程中,很关键的一步就是要确定需求,然而需求并不是一成不变的。由于用户需求不明确,产品设计不合理,技术上无法实现等等原因导致需求的改动是很常见的,那么如何在开发过程中帮助确立真正的需求并减少需求改动导致的返工就是今天要讨论的主题。 ## 开发模式介绍 ### 原型模式 原型模式是 ......
1、Android中MVC、MVP和MVVM架构模式的区别
架构模式为项目文件提供了模块化,并确保所有的代码在单元测试中得到覆盖。它使开发人员很容易维护软件,并在未来扩展应用程序的功能。MVC(模型-视图-控制器)、MVP(模型-视图-展示者)和MVVM(模型-视图-视图模型)是开发人员中最流行和行业公认的安卓架构模式。 模型-视图-控制器(MVC)模式 M ......
STM32cubeIDE CAN回环模式
配置如下 经过分频,选择位段1和位段2之后波特率回自己计算 CAN总线的频率实在PCLK上 CAN是有接收和发送中断的但是需要在STM32CUBEIDE中自己加入滤波器。 void CAN_Config(void) { CAN_FilterTypeDef sFilterConfig; /*配置CAN ......