SpringBoot集成Kafka的简单实现案列

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;并且生产者可以基于语义指定片段,消息被发送到代理的片段。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WGY_NOBUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值