
消息队列
文章平均质量分 92
yangyanping20108
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何降低消息队列系统中消息的延迟?
这时,你要关注的就是消息队列中,消息的延迟了,这其实是消费性能的问题,那么你要如何提升消费性能,保证更短的消息延迟呢?在我看来,你首先需要掌握如何来监控消息的延迟,因为有了数据之后,你才可以知道目前的延迟数据是否满足要求,也可以评估优化之后的效果。然后,你要掌握使用消息队列的正确姿势,以及关注消息队列本身是如何保证消息尽快被存储和投递的。接下来,我们先来看看第一点:如何监控消息延迟。一、如何监控消息延迟?使用消息队列提供的工具,通过监控消息的堆积来完成;通过生成监控消息的方式来监控消息的延迟情况。原创 2023-11-04 17:31:39 · 354 阅读 · 0 评论 -
如何保证消息只被消费一次
消息一旦被重复消费,就会造成业务逻辑处理的错误。那么我们要如何避免消息的重复呢?想要完全的避免消息重复的发生是很难做到的,因为网络的抖动、机器的宕机和处理的异常都是比较难以避免的,在工业上并没有成熟的方法,因此我们会把要求放宽,只要保证即使消费到了重复的消息,从消费的最终结果来看和只消费一次是等同的就好了,也就是保证在消息的生产和消费的过程是“幂等”的。原创 2023-11-04 13:51:47 · 314 阅读 · 0 评论 -
消息投递:如何保证消息不丢失?
在电商系统中,我们经常有这样的场景,在用户下单购买完商品后,需要给用户发送红包来促进用户继续消费。而发送红包的流程并不在下单的核心流程之内,这样的流程我们通常会采用消息队列的方式来异步处理,提高接口性能。原创 2023-11-04 10:22:04 · 232 阅读 · 0 评论 -
延时消息队列
延时队列的内部是有序的,最重要的特性就体现在它的延时属性上,延时队列就是用来存放需要在指定时间点被处理的元素的队列。队列是存储消息的载体,延时队列存储的对象是延时消息。所谓的延时消息,是指消息被发送以后,并不想让消费者立刻获取,而是等待特定的时间后,消费者才能获取这个消息进行消费。原创 2023-09-01 21:27:17 · 1565 阅读 · 0 评论 -
kafka原理五之springboot 集成批量消费
由于Kafka的写性能非常高,因此项目经常会碰到Kafka消息队列拥堵的情况。遇到这种情况,我们可以通过并发消费、批量消费的方法进行解决。原创 2023-06-22 23:11:00 · 8132 阅读 · 0 评论 -
kafka原理二之生产者
Kafka Producer在开发生产者的时候,先简单的介绍下kafka各种配置说明:- bootstrap.servers: kafka的地址。- acks:消息的确认机制,默认值是0。- acks=0:如果设置为0,生产者不会等待kafka的响应。- acks=1:这个配置意味着kafka会把这条消息写到本地日志文件中,但是不会等待集群中其他机器的成功响应。- acks=all:这个配置意味着leader会等待所有的follower同步完成。这个确保消息不会丢失,除非kafka集群中所有.原创 2021-06-09 14:59:30 · 480 阅读 · 0 评论 -
rabbitmq消息队列学习之进阶
rabbitmq消息队列学习之进阶死信队列死信队列DLX,全称为Dead-Letter-Exchange,可以称之为私信交换器,也有人称之为死信邮箱。当消息在一个队列中变为死信(dead message) 之后,它能被重新发送到另一个交换器中,这个交换器就是DLX,绑定DLX的队列就称之为死信队列。消息变为死信一般是由于以下几种情况:消息被拒绝( Basic.Reject/Basic.Nack ),并且设置requeue 参数为false;消息过期队列到达最大长度...原创 2021-04-21 19:39:32 · 218 阅读 · 0 评论 -
rabbitmq消息队列学习之入门
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。原创 2021-04-14 19:55:25 · 289 阅读 · 0 评论 -
kafka架构四之高可用
目录Leader ElectionReplica分配机制消息传递同步策略ACK前需要保证有多少个备份Leader Election引入Replication之后,同一个Partition可能会有多个Replica,而这时需要在这些Replication之间选出一个Leader,Producer和Consumer只与这个Leader交互,其它Replica作为Follower从Leader中复制数据。因为需要保证同一个Partition的多个Replica之间的数据一致性(其中一个宕机后其它Replic原创 2020-12-25 09:34:43 · 289 阅读 · 0 评论 -
kafka架构四之数据文件
Kafka高效文件存储设计特点Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。通过索引信息可以快速定位message和确定response的最大大小。通过index元数据全部映射到memory,可以避免segment file的IO磁盘操作。通过索引文件稀疏存储,可以大幅降低index文件元数据占用空间大小。原创 2020-12-12 18:59:52 · 946 阅读 · 1 评论 -
kafka原理三之partition
主题分区数。kafka通过分区策略,将不同的分区分配在一个集群中的broker上,一般会分散在不同的broker上,当只有一个broker时,所有的分区就只分配到该Broker上。消息会通过负载均衡发布到不同的分区上,消费者会监测偏移量来获取哪个分区有新数据,从而从该分区上拉取消息数据。分区数越多,在一定程度上会提升消息处理的吞吐量,因为kafka是基于文件进行读写,因此也需要打开更多的文件句柄,也会增加一定的性能开销。如果分区过多,那么日志分段也会很多,写的时候由于是批量写,其实就会变成随机写了,随机 I原创 2020-12-10 14:55:46 · 3163 阅读 · 0 评论 -
kafka原理一之初识kafka
目录什么是 KafkaKafka架构什么是 KafkaKafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通原创 2020-12-03 14:49:12 · 420 阅读 · 0 评论