Spring集成Kafka

news/2024/10/31 1:32:01/

前言

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

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

1.下载Kafka

下载地址
在这里插入图片描述

2.解压文件夹

在这里插入图片描述

3.检测Kafka是否可用

启动zookeeper

进入到bin目录下,执行cmd进入命令行
zookeeper-server-start.bat ../../config/zookeeper.properties
在这里插入图片描述
没报错,没退出此窗口即启动成功

启动Kafka-server

进入到bin目录下,执行cmd进入命令行
kafka-server-start.bat ../../config/server.properties
在这里插入图片描述

基本操作Kafka指令

创建topic

执行下面指令创建一个名为test-mytopic的topic
kafka-topics.bat --create --topic test-mytopic --bootstrap-server localhost:9092
在这里插入图片描述

向topic发送数据

执行下面指令向topic发送数据
kafka-console-producer.bat --topic test-mytopic --bootstrap-server localhost:9092
在这里插入图片描述

订阅topic获取数据

执行下面指令订阅topic
kafka-console-consumer.bat --topic test-mytopic --from-beginning --bootstrap-server localhost:9092
在这里插入图片描述

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.serversbootstrap-servers: localhost:9092producer:key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializerconsumer:key-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializer//这个可以和config/consumer.properties里的group.id不同group-id: test-consumer-group

向topic发送信息

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

@RestController
public class KafkaController {@AutowiredKafkaTemplate<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中间件就被我们集成到项目中并使用起来了,上述代码为我个人的精简版,中间还有各种复杂的逻辑处理,根据项目要求可以自行添加

创作不易,一键三连更开心!
在这里插入图片描述


http://www.ppmy.cn/news/347919.html

相关文章

2022年全球及中国家用空气循环器行业头部企业市场占有率及排名调研报告

本文调研和分析全球家用空气循环器发展现状及未来趋势&#xff0c;核心内容如下&#xff1a; &#xff08;1&#xff09;全球市场总体规模&#xff0c;分别按销量和按收入进行了统计分析&#xff0c;历史数据2017-2021年&#xff0c;预测数据2022至2028年。 &#xff08;2&…

还只会 null != obj 判空,10招让你彻底告别空指针异常!

NPE异常相信 Java 程序员都很熟悉&#xff0c;是 NullPointerException 的缩写&#xff1b;最近业务需求开发的有点着急&#xff0c;测试环境就时不时的来个NPE异常&#xff0c;特别的头疼&#xff1b;作为出镜率最高的异常之一&#xff0c;一旦入行 Java 开发&#xff0c;可以…

2022年全球市场智能室内空气质量检测仪总体规模、主要生产商、主要地区、产品和应用细分研究报告

本文研究全球市场、主要地区和主要国家智能室内空气质量检测仪的销量、销售收入等&#xff0c;同时也重点分析全球范围内主要厂商&#xff08;品牌&#xff09;竞争态势&#xff0c;智能室内空气质量检测仪销量、价格、收入和市场份额等。针对过去五年&#xff08;2017-2021&am…

2021-2027中国高效空气过滤器市场现状及未来发展趋势

2021-2027中国高效空气过滤器市场现状及未来发展趋势 本报告研究中国市场高效空气过滤器的生产、消费及进出口情况&#xff0c;重点关注在中国市场扮演重要角色的全球及本土高效空气过滤器生产商&#xff0c;呈现这些厂商在中国市场的高效空气过滤器销量、收入、价格、毛利率、…

后疫情时代,空气净化行业如何将危机转为市场新动能?

新冠疫情的爆发&#xff0c;为过往被打上“靠天吃饭”的空气净化市场带来了新的机遇。处在深度变革趋势中的空气净化产业&#xff0c;遭遇疫情阶段性影响&#xff0c;市场呈现出回暖乃至短暂的爆发状态。疫情逐渐得到控制&#xff0c;消费者也度过了恐慌性购买阶段&#xff0c;…

2021年中国空气净化器零售及发展趋势分析:智能家居,推动产品发展[图]

一、空气净化器零售情况 空气净化器又称“空气清洁器”、空气清新机、净化器&#xff0c;是指能够、分解或转化各种&#xff0c;有效提高空气清洁度的产品&#xff0c;主要分为家用 、商用、工业、楼宇。 空气净化器中有多种不同的技术和介质&#xff0c;使它能够向用户提供清洁…

2022年全球市场空气消毒净化器总体规模、主要生产商、主要地区、产品和应用细分研究报告

本文研究全球市场、主要地区和主要国家空气消毒净化器的销量、销售收入等&#xff0c;同时也重点分析全球范围内主要厂商&#xff08;品牌&#xff09;竞争态势&#xff0c;空气消毒净化器销量、价格、收入和市场份额等。 针对过去五年&#xff08;2017-2021&#xff09;年的历…

工业空气过滤净化器-市场现状及未来发展趋势

根据QYR&#xff08;恒州博智&#xff09;的统计及预测&#xff0c;2021年全球工业空气过滤净化器市场销售额达到了 亿美元&#xff0c;预计2028年将达到 亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为 %&#xff08;2022-2028&#xff09;。地区层面来看&…