内容简介:本次发布增强了Saga在spring下的支持,使用kafka提供重试以及重试失败后放入丢弃队列里 Saga是用来在微服务中的长事务管理,具备ACID中的ACD,不具备I,隔离性。在一定业务条件下,可以使用Saga非常简单和方便的管...
本次发布增强了Saga在spring下的支持,使用kafka提供重试以及重试失败后放入丢弃队列里
Saga是用来在微服务中的长事务管理,具备ACID中的ACD,不具备I,隔离性。在一定业务条件下,可以使用Saga非常简单和方便的管理微服务事务。同理,也可以用于管理多库事务
Saga要求微服务提供回滚操作,然后如果需要回滚,有Saga编排调度各个微服务对应的回滚服务。BeetlSQL提供了SagaMapper,内置的操作都有对应的回滚操作,也提供@SagaSql,用户提供正向SQl,也提供回滚SQL。这样,在多库环境下,BeetlSQL能正确回滚数据而不依赖于数据库提供的事务
maven
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetlsql</artifactId>
<version>3.1.0-RELEASE</version>
</dependency>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>sql-saga-springkafa</artifactId>
<version>3.1.0-RELEASE</version>
</dependency>
@Transactional(propagation = Propagation.NEVER)
public boolean normal(){
SagaContext sagaContext = SagaContext.sagaContextFactory.current();
try{
UserInfoInDs1 ds1 = new UserInfoInDs1();
ds1.setId(100);
ds1.setName("ces");
UserInfoInDs2 ds2 = new UserInfoInDs2();
ds2.setId(100);
ds2.setName("abs");
//俩个数据库
userInfoDs1Mapper.insert(ds1);
userInfoDs2Mapper.insert(ds2);
//模拟一个错误
int a = 1/0;
}catch(Exception ex){
sagaContext.rollback();
return false;
}
return true;
}
需要配置重试队列和丢弃队列名字,以及重试次数,以及kafka序列化方式
beetlsql-saga.kafka.retry-topic=retryTopic002
beetlsql-saga.kafka.fail-topic=failTopic002
spring.kafka.bootstrapServers=127.0.0.1:9092
spring.kafka.consumer.group-id=saga
spring.kafka.consumer.auto-offset-reset=latest
spring.kafka.listener.type=single
spring.kafka.listener.ack-mode=record
spring.kafka.consumer.value-deserializer=org.beetl.sql.saga.kafka.JacksonDeserializer
spring.kafka.producer.value-serializer=org.beetl.sql.saga.kafka.JacksonSerializer
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- MongoDB 4.0 正式发布,支持多文档事务
- MongoDB 4.0 发布,将正式支持 ACID 事务
- BeetlSQL 3.0.10 发布,内置 sega 事务支持
- Seata 0.9.0 发布,支持 saga 事务模式
- Seata 1.2.0 重磅发布,支持 XA 事务模式
- PostgreSQL 11 支持 JIT、存储过程事务,并行性能提升
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Developer's Guide to Social Programming
Mark D. Hawker / Addison-Wesley Professional / 2010-8-25 / USD 39.99
In The Developer's Guide to Social Programming, Mark Hawker shows developers how to build applications that integrate with the major social networking sites. Unlike competitive books that focus on a s......一起来看看 《Developer's Guide to Social Programming》 这本书的介绍吧!