BeetlSQL 3.1.0 发布,Spring Saga 事务支持

栏目: 软件资讯 · 发布时间: 4年前

内容简介:本次发布增强了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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Developer's Guide to Social Programming

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》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具