惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
V
V2EX
美团技术团队
H
Help Net Security
月光博客
月光博客
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
U
Unit 42
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
A
About on SuperTechFans
博客园 - Franky
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
MyScale Blog
MyScale Blog
B
Blog
雷峰网
雷峰网
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
T
The Blog of Author Tim Ferriss

浮华生

Elasticsearch 检索性能优化 - 浮华生 舆情监控系统综述 - 浮华生 2024 半年度总结 - 浮华生 2023 年终总结 - 浮华生 异地机器组网方案 - 浮华生 Kubernetes 部署 Elasticsearch 和 Kibana - 浮华生 2022 年终总结 - 浮华生 RabbitMQ connection channel 的关系 - 浮华生 Kafka Java 客户端 Producer 原理分析 - 浮华生 阿里云 OpenSearch 介绍 - 浮华生 Golang Array 和 Slice 区别 - 浮华生 Mac OS 下打造 golang nvim 编程环境之基础配置 - 浮华生 电商搜索技术总结 - 浮华生 电商搜索业务总结 - 浮华生 2021 年终总结 - 浮华生 Cypress 实践总结 - 浮华生 年终总结 - 浮华生 关于我 - 浮华生 使用 cucumber 进行行为驱动开发(BDD) - 浮华生 微服务应用集成 SpringCloud 步骤 - 浮华生 电商搜索数据同步方案 - 浮华生 通过一道数值转换题重温计算机补码 - 浮华生 macOS 系统推荐的一些软件 - 浮华生 DevOps 实施规划(持续更新) - 浮华生 rabbitmq 如何提高可靠性并保证消费端幂等 - 浮华生 AMQ Model总结 - 浮华生 结对编程 - 浮华生 RSocket 介绍 - 浮华生 面向对象的理解 - 浮华生 企业平台技术框架 - 浮华生
RabbitMQ 和 Kafka 应用原理简单对比 - 浮华生
浮华生 · 2022-05-29 · via 浮华生

在实际工作中用到了 RabbitMQ 和 Kafka,本篇文章围绕二者在使用上的一些认知进行展开,不涉及技术细节,仅做实践上的参考。

RabbitMQ

多用于处理业务系统之间的信息交互,所以需要保证消息的可靠性和幂等性,我在项目中实际使用的是 at-least-once 投递方式,然后针对每条消息做幂等处理。

在使用 Spring Boot AMQP 或者其他 Rabbit clien开发时,一般不会直接通过代码的方式创建队列和交换机等资源,而是由运维在控制台创建好,然后在项目中配置这些信息,修改和删除时也是同理。私信队列是为了消息达到重试最大次数后能够查看或者做其他业务操作。

一个 Queue 对应一个消费者,如果一个消费者有多个节点则会进行轮询发送。

image-20220529231149668

Kafka

Kafka多用于数据处理方面。一个 Broker 中可以有多个 Topic,每个 Topic 下又可以有多个 Partition,Kafka 保证是每个 Partition 内部有序。在消费消息时监听 Topic,此时接收到的数据并非是严格有序的,要想做到有序最简单的方式就是一个 Topic 只有一个 Partition。同一个消费组内,消息只会被一个消费者消费;如果两个不同的消费组内监听同一个 Topic 消息,那么这些消息会被这两个消费组内的某个消费者消费。

image-20220529233953651

Kafka 实现类似 RabbitMQ 的 Topic 功能