mirror of
https://gitee.com/dromara/Raincat.git
synced 2024-11-29 18:38:55 +08:00
Migrated repository
1d86772916
修复补偿纪录插入可能会爆 主键重复 的问题 |
||
---|---|---|
raincat-admin | ||
raincat-common | ||
raincat-core | ||
raincat-dashboard | ||
raincat-dubbo | ||
raincat-manager | ||
raincat-motan | ||
raincat-sample | ||
raincat-spring-boot-starter | ||
raincat-springcloud | ||
script | ||
.gitignore | ||
LICENSE | ||
pom.xml | ||
README.md |
Raincat
强一致性分布式事务,是基于二阶段提交+本地事务补偿机制来实现。原理介绍
基于java语言来开发(JDK1.8),支持dubbo,motan,springcloud进行分布式事务。
因为文件名太长,大家在拉取代码的时候执git命令:git config --global core.longpaths true
Features
-
框架特性
-
无缝集成spring 或 spring boot。
-
支持dubbo,motan,springcloud,等rpc框架进行分布式事务。
-
事务发起者,参与者与协调者底层基于netty长连接通信,稳定高效。
-
协调者采用eureka做注册中心,支持集群模式。
-
采用Aspect AOP 切面思想与Spring无缝集成。
-
配置简单,集成简单,源码简洁,稳定性高,已在生产环境使用。
-
内置经典的分布式事务场景demo工程,并有swagger-ui可视化界面可以快速体验。
-
-
事务角色
-
事务发起者(可理解为消费者 如:dubbo的消费者,springcloud的调用方),发起分布式事务
-
事务参与者(可理解为提供者 如:dubbo的提供者,springcloud的rest服务提供者),参与事务发起者的事务
-
事务协调者(tx-manager),协调分布式事务的提交,回滚等。
-
-
技术方案
-
协调者(tx-manager)采用eureka作为注册中心,集群配置,达到服务的高可用,采用redis集群来分布式存储事务数据, springboot 提供rest服务,采用netty与参与者,发起者进行长连接通信。
-
发起者与协调者,采用Aspect AOP 切面思想,SPI,多线程,异步回调,线程池,netty通信等技术。
-
-
SPI扩展
- 本地事务恢复,支持redis,mogondb,zookeeper,file,mysql等关系型数据库
- 本地事务序列化保存,支持java,hessian,kryo,protostuff
- netty通信序列化方式,支持 hessian,kryo,protostuff
Design
架构设计
流程图
Configuration
配置详解
Spring-Boot-Starter-Support
Prerequisite
-
JDK 1.8+
-
Maven 3.2.x
-
Git
-
RPC framework dubbo or motan or springcloud。
Quick Start
-
Clone & Build
> git clone https://github.com/yu199195/Raincat.git > cd Raincat > mvn -DskipTests clean install -U
快速体验(dubbo)
快速体验(springcloud)
User Guide
dubbo 用户
springcloud 用户
FAQ
-
为什么我下载的代码后,用idea打开没有相应的get set 方法呢?
答:因为框架使用了Lombok包,它是在编译的时期,自动生成get set方法,并不影响运行,如果觉得提示错误难受,请自行下载lombok包插件,lombok官网
-
为什么我运行demo工程,找不到applicationContent.xml呢?
答:请设置项目的资源文件夹。
-
为什么我启动admin项目的时候,会报mongo 集群连接错误呢?
答:这是因为项目里面有mongo代码,spring boot会自动配置,该错误没有关系,只要admin项目能正常启动就行。