gitlab安装部署 发表于 2021-11-13 分类于 devops , gitlab 创建清华源vim /etc/yum.repos.d/gitlab-ce.repo 12345[gitlab-ce]name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1 安装yum makecache && yum install -y gitlab-ce 阅读全文 »
分布式事务-Seata 发表于 2021-10-31 更新于 2022-11-30 分类于 分布式 , 分布式事务 , Seata seataSeata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 server端点击下载mysql-sql全局事务会话信息由3块内容构成,全局事务–>分支事务–>全局锁,对应表global_table、branch_table、lock_table 阅读全文 »
分布式事务-LCN 发表于 2021-10-31 更新于 2022-11-30 分类于 分布式 , 分布式事务 , LCN LCNLock(锁定事务单元)、Confirm(确认事务)、Notify(通知事务) TX-LCN定位于一款事务协调性框架,框架其本身并不操作事务,而是基于对事务的协调从而达到事务一致性的效果。 TM:事务管理器 TC:事务客户端,相当于RM(资源管理器) 阅读全文 »
分布式事务-多种理论模式 发表于 2021-10-31 更新于 2022-11-30 分类于 分布式 , 分布式事务 , 多种理论模式 2PC第一阶段(提交事务) 事务询问 TM向所有的RM询问是否可以执行提交操作,并开始等待RM的响应。 预执行事务 RM预提交当前所有事务操作,并将相关信息写入Undo和Redo日志 事务反馈 RM提交事务后响应TM的询问。如果所有RM都提交成功,则返回一个“同意”消息;如果任一RM提交失败,则返回TM“终止”消息。 阅读全文 »
rocketmq 常见面试题 发表于 2021-07-31 分类于 中间件 , mq , rocketmq 为什么要使用MQ?因为项目比较大,做了分布式系统,所有远程服务调用请求都是同步执行经常出问题,所以引入了mq 解耦:系统耦合度降低,没有强依赖关系 异步:不需要同步执行的远程调用可以有效提高响应时间 削峰:请求达到峰值后,后端service还可以保持固定消费速率消费,不会被压垮 阅读全文 »
rocketmq 安装 发表于 2021-07-31 更新于 2022-12-29 分类于 中间件 , mq , rocketmq 一、rocketmq1.1、文档官网Quick Start github中文文档 1.2、下载apache官网下载地址yi github源码下载地址 阅读全文 »
zookeeper 实现配置中心、分布式锁 发表于 2021-07-31 分类于 中间件 , zookeeper Maven依赖12345<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.7.0</version></dependency> 客户端连接工具类12345678910111213141516171819202122232425public class ZkUtil { private static volatile ZooKeeper zk; /** * zk服务端地址,/可以添加上级节点目录,之后客户端的所有操作都基于此目录 */ private static String connectAddr = "192.168.142.121:2181,192.168.142.122:2181,192.168.142.123:2181,192.168.142.124:2181/myLock"; private static CountDownLatch countDownLatch = new CountDownLatch(1); private static DefaultWatch watch = new DefaultWatch(); public static ZooKeeper getZk(){ if(zk == null){ synchronized (ZooKeeper.class){ if(zk == null){ try { zk = new ZooKeeper(connectAddr, 3000, watch); watch.setCountDownLatch(countDownLatch); countDownLatch.await(); } catch (Exception e) { e.printStackTrace(); } } } } return zk; }} 阅读全文 »
rocketmq 客户端相关概念及使用 发表于 2021-07-31 更新于 2022-12-29 分类于 中间件 , mq , rocketmq 一、消息中间件的作用 应用解耦 AB应用不在互相依赖 流量削峰 流量达到高峰的时候,通常使用限流算法来控制流量涌入系统,避免系统被击瘫,但是这种方式损失了一部分请求 此时可以使用消息中间件来缓冲大量的请求,匀速消费,当消息队列中堆积消息过多时,我们可以动态上线增加消费端,来保证不丢失重要请求。 大数据处理 消息中间件可以把各个模块中产生的管理员操作日志、用户行为、系统状态等数据文件作为消息收集到主题中 数据使用方可以订阅自己感兴趣的数据内容互不影响,进行消费 异构系统 跨语言 二、消息收发模型 阅读全文 »