SpringBoot集成Kafka的简单实现案列

news2024/11/16 7:49:30

1,首先搭建一个Springboot项目准备一个测试服务器

2,引入pom

<dependency>
    <groupId>org.springframework.kafka</groupId>
     <artifactId>spring-kafka</artifactId>
 </dependency>

他其中包括一些其他的包如果有冲突可以给他把冲突包去掉

3,yml文件的配置:(如果有其他需求配置可百度kafka配置)
在这里插入图片描述

4,配置完成后就可以开始写生产者发送消息了,根据业务场景一般都会封装成方法然后调用不建议controller直接发送
4.1,首先引入kafka的template就像redis一样首相要有一个template才可继续,如果是自定义配置类也可以引入配置类进行操作,
KafkaTemplate<String,String> kafkaTemplate;
4.2,然后通过template的接口进行消息发送
如图:
在这里插入图片描述
5,有生产者就有消费者接下来写消费者:
在这里插入图片描述
**注意点:**红框内的注解里面的topics是什么?(如果想查看更多配置请百度)
他就是主题名通过主题名找到对应的主题进行消息消费,也有分组的组名
groupid就是组名,看图:
在这里插入图片描述

这个消息发送到哪里了:当然是这里配置的服务器了
在这里插入图片描述
打开linux会发现消息发送,并且消费成功
在这里插入图片描述

6,例子写到这里突然感觉似曾相识,这不和mq给我的是一个感觉吗,他们两个有什么区别?
kafka目前做数据分析,聚合,采集,流处理用的比较多所以明白了他的吞吐量为什么大了吗

1) 在架构模型方面,
Rabbitmq遵循AMQP协议。rabbitmq的代理由交换、绑定和队列组成,其中交换和绑定构成消息的路由密钥;客户端生产者通过连接通道与服务器通信,消费者从队列中获取消息以供消费(长连接,队列中的消息将被推送到消费者端,消费者循环从输入流中读取数据)。Rabbitmq以经纪人为中心;有一个消息确认机制
kafka遵循一般的MQ结构,以制片人、经纪人和消费者为中心。消息的消费信息保存在客户端消费者上,消费者根据消费点从代理中批量提取数据;没有消息确认机制

2) 在吞吐量方面,
Rabbitmq在吞吐量方面略低于卡夫卡。他们的出发点不同。Rabbitmq支持可靠的消息传递,支持事务,不支持批处理操作;根据存储可靠性的要求,存储可以是内存或硬盘。
kafka的吞吐量很高。它采用消息批处理和零拷贝机制。数据的存储和采集是本地磁盘的顺序批处理操作。它具有o(1)复杂性和消息处理的高效率。

3)在可用性方面,
rabbitMQ支持miror的,当主出现故障时,miror接管。
kafka的经纪人支持待机模式。

4)在集群负载均衡器方面,
rabbitMQ的负载平衡器需要单独的负载平衡器来支持。
Kafka使用zookeeper管理集群中的broker和consumer,可以向zookeeper注册主题;通过zookeeper的协调机制,生产者保存相应主题的broker信息,可以随机或轮询的方式发送给broker;并且生产者可以基于语义指定片段,消息被发送到代理的片段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有哪些值得注意的隔断小技巧可以让酒店更美观实用

以下是一些可以使酒店隔断更美观实用的小技巧&#xff1a; 1. 选择透明或半透明材料&#xff1a;使用透明或半透明的材料&#xff0c;如玻璃、亚克力或薄钢板&#xff0c;可以增加空间的亮度和通透感。 2. 考虑隔断的尺寸和布局&#xff1a;确保隔断的尺寸和布局适应空间大小和…

AI血洗时尚圈!就连这些线上店家都开始用AI生成爆款商品了

量子位 | 公众号 QbitAI 家人们谁懂啊&#xff0c;刷屏的《哈利波特》AI时装秀&#xff0c;看几次都不够&#xff01; 这些时装造型火遍全网&#xff0c;视频播放量破千万&#xff0c;还只是技术给时尚圈带来的一点小小震撼。 现在&#xff0c;用AI辅助设计服装、食品包装、装…

Elasticsearch初探

ElasticSearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。 Elasticsearch结合Kibana、Logstash、Beats&#xff0c;也就是elastic stack(ELK)。被广泛应用在日志分析、实时监控&#xff08;CPU、Memory、Program&#xff09;等领域。 elasticsearch是…

【​区块链】相关专业名词术语

区块链 区块链是一个共享数据库&#xff0c;存储于其中的数据或信息&#xff0c;具有不可伪造、全程留痕、可以追溯、公开透明和集体维护等特征。可以把区块链理解为一个共享的、不可更改的电子账本&#xff0c;能够在网络中记录交易和跟踪资产。这里的资产可以是有形的&#…

mount.nfs: access denied by server while mounting

问题及截图&#xff1f; 客户端挂载nfs共享目录的时候提示如下&#xff1a; mount.nfs: access denied by server while mounting 192.168.44.10:/xxx 问题原因有两方面&#xff1a; 一&#xff1a;权限问题 服务器端的共享目录没有给足相应的权限导致&#xff0c;导致挂载失…

如何做mysql调优?绝命7招,让慢SQL调优100倍

前言&#xff1a; 在40岁老架构师尼恩的读者社区&#xff08;50&#xff09;中&#xff0c;很多小伙伴拿不到offer&#xff0c;或者拿不到好的offer。 尼恩经常给大家 优化项目&#xff0c;优化简历&#xff0c;挖掘技术亮点。在指导简历的过程中&#xff0c; Java 调优是一项…

