首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >春云流产生器交易性

春云流产生器交易性
EN

Stack Overflow用户
提问于 2016-06-10 21:19:06
回答 1查看 2.1K关注 0票数 3

我对kafka活页夹做了一些测试,看起来春云流生产者不参与春季管理的交易。

给定的代码,如

代码语言:javascript
运行
复制
@RequestMapping(method = RequestMethod.POST)
    @Transactional
    public Customer insertCustomer(@RequestBody Customer customer) {
        customerDao.insertCustomer(customer);
        source.output().send(MessageBuilder.withPayload(CustomerEventHelper.createSaveEvent(customer)).build());
        if (true) {
            throw new RuntimeException("rollback test");
        }
        return customer;
    }

customerDao.insertCustomer呼叫被回滚,但卡夫卡消息仍被发送。如果在客户事件上有一个使用者将客户插入数据仓库,数据仓库和记录系统将在传输回滚时不同步。这里有办法让卡夫卡的活页夹交易吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-10 21:43:40

卡夫卡的活页夹不是交易,卡夫卡一般不支持交易。

我们确实打算解决SpringCloudStream1.1:https://github.com/spring-cloud/spring-cloud-stream/issues/536的事务管理问题。

但是,通过注册这样的事务同步,您现在甚至只能在成功提交之后发送消息:

代码语言:javascript
运行
复制
TransactionSynchronizationManager.registerSynchronization(
   new TransactionSynchronization(){
       void afterCommit(){                     
           source.output().send(MessageBuilder.withPayload(event).build());
    if (true) {

       }
});

请参阅http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/support/TransactionSynchronization.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37757313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档