seata入门笔记
分布式事务理论基础:CAP定理:分布式系统结点通过网络连接,一定会出现分区问题P,这时系统的一致性C和可用性A就无法同时满足
BASE理论:是对CAP的一种解决思路,包括基本可用BA(允许损失部分可用来保证核心可用),软状态SS(中间状态),和最终一致性(在经过软状态后最终数据一致)
解决分布式事务问题的思想:AP模式:各个子事务分别提交,允许结果不一致,通过弥补措施实现最后结果一致
CP模式:各个子事务执行后相互等待,同时提交同时回滚,实现强一致,但在等待的过程中事务会变为弱可用状态
解决分布式事务问题的模型:全局事务:指整个分布式事务
分支事务:分布式事务中包含的每个子系统的事务
初识SeataSeata中重要的三个角色/Seata架构
事务协调者TC:维护全局和分支事务的状态
事务管理器TM:定义全局事务的范围,开始全局事务,提交或回滚全局事务
资源管理器RM:管理分支事务处理的资源,于TC交谈来注册分支事务和报告分支事务的状态,并驱动分支事务或回滚
部署TC服务1.修改配置修改conf目录下的registry.conf文件:
内容如下:
123456789101112 ...
23/7/20 算法每日一题
题目1:小红的环形字符串小红拿到了一个环形字符串s。所谓环形字符串,指首尾相接的字符串。小红想顺时针截取其中一段连续子串正好等于t,一共有多少种截法?
1234567891011121314151617181920212223242526272829303132#include<bits/stdc++.h>using namespace std;const int N=1e3+10;char s[2*N],s1[N];int main(){ cin>>s>>s1; int len=strlen(s); int ans=0; //直接倍增构造一个伪环形串 for(int i=len;i<2*len;i++) s[i]=s[i-len]; for(int i=0;i<len;i++) { bool flag=true; for(int j=0;j<strlen(s1);j++) { if(s[i+j]! ...
23/7/18 算法每日一题
题目1:moon你搁这出脑筋急转弯呢T_T给出一棵以 1 为根的有根树,一开始每个节点都是白色的。David 和 Adam 在树上博弈,David 先手,每次每个人需要选择树上一个白色的点,并把这个点以及其到根路径上的所有点染成黑色。无法操作的人输。
假定两人均绝顶聪明,你需要求出谁会获胜。
123456789101112131415161718192021222324252627282930313233343536373839// #include<iostream>// using namespace std;// const int N=1e5+10;// int a[N]={0};// bool st[N]={false};// int n;// int ans=0;//操作次数// void fun(int v)// {// if(a[v]!=-1&&!st[v])// {// n--;// st[v]==true;// n+ ...
23/7/14 算法每日一题
题目:游游的数组染色游游拿到了一个数组,其中一些数被染成红色,一些数被染成蓝色。游游想知道,取两个不同颜色的数,且它们的数值相等,有多少种不同的取法?我们定义,两种取法如果取的某个数在原数组的位置不同,则定义为不同的取法。
123456789101112131415161718192021222324252627282930#include<iostream>#include<map>using namespace std;const int N = 2e5 + 10;long long a[N];char c[N];map<int, int> m[2];//R对应0,B对应1int main(){ int n; cin >> n; for (int i = 0; i < n; i++) scanf("%lld", &a[i]); cin >> c; long long ans = 0; for (int i = 0; i < n; i++) ...
23/7/8 算法每日一题
题目:方豆子阿宁最近对吃豆子感兴趣,阿宁想要用程序输出一下,但是图形化对于阿宁来说太难。因此他决定用字符,并且是方形的模样。
给一个正整数n,输出n级好豆子。
123456789101112131415161718192021222324252627282930313233343536一级好豆子:*********************...***...***... 一级坏豆子:.....................***...***...*** 二级好豆子:一级坏豆子 一级坏豆子一级坏豆子 一级好豆子 二级坏豆子:一级好豆子 一级好豆子一级好豆子 一级坏豆子... x级好豆子:x-1级坏豆子 x-1级坏豆子x-1级坏豆子 x-1级好豆子 x级坏豆子:x-1级好豆子 x-1级好豆子x-1级好豆子 x-1级坏豆子...
12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include<iostream>using namespace std;char ...
23/7/7 算法每日一题
题目:AcWing 3326.最大硬币数Mike 有一个 N 行 N 列的方格矩阵。
位于第 i 行第 j 列的方格的位置坐标表示为 (i,j)。矩阵左上角方格的坐标即为 (1,1)。每个方格中都包含一定数量的硬币,Mike 只有到达一个方格内时,方可收集方格中的硬币。Ci,j 表示第 i 行第 j 列的方格中的硬币数量。
当 Mike 处于方格 (i,j) 时,他可以选择移动至方格 (i−1,j−1) 或方格 (i+1,j+1) 中,前提是所选择的方格位于矩阵边界内,且之前没有到达过。
Mike 可以选择从任意方格开始移动,也可以选择在移动至任意方格时结束移动。Mike 希望尽可能多的收集硬币。
请帮助他确定他可以收集的最大硬币数量。
123456789101112131415161718192021222324252627282930313233343536373839404142#include<iostream>using namespace std;const int N=1010;long long c[N][N];long long n;long long g ...