Spring集成Kafka

这篇具有很好参考价值的文章主要介绍了Spring集成Kafka。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我负责的其中一个项目,接口的交互量在千万级/d,所以要存储大量的日志,为了防止日志的存储影响到系统的性能,所以在技术选型就决定了使用Kafka中间件和一个日志存储系统来负责日志的存储。

使用Kafka 的优点:
1.Kafka 是一种高吞吐量的分布式消息系统,可以支持水平扩展,非常适合存储大量的日志数据。
2.Kafka 使用数据增量的方式存储日志,并使用了 Zig-Zag 编码方式对数据进行压缩,从而极大地减少其占用的磁盘空间大小。
3.Kafka 的消息存储格式使用了 batch 方式,将一些公共信息进行提取,保证只需要存储一份,从而减少了每条消息的存储空间。
4.Kafka 的消息格式中包含了属性字段和 header,属性字段用于存储当前消息 key 和 value 的压缩方式,而 header 则供用户添加一些动态的属性,从而实现一些定制化的工作。

1.下载Kafka

下载地址
spring 集成kafka,kafka,spring,java

2.解压文件夹

spring 集成kafka,kafka,spring,java

3.检测Kafka是否可用

启动zookeeper

进入到bin目录下,执行cmd进入命令行
zookeeper-server-start.bat ../../config/zookeeper.properties
spring 集成kafka,kafka,spring,java
没报错,没退出此窗口即启动成功

启动Kafka-server

进入到bin目录下,执行cmd进入命令行
kafka-server-start.bat ../../config/server.properties
spring 集成kafka,kafka,spring,java

基本操作Kafka指令

创建topic

执行下面指令创建一个名为test-mytopic的topic
kafka-topics.bat --create --topic test-mytopic --bootstrap-server localhost:9092
spring 集成kafka,kafka,spring,java

向topic发送数据

执行下面指令向topic发送数据
kafka-console-producer.bat --topic test-mytopic --bootstrap-server localhost:9092
spring 集成kafka,kafka,spring,java

订阅topic获取数据

执行下面指令订阅topic
kafka-console-consumer.bat --topic test-mytopic --from-beginning --bootstrap-server localhost:9092
spring 集成kafka,kafka,spring,java

4.Spring 集成 Kafka

pom文件引入依赖

		<dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
        </dependency>

application配置

spring:
  kafka:
  	// config/consumer.properties配置的bootstrap.servers
    bootstrap-servers: localhost:9092
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
    consumer:
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      //这个可以和config/consumer.properties里的group.id不同
      group-id: test-consumer-group

向topic发送信息

模拟系统调用接口,忽略接口调用逻辑,当接口调用结束后,通过Kafka向Topic发送此次调用接口的相关消息

@RestController
public class KafkaController {
	@Autowired
    KafkaTemplate<String, Object> kafka;
    
    @RequestMapping("OrderTrans")
    public String OrderTransIntf(HttpServletRequest request, @RequestBody String requestParams) {
        try {
			//处理接口逻辑
		} catch (Exception e) {
			
		}
        String serialNo = UUIDManager.generateSerialnoByUUID();
    	JSONObject order = new JSONObject();
    	order.put("serialNo", serialNo);
    	order.put("sourceRequestData", requestParams);
    	order.put("logInfo", "订单相关信息...");
        kafka.send("OrderLogHandlerTopic", order.toJSONString());
        return serialNo;
    }
}

订阅topic接收信息

@Configuration
public class KafkaConsumerConfig {
 	@KafkaListener(topics = "OrderLogHandlerTopic")
    public void saveLog(String message) {
        System.out.println("接收到消息:" + message);
        //保存日志操作
        OrderLogDao.save(message);
        System.out.println("保存成功");
    }
}

到此为止,整个Kafka中间件就被我们集成到项目中并使用起来了,上述代码为我个人的精简版,中间还有各种复杂的逻辑处理,根据项目要求可以自行添加

创作不易,一键三连更开心!
spring 集成kafka,kafka,spring,java文章来源地址https://www.toymoban.com/news/detail-622529.html

