springboot kafka消息事务

采用kafkatemplate发送事务消息,需要配置地方

1. spring.kafka.producer.transaction-id-prefix=kafka-tran

2. spring.kafka.producer.retries=1 --这个必须大于0

这个头不为空,会在默认的producerfactory及kafkatemplate初始化中中用到

DefaultKafkaProducerFactory

public boolean transactionCapable() {
   return this.transactionIdPrefix != null;
}

KafkaTemplate

public KafkaTemplate(ProducerFactory<K, V> producerFactory, boolean autoFlush) {
   this.producerFactory = producerFactory;
   this.autoFlush = autoFlush;
   this.transactional = producerFactory.transactionCapable();
}
这样就可以发送带事务的消息了,不需要@Transtractional注解,且kafkaTemplate.send()等不带事务的消息是无法发送的,直接报异常
public void sendMessageTransactional() {
    String jsonMessage = buildMessage();
    //局部开启事务
    kafkaTemplate.executeInTransaction(operations -> {
        operations.send(topic, 1, "key2", jsonMessage);
        return true;
    });
    logger.info("已发送事务消息。。。。");
}

还有一种在代码中初始化producerfactory,template,kafkatranctionalmanager的方法,另说。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot Kafka提供了一些安全机制来确保消息传输的安全性。其中一个重要的安全机制是使用认证和授权来限制访问Kafka集群的权限。 为了实现安全认证,可以通过配置Kafka的SASL(Simple Authentication and Security Layer)机制来验证连接到Kafka集群的客户端的身份。可以使用不同的SASL机制,如PLAIN,SCRAM,OAUTHBEARER等来进行认证。 另外,还可以使用SSL/TLS协议来加密与Kafka集群之间的通信,确保数据在传输过程中不会被窃取或篡改。这可以通过配置Kafka的SSL连接来实现。 此外,可以使用授权机制来限制对Kafka集群中主题的读写权限。可以配置Kafka的ACL(Access Control List)来指定哪些用户或用户组有权对特定主题进行读写操作。 综上所述,Spring Boot Kafka提供了多种安全机制,包括身份认证、加密传输和访问控制,以确保消息传输的安全性。具体的安全配置取决于实际需求和部署环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [三.Kafka入门到精通-SpringBoot整合Kafka(同步&异步消息&事务消息&手动确认)](https://blog.csdn.net/u014494148/article/details/125241806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [springboot-demo:基于SpringBoot 2.x整合各种常用开发工具,包括但不限于Redis,MyBatisPlus,RocketMQ,...](https://download.csdn.net/download/weixin_42127754/18369068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值