分布式 事务 模式saga

分布式锁的实现

多线程对同一资源的竞争,需要用到锁,例如Java自带的Synchronized、ReentrantLock。但只能用于单机系统中,如果涉及到分布式环境(多机器)的资源竞争,则需要分布式锁。分布式锁的主要作用: 保证数据的正确性: 比如:秒杀的时候防止商品超卖,表单重复提交,接口幂等性。 避免重复处理 ......
分布式

django 使用django-bootstrap4插件时,使表单呈2列或其他列分布时的写法

前言 django 使用django-bootstrap4插件时,使表单呈2列或其他列分布时的写法。 在django-bootstrap4中没有内置的方法设置表单内容成几列分布,这里采用bootstrap4的栅格布局实现效果 具体操作 forms.py class RegisterForm(User ......

枚举和模式匹配

枚举允许你通过列举可能的成员来定义一个类型 定义枚举 任何一个 IP 地址要么是 IPv4 的要么是 IPv6 的,而且不能两者都是,IP 地址的这个特性使得枚举数据结构非常适合这个场景,因为枚举值只可能是其中一个成员,IPv4 和 IPv6 从根本上讲仍是 IP 地址,所以当代码在处理适用于任何类 ......
模式

配置docker容器veth-pair---实现桥接模式

前言:已知docker网络三种基础模式 bridge 、 host 、 none, · bridge :桥接模式,创建容器时默认的网络模式;docker安装时,在宿主机内创建一个虚拟网桥docker0,并自动给docker0分配一个和宿主机不同网段的IP,本质是依靠docker0转换借助宿主机的IP ......
容器 veth-pair 模式 docker veth

分布式理论

一、分布式理论 1.CAP理论 CAP理论是说对于分布式数据存储,最多只能同时满足一致性(C,Consistency)、可用性(A, Availability)、分区容忍性(P,Partition Tolerance)中的两者。 1.一致性 是指对于每一次读操作,都能够读到最新写入的数据,且每个节点 ......
分布式 理论

设计模式-index

设计模式是个老生常谈的话题, 不同的人对此有不同的看法 新手可能会觉得设计模式难以理解, 并且也只与编程语言有关, 或者只与前端后端有关, 适用范围很窄 或者就干脆觉得这玩意儿没啥卵用, 写了那么一大坨只是让代码变得复杂难懂, 不如直接复制黏贴删删改改来得方便 老手可能会觉得设计模式就是yyds, ......
设计模式 模式 index

设计模式-六大原则

六大原则是设计模式的基石, 是后面所提具体的二十三种设计模式的指导思想 总则: 开放封闭原则 对扩展开放, 对修改封闭 当我们需要添加新的功能时, 可以通过添加新的代码或者模块来实现, 而不需要修改已有的功能模块, 这样可以避免新增的功能影响到原来已经在正常运行的功能 最简单的例子就是函数重载 pu ......
设计模式 原则 模式

C++ 迪利克雷(Dirichlet)分布

遇到一个要使用 dirichlet 分布的情形,发现 C++ 标准库中没有现成的。查阅维基百科发现,虽然它挺复杂,但是它跟 Gamma 分布有如下关系: 设有 K 个相互独立且分别满足 Gamma 分布的分布: $$Y_1 \sim Gamma(\alpha_1, \theta), ..., Y_K ......
Dirichlet

分布式协议与算法实战 - 分布式算法 gossip QuorumNWR PBFT ZAB

Gossip 二阶段提交协议和Raft需要大部分节点能够工作,在极端情况,如只有一个节点能正常运行,这些方法就不适用了。根据Base理论要实现最终一致性。 Gossip协议利用一种随机、带有传染性的方式,将信息传播到网络中,并在一定时间内使所有节点数据一致。 直接邮寄(Direct Mail):直接 ......
分布式 算法 实战 QuorumNWR gossip

设计模式-javascript实现【代理模式】

定义: 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 1. 代理模式的实现 const Flower = function(){}; const xiaoming = { sendFlower: function(target){ const flower = new Flowe ......
模式 设计模式 javascript

ftp的主动被动模式区别

vsftpd模式设置 vsftpd.conf 被动模式 pasv_enable=YES 主动模式 pasv_enable=NO 主动模式 典型特征是服务端开放20端口,ftp主动连接客户端(在ip不一个网段的场景就gg了,如:k8s中pod->vsftpd,路由器下机器到互联网的ftp) 被动模式 ......
模式 ftp

设计模式-javascript实现【设计原则】

1. 单一职责原则(SRP原则) 单一职责原则的职责被定义为“引起变化的原因”。如果我们有两个动机去改写一个方法,那么这个方法就具有 两个职责。每个职责都是变化的一个轴线,如果一个方法承担了过多的职责,那么在需求变迁过程中,需要改 写这个方法的可能性就越大。 因此,SRP原则体现为:一个对象(方法) ......
设计模式 javascript 原则 模式

docker-selenium分布式环境搭建(基于selenium的grid分布式框架)

说明:docker-selenium分布式是基于selenium的grid分布式框架进行搭建 以下是docker-selenium分布式网络拓扑图: 从图中可以看出: 1)docker-selenium可以用作浏览器兼容性测试; 2)docker-selenium分布式,可以提高测试用例的执行效率, ......

Redis实现分布式锁

Redis实现分布式锁 前言 分布式锁的实现有三种方式 数据库乐观锁 基于Redis的分布式锁 基于Zookeeper的分布式锁 分布式锁满足的条件 为了确保分布式锁可用,我们至少要保证锁的实现同时满足以下几个条件 互斥性:在任意时刻只有一个客户端能持有锁 不会死锁:即使有一个客户端在持有锁的期间发 ......
分布式 Redis

Redis哨兵模式实施方案

部署 Redis 主从节点 在部署 Redis 主从节点时,可以选择单机部署、容器部署或者集群部署等方式。需要注意的是,主节点和从节点的配置要保持一致,并且在主节点中设置密码,以增加安全性。 单机部署可以通过下载 Redis 的二进制文件并解压来完成,具体步骤如下: (1)下载 Redis 二进制文 ......
哨兵 实施方案 模式 方案 Redis

前端设计模式——状态模式

状态模式(State Pattern):将对象的行为和状态分离,使得对象可以根据不同的状态来改变自己的行为。在前端开发中,可以使用状态模式来管理页面的状态和响应用户的交互。 在状态模式中,对象的行为取决于其内部状态,当状态发生变化时,对象的行为也会相应地发生改变。这种模式通过将状态抽象为独立的类来实 ......
模式 设计模式 前端 状态

Solon2 接口开发: 实战 Gateway 模式效果

1、效果预览 网关 @Mapping("/api/v3/app/**") @Component public class ApiGateway3x extends UapiGateway { @Override protected void register() { filter(new Break ......
实战 接口 效果 Gateway 模式

策略模式1

package com.cmit.budget.strategy; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import java.util.Map; ......
策略 模式

分布式ID生成-雪花算法(Snowflake)

1 描述 使用原生Java方式生成雪花算法, 雪花算法是推特公司开源的生成唯一ID的算法, 性能更高,可以避免对第三方依赖的使用, 减少耦合 1)能满足高并发分布式系统环境下ID不重复 2)基于时间戳,可以保证基本有序递增,即按照时间趋势递增(有些业务场景对这个有要求) 3)算法本身不依赖第三方的库 ......
分布式 算法 雪花 Snowflake

PC 护眼模式(凑合用)

产品经理说PC客户端要做护眼模式,理由是竞品做了! win10 自带夜间模式,win7通过调整饱和度,色调也可以达到同样的效果,但是多方查找并没有找到系统提供的api。参考其它可以实现此功能的软件,比如“联想护眼管理 v2.6.50.4081.exe”,或者 LightBulb等。有的是自己做了一层 ......
模式 PC

go 常用设计模式-创建型模式

本次分享的创建型模式主要包括: 单例模式 简单工厂模式 工厂模式 抽象共工厂模式 1.单例模式 package singleton import "sync" /* 创建型模式 */ var ( instance Singleton once sync.Once ) type Singleton s ......
模式 设计模式 常用 go

go 常用设计模式-行为型模式

本次分享的行为型模式,主要包含: 责任链模式 策略模式 观察者模式 模板模式 访问者模式 1.责任链模式 package chainOfResponsibility import "fmt" /* 行为模式: 通过账目报销的例子说明,不同的级别领导,其权限不同,如100元级别,100元级别等 */ ......
模式 设计模式 常用 行为 go

go 常用设计模式-结构型模式

本次分享结构型模式,主要包括: 代理模式 装饰器模式 适配器模式 享元模式 1.代理模式 package proxy import "fmt" /* 结构型模式 代理,代表打理,以他人的名义代表委托人打理其本职工作之外或不所能及的事务,达成合作关系并更高效地促成事务完成的目的。 强调的是对被代理对象 ......
结构型 模式 设计模式 常用 结构

(二十二)命令模式

1. 概述 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 2. 示例 Command 类,用来声明执行操作的接口。 Command.java public abstract class Command ......
命令 模式

浅谈分布式环境下WebSocket消息共享问题

浅谈分布式环境下WebSocket消息共享问题 技术分析 我们在开发时会遇到需要使用即时通讯的场景,当然,实现方式很多,Socket、MQTT、Netty....等等。 具体用哪种就在于业务的需求了,去选择合理的方式实现。 今天小简要聊的场景便是分布式环境下,WebSocket的消息共享问题。 分布 ......
分布式 WebSocket 消息 环境 问题

mysql 事务

https://blog.csdn.net/m0_46836425/article/details/121851867 https://blog.csdn.net/qq_33459343/article/details/124634721 ......
事务 mysql

mysql事务是什么锁

mysql,有索引并且使用了该索引当条件的时候就是行锁,没有索引的时候就是表锁。innodb 的行锁是在有索引的情况下,没有索引的表是锁定全表的. ......
事务 mysql

Solon2 接口开发: 强化 Gateway 模式

一般可以从这几方面对 Gateway 模式进行强化: 定制异常状态码 定制基类 将一些处理独立封装成类 接口只返回数据部份,异常状态用抛 强化之后,具体的网关即简单,又功能强大。同时会对团队开发形成一定的风格和约束。 API_0(异常状态用抛) @Component(tag = "api") pub ......
接口 Gateway 模式 Solon2 Solon

用状态模式改善代码的可维护性

设计模式之状态模式 状态模型是一种软件设计模式,它通过将对象的行为随状态变化而变化来实现状态机的行为。状态机可以将一个对象的生命周期分解为若干个状态,并规定在不同状态下,对象可以进行哪些行为,以及如何从一个状态转移到另一个状态。 状态模型中的状态被封装在不同的状态类中,这些状态类实现了一个共同的接口 ......
可维护性 状态 模式 代码