RocketMQ是我们常用的消息中间件,在运行单元测试时,我们可能不需要真正发送消息(除非是为了测试发送消息),也不想因为连结不上RocketMQ的Broker,NameServer而影响单元测试运行。 那我们该如何Mock RocketMQ消息生产者呢? 请看例子: 1 2 3 4 5 6 7 8 ...
分类:
其他好文 时间:
2019-12-09 19:42:10
阅读次数:
100
首先解释下consumeQueue,由于commit-log是根据消息先后存储的,而我们消费的时候是根据topic来筛选的,所以需要一个队列根据topic来划分,所以consumeQueue就是干这个事情的。而indexfile顾名思义就是索引文件,用来做单纯查询的。 private final C ...
分类:
其他好文 时间:
2019-12-08 22:51:24
阅读次数:
69
如果一个broker正常退出,是会删除abort文件的。那么启动broker的时候发现abort文件还存在,那么说明上次是异常终止,会进入到commit-log的recoverAbnormally逻辑里面,因为所有其他的信息都是从commit-log获取到的,所以追根溯源只能从commit-log开 ...
分类:
其他好文 时间:
2019-12-08 22:49:36
阅读次数:
182
[toc] Kafka生产者端 可靠性保证: producer向broker发送消息数据,需要有一定的可靠性,至少要保证数据: 1、不丢失 2、不重复 producer提供了一些参数,在编写producer是进行合理设置和编写,就可以保证数据的可靠性。 acks 参数配置 为保证producer发送 ...
分类:
编程语言 时间:
2019-12-07 23:16:20
阅读次数:
165
[toc] bootstrap.servers broker集群地址,格式:ip1:port,ip2:port...,不需要设定全部的集群地址,设置两个或者两个以上即可。 group.id 消费者隶属的消费者组名称,如果为空会报异常,一般而言,这个参数要有一定的业务意义。 fetch.min.byt ...
分类:
其他好文 时间:
2019-12-07 16:41:02
阅读次数:
543
zookeeper 是 kafka 不可分割的一部分,可见其重要程度,所以我们有必要了解一下 zookeeper 在 kafka 中的具体工作内容。 而且,这也是面试时经常问的。 zookeeper 存储了一些关于 consumer 和 broker 的信息,那么就从这两方面说明 zookeeper ...
分类:
其他好文 时间:
2019-12-07 10:23:23
阅读次数:
111
broker 把消息写入 commitLog 后,还需要把消息的索引写入 consumeQueue 文件 和 indexFile 文件 consumeQueue 文件,一个 entry 20 字节,8 + 4 + 8,8 字节 commitLog offset,4 字节消息 size,8 字节 ta ...
分类:
其他好文 时间:
2019-12-06 11:18:52
阅读次数:
166
主题: 1、kafka是写磁盘还是写内存? 2、kafka究竟是由 consumer 从 broker 那里拉数据,还是由 broker 将数据推到 consumer? 3、如何区分已消费(consumed)的记录? 4、kafka用什么方法保障持久化的低延迟和高效率? 5、kafka的消息保证有几 ...
分类:
其他好文 时间:
2019-12-05 18:29:32
阅读次数:
106
1、使用下面语句启用数据库的 Service Broker ALTER DATABASE [YOUR DBNAME] SET NEW_BROKER WITH ROLLBACK IMMEDIATE; ALTER DATABASE [YOUR DBNAME] SET ENABLE_BROKER; 2、使 ...
分类:
数据库 时间:
2019-12-03 15:34:48
阅读次数:
102
因为在具体开发中某些环节考虑使用kafka却担心有消息丢失的风险,本周结合项目对kafka的消息可靠性做了一下调研和总结: 首先明确一下丢消息的定义。kafka集群中的部分或全部broker挂了,导致consumer没有及时收到消息,这不属于丢消息。broker挂了,只要消息全部持久化到了硬盘上,重 ...
分类:
其他好文 时间:
2019-12-03 14:18:21
阅读次数:
127