afka 一个最基本的架构认识:由多个 broker 组成,每个 broker 是一个节点;你创建一个 topic,这个 topic 可以划分为多个 partition,每个 partition 可以存在于不同的 broker 上,每个 partition 就放一部分数据。 这就是天然的分布式消息队列,就是说一个 topic 的数据,是分散放在多个机器上的,每个机器就放一部分数据。 消息队列一般会被多个下游业务监听,如果其中某个下游业务发生异常,会触发消息队列的重试机制,消息队列会重新发送消息,这样正常执行的业务就面临重复消费的问题。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。 业务每次收到消息,首先去相关的业务流水表进行校验是否已经存在处理过,如果没有则继续执行业务,适用于重要业务场景 业务处理消息,将处理结果也就是唯一流水号和相关信息存储在Redis中,业务收到消息,首先去Redis中校验,如果没有则继续执行业务,适用于不重要业务场景 关闭RabbitMQ的自动ack,在程序中处理完成后手动ack 创建多个队列,每个队列对应一个消费者,消费者内部再用内存队列做排队。 紧急扩容: 批量重导,先丢弃数据,后期手动查出来,补入队列中 https://doocs.github.io/advanced-java/#/./docs/high-concurrency/mq-interview文章目录
应用场景
选型
高可用
RabbitMQ
镜像集群模式
Kafka
重复消费
接口幂等
强校验
弱校验
消息丢失
RabbitMQ
生产者在消息传入过程中数据丢失
RabbitMQ消息丢失
deliveryMode
设置为 2消费者消息丢失
顺序消费
问题
解决
消息堆积
过期失效
参考
https://github.com/AobingJava/JavaFamily/blob/master/docs/mq/%E9%87%8D%E5%A4%8D%E6%B6%88%E8%B4%B9%E3%80%81%E9%A1%BA%E5%BA%8F%E6%B6%88%E8%B4%B9%E3%80%81%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.md
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算