仿牛客论坛项目day7|Kafka

一、阻塞队列

创建了一个生产者线程和一个消费者线程。生产者线程向队列中放入元素,消费者线程从队列中取出元素。我们可以看到,当队列为空时,消费者线程会被阻塞,直到生产者线程向队列中放入新的元素。

二、Kafka入门

发布、订阅

三、spring整合Kafka

首先,需要在项目的pom.xml中添加对Spring Kafka的依赖。然后,可以通过配置类或application.properties来配置Kafka生产者和消费者。接着,使用KafkaTemplate发送消息和使用@KafkaListener注解来监听和接收消息。

四、发送系统通知

功能拆解:

具体实现:

构造生产者与消费者

生产者:将得到的event发给指定主题

消费者:将event转换为message对象,再将message存入数据库

调用producer

comment controller:生成event,调用生产者的fire event方法。有人点赞时就会将event发出,到消息队列里,消费者监听到后会将event转换为message对象,再将message存入数据库。

like controller:生成event,调用生产者的fire event方法。

follow controller:生成event,调用生产者的fire event方法。

五、显示系统通知

message表里有新的点赞、评论、关注。现在增加将这些数据显示在系统通知页面的功能。

service:增加查询message通知的方法

controller:将查到的message放入页面

相关推荐
codeejun7 分钟前
每日一 Go-72、分布式事务 & 一致性:本地消息表、事务消息、SAGA、TCC怎么选?
开发语言·分布式·golang
科技互联.8 分钟前
2026轻量化图形引擎白皮书:PG官网发布渠道与分布式PG数据库架构解析
数据库·分布式·数据库架构
段一凡-华北理工大学12 分钟前
工业领域的Hadoop架构学习~系列文章10:数据序列化与压缩
大数据·人工智能·hadoop·分布式·学习·工业智能体·高炉炼铁智能化
BossFriday25 分钟前
【手撸IM】SycllaDB 消息存储基础
java·分布式·中间件
小马爱打代码32 分钟前
SpringBoot + 分布式锁 + 事务日志:跨服务操作原子性兜底方案
spring boot·分布式·后端
数据库小学妹34 分钟前
分布式数据库选型实战:Share-Nothing、Share-Disk、Share-Storage三种架构对比
数据库·经验分享·分布式·架构·dba
神所夸赞的夏天21 小时前
RabbitMQ安装过程
分布式·rabbitmq
炸炸鱼.1 天前
部署Zabbix企业级分布式监控:从零到实战(知识点大全)
分布式·zabbix
笑尘~Y1 天前
Kafka核心技术解析
kafka
phltxy1 天前
RabbitMQ 常见面试题
分布式·rabbitmq