HiveSQL在使用聚合类函数的时候性能分析和优化详解

文章目录 概述1.仅在Reduce阶段聚合的SQL执行逻辑2.在map和reduce阶段聚合的SQL逻辑 概述 前文我们写过简单SQL的性能分析和解读&#xff0c;简单SQL被归类为select-from-where型SQL语句&#xff0c;其主要特点是只有map阶段的数据处理&#xff0c;相当于直接从hive中取数出来…

C++模板和模板的特化,模板的扩展和智能指针------(14)

模板 概念 模板的作用是实现类型通用&#xff0c;降低代码的冗余度 模板可以为一种算法定义不同类型的版本 实现机制&#xff1a; 复制代码使用类型参数突破类型的限制&#xff0c;丧失一定的类型安全 模板需要实例化才能使用&#xff0c;实例化由编译器完成 模板的分类 …

对比学习初认识

这篇文章我们通过SimCLR模型来对对比学习技术有一个认知。 1.什么是对比学习系统 根据上面这个图&#xff0c;来介绍下怎么做一个抽象的对比学习系统。以一个图像为例子&#xff0c;通过自动构造正例或负例&#xff0c;形成图片的两个view&#xff0c;通过encoder把它们编码&a…

第十届中医药健康文化节:御医传人龚洪海强调心血管疾病中医治疗"治未病"的重要性

在第十届中医药健康文化节上&#xff0c;备受瞩目的中医世家龚洪海医生强调了中医对心血管疾病的有效治疗&#xff0c;并提出了更为重要的概念——"治未病"。这一观念的传达不仅对预防常见病和多发病有益&#xff0c;同时在重大疑难疾病的防治中发挥着关键作用&#…

Java - OkHttp

使用方法&#xff1a; 在postman中请求接口通过&#xff0c;可复制右侧代码使用&#xff0c;可用于webservice等接口

MySQL数据库事务和存储引擎

MySQL数据库事务和存储引擎 一、mysql事务1、事务的概念2、事务的ACID特点2.1 原子性2.2 一致性2.3 隔离性2.4 持久性 3、两个事务之间的影响3.1 脏读&#xff08;读取未提交数据&#xff09;3.2 不可重复度&#xff08;前后多次读取&#xff0c;数据内容不一致&#xff09;3.3…

【Vue+Django】Training Management Platform分页功能 - 20230621

需求描述 分页显示数据&#xff0c;避免造成服务器宕机。 Django&#xff1a;根据pageNum返回数据切片 Views.py写入业务逻辑 # 数据接口&#xff1a;暴露trs_training_and_test_record数据 def api_trs_training_and_test_record(request,myDateS,myDateE,mySystem,catego…

SpringCloud Alibaba入门4之nacos注册中心管理

我们在上一章的基础上进行学习。https://blog.csdn.net/qinxun2008081/article/details/131330451 什么是注册中心?它记录了服务和服务地址的映射关系。在分布式架构中&#xff0c;服务会注册到这里&#xff0c;当服务需要调用其它服务时&#xff0c;就到这里找到服务的地址&…

Java开发必看,Spring增强性能与现代应用支持

出品 | CSDN 云计算 开发界经典话题之一&#xff0c;就是语言之争。除了每月的开发语言排行榜上几大王牌语言在榜单前列上上下下&#xff0c;在 CSDN 连续几年的年度开发者调研《中国开发者调查报告》中&#xff0c;Java 一直被评为开发者使用占比最高的语言&#xff0c;而 Spr…

银河麒麟V10 wireguard 编译

系统信息 操作系统信息&#xff1a; 我这里使用的操作系统是 银河麒麟V10&#xff0c;CPU为飞腾 ARM64 根据wireguard 的编译指南&#xff1a;https://www.wireguard.com/compilation/ 安装 编译安装内核 注意&#xff1a;5.6 以上内核不需要编译安装&#xff0c;已经集…

【数据库五】MySQL高级SQL语句

MySQL高级SQL语句 1.MySQL进阶查询1.1 select1.2 distinct1.3 where1.4 and or1.5 in1.6 between1.7 通配符1.8 like 2.MySQL数据库函数2.1 数学函数2.2 聚合函数2.3 字符串函数 3.查询函数3.1 order by3.2 group by3.3 sql语句执行顺序3.4 having3.5 别名&#xff08;字段别名…

【剑指offer专项突破版】队列篇——“C“

文章目录 前言一、滑动窗口的平均值题目分析思路分析对列代码题解代码 二、最近请求次数题目分析思路分析队列代码题解代码 三、往完全二叉树添加节点题目分析思路分析队列与接口代码题解代码 四、二叉树每层的最大值题目分析思路分析队列代码题解代码 五、二叉树最底层最左边的…

学习 WooCommerce REST API

主要学习这个技术文档即可 WooCommerce REST API 技术文档 WooCommerce 官方文档 github : woocommerce/woocommerce 以下设置以及测试代码&#xff0c;都来自 WooCommerce REST API 技术文档 设置 REST API 设置 – 固定链接 &#xff08;Settings > Permalinks.&#…

MySQL - 第4节 - MySQL数据类型

目录 1.数据类型的作用 2.数据类型分类 3.数值类型 3.1.tinyint类型 3.2.bit类型 3.3.float类型 3.4.decimal类型 4.字符串类型 4.1.char类型 4.2.varchar类型 4.3.char和varchar比较 5.时间日期类型 6.enum和set类型 6.1.enum和set类型 6.2.调查表案例 6.3.通…