![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息中间件
快乐的码农一枚
这个作者很懒,什么都没留下…
展开
-
rabbitmq消息 顺序
经过测试,消息重新入列 也是固定的位置;还是第一个消费的消息。如果正常消费的情况下 消息的顺序是固定的。如果消息消费再次入队列的顺序是否有变化?原创 2023-01-31 19:57:09 · 204 阅读 · 0 评论 -
rabbitmq消费异常
rabbitmq消费异常原创 2023-01-31 19:51:41 · 696 阅读 · 0 评论 -
消费消息顺序性问题
消息有序性问题原创 2022-12-13 17:05:22 · 107 阅读 · 0 评论 -
高可用延迟消息的设计
时间轮算法剖析;采用一个循环的槽列表作为主要的存储结构,每个槽对应一个列表(存放此刻应该被执行的命令集合),然后另起一个任务每隔一段时间对槽的当前位置进行变换(或者根据时间的推移当前位置进行变更) 如果列表存储的数据太大,可以将每个列表映射到redis的一个list 如果延迟的时间跨度太大,比如一个星期、一个月等;这样需要的list太多,占用的内存太大将数据(需要触发的事件)按触发时间分散存储在多个文件中启动一个任务,只将最近半小时的事件放入内存,以达到节省内存的目的延...原创 2020-05-19 11:11:48 · 218 阅读 · 0 评论 -
考虑消息中间件故障
系统的降级机制的双缓冲机制原创 2022-11-05 00:00:08 · 58 阅读 · 0 评论 -
kafaka消费端工作流程
消费者的组件 KakfaConsumer:消费端,用于启动消费者进程来消费消息。 ConsumerConfig:消费端配置管理,用于给消费端配置相关参数,比如指定 Kafka 集群,设置自动提交和自动提交时间间隔等等参数,都由其来管理。 ConsumerConnector:消费者连接器,通过消费者连接器可以获得 Kafka 消息流,然后通过消息流就能获得消息从而使得客户端开始消费消息。 消费者消费消息流程从消费者与 ZK 的角度的消费流程首先拉取线程每拉取...原创 2020-06-11 18:46:23 · 567 阅读 · 0 评论 -
kafaka 发送消息与Gc优化
kafaka发送端不断的存储消息,批量、压缩发送;但是为啥发送端没有发生太多的FullGc因为消息存储的是使用BufferPool,一个缓存池来存放消息;存储的时候申请内存,发送完则释放缓存池;以达到共用的目的。这样就不会产生垃圾...原创 2020-05-28 16:03:23 · 166 阅读 · 0 评论 -
kafaka索引机制
kafaka 日志文件对应的索引文件有两种偏移量索引文件 偏移量到物理位置的一个映射关系 时间戳索引文件 根据一个时间戳查找偏移量信息稀疏索引概念Kafka 中的索引文件以稀疏索引(sparse index)的方式构造消息的索引,它并不保证每个消息在索引文件中都有对应的索引项由于kafaka都是顺序写的,所以可以找到目标消息的最近的索引,然后再去二分查找法...原创 2020-01-07 15:53:59 · 212 阅读 · 0 评论 -
kafaka 性能优化
Broker需要一个leader;主要工作就是分配partition,partition的迁移 如果分区比较多的话,可以扩大并发度,producer不需要太多,如果太多的话,可能增加不同的partition的消息顺序不一致性;除非你的业务模型忽略顺序性问题 replication集合也会选举出leader,读写操作直接操作leader,副本都是从leader同步信息;有一个配置(request.required.acks)接收producer的消息后,需要同步多少个副本才进行ack回复;如果设置的值太..原创 2020-06-16 11:15:53 · 424 阅读 · 0 评论 -
Kafka 发送消息流程
客户端的几个组件:KafkaProducer KafkaProducer 是一个生产者客户端的进程,通过该对象启动生产者来发送消息 RecordAccumulator 记录收集器,收集发送的消息缓存到客户端 Sender 读取缓存,进行一些必要的转换 批量传到selector Selector 传送消息到broker一条消息首先需要确定要被存储到那个 partition 对...原创 2020-05-26 11:18:06 · 552 阅读 · 0 评论 -
kafaka Repartition 触发时机
消费组内某消费者宕机,触发 Repartition 操作 消费组内新增消费者,触发 Repartition 操作 加快topic的消费速度 Topic 下的 Partition 增多,触发 Repartition 操作 在有消费者多余的情况下 加快topic的消费速度...原创 2020-06-11 18:32:16 · 218 阅读 · 0 评论 -
kafaka 保证可靠性和数据一致性
可靠性保证是通过一个ISR列表来保证,当客户端发送消息后,得到ACK的确认。这个ACK确认的节点需要达到一定数目才能返回发送成功。也就是说需要得到一定数目节点的ACK后才算真正接收成功。这样就可以有多个副本来保证数据的可靠性,当leader挂了之后,还有相同数据的副本替换上 数据一致性,是通过每个节点都会维护一个LEO (log end offset) 所有ISR列表中节点的最小的LEO 就作为...原创 2020-04-13 09:41:13 · 527 阅读 · 0 评论 -
kafaka为啥快
首先从客户端的角度说明 1、批量的发送2、由sender组件对消息根据broker进行归类。合并发送3、消息压缩 降低网络 I/O,从而提高整体的性能 服务端角度1、分区的模式,分担了压力2、顺序写盘,速度可以和内存写进行媲美3、pageCache的概念,服务端收到批量消息后,先写pageCache,然后异步的落盘消费端的角度 1、如果服务端的消息还在pagecache中,则消费者消费消息的时候直接从pagecache中拿到消息 实现了zer...原创 2020-06-12 11:37:57 · 211 阅读 · 0 评论 -
rocketmq搭建
docker配置rocketmq原创 2022-07-07 15:00:53 · 206 阅读 · 0 评论 -
rabbitmq 一次发送消息,多个模块消费
一次发送多个队列消费原创 2022-07-26 19:39:05 · 1099 阅读 · 0 评论 -
RocketMQ
Broker 作用: 与producer和consumer接受和发送消息 与nameserver长连接,定时上报信息 存储消息、转发服务器 每个Broker启动后,都会与所有的nameserver建立长连接,然后定时上报信息 Nameserver 底层由netty实现,提供路由注册、路由发现的功能集群中producer、consumer、broker都定时向nameserver发送自己的状态nameserver可以有多个,实现高可用;其他角色...原创 2020-07-01 22:13:19 · 103 阅读 · 0 评论