到了这里,关于Spring集成Kafka的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • spring集成kafka并对消息进行监听

    需要依赖zookeeper,需提前启动 在server.properties文件中配置kafka连接zookeeper相关信息 在zookeeper.properties中配置zookeeper所需配置 kafka本地安装启动 pom文件 生产配置 消费者配置 创建topic工具类 生产业务 消费业务 消息接收类 监听类 业务处理 异步 同步 ONEWAY kafka消息发送方式有同步

    2024年02月03日
    浏览(49)
  • Spring Boot集成kafka的相关配置

    额外依赖只需要这一个,kafka-client 不是springboot 的东西,那是原生的 kafka 客户端, kafka-test也不需要,是用代码控制broker的东西。 也可以用java类Config 方式配置,如果没有特殊要求,可以只用spring配置的方式 注意加上@Component,被spring管理监听才有效 注意这里不能用@Value注解

    2024年02月07日
    浏览(48)
  • 【Spring Boot】集成Kafka实现消息发送和订阅

    最近忙着搞低代码开发,好久没新建spring项目了,结果今天心血来潮准备建个springboot项目 注意Type选Maven,java选8,其他默认 点下一步后完成就新建了一个spring boot项目,配置下Maven环境,主要是settings.xml文件,里面要包含阿里云仓库,不然可能依赖下载不下来 在maven配置没问

    2024年02月09日
    浏览(49)
  • 从零开始学Spring Boot系列-集成Kafka

    Apache Kafka是一个开源的分布式流处理平台,由LinkedIn公司开发和维护,后来捐赠给了Apache软件基金会。Kafka主要用于构建实时数据管道和流应用。它类似于一个分布式、高吞吐量的发布-订阅消息系统,可以处理消费者网站的所有动作流数据。这种动作流数据包括页面浏览、搜

    2024年03月21日
    浏览(63)
  • 非阻塞重试与 Spring Kafka 的集成测试

            如何为启用重试和死信发布的消费者的 Spring Kafka 实现编写集成测试。 Kafka 中的非阻塞重试是通过为主主题配置重试主题来完成的。如果需要,还可以配置其他死信主题。如果所有重试均已用尽,事件将转发至 DLT。公共领域提供了大量资源来了解技术细节。  在

    2024年02月12日
    浏览(36)
  • 在Spring Boot微服务集成kafka-clients操作Kafka集群

    记录 :463 场景 :在Spring Boot微服务集成kafka-clients-3.0.0操作Kafka集群。使用kafka-clients的原生KafkaProducer操作Kafka集群生产者Producer。使用kafka-clients的原生KafkaConsumer操作Kafka集群的消费者Consumer。 版本 :JDK 1.8,Spring Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka集群安装 :https://bl

    2024年02月09日
    浏览(52)
  • 使用 Spring Kafka 进行非阻塞重试的集成测试

    ​Kafka的非阻塞重试是通过为主题配置重试主题来实现的。如果需要,还可以配置额外的死信主题。如果所有重试都耗尽,事件将被转发到DLT。在公共领域中有很多资源可用于了解技术细节。对于代码中的重试机制编写集成测试确实是一项具有挑战性的工作。以下是一些测试

    2024年02月10日
    浏览(39)
  • 在Spring Boot微服务集成Kafka客户端(kafka-clients)操作Kafka

    记录 :459 场景 :在Spring Boot微服务集成Kafka客户端kafka-clients-3.0.0操作Kafka。使用kafka-clients的原生KafkaProducer操作Kafka生产者Producer。使用kafka-clients的原生KafkaConsumer操作Kafka的消费者Consumer。 版本 :JDK 1.8,Spring Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka安装 :https://blog.csdn.ne

    2024年02月12日
    浏览(52)
  • kafka--技术文档--spring-boot集成基础简单使用

            查阅了很多资料了解到,使用了spring-boot中整合的kafka的使用是被封装好的。也就是说这些使用其实和在linux中的使用kafka代码的使用其实没有太大关系。但是逻辑是一样的。这点要注意! 核心配置为: 如果在下面规定了spring-boot的版本那么就不需要再使用版本号,如

    2024年02月11日
    浏览(48)
  • 使用Spring Boot集成中间件:Kafka的高级使用案例讲解

    在实际应用中,Kafka作为一种强大的分布式消息系统,广泛应用于实时数据处理和消息传递。本文将通过一个全面的使用案例,详细介绍如何使用Spring Boot集成Kafka,并展示其在实际场景中的应用。 在开始之前,我们需要确保已经完成以下准备工作: 安装并启动Kafka集群 创建

    2024年02月01日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包