消息中间件
文章平均质量分 82
ayu_programer
不积硅步,无以至千里
展开
-
面试题:为什么解决发送消息零丢失方案,一定要使用RocketMQ事务消息?
这种情况存在情况是 比如刚执行完成了订单本地事务了,还没等到你发送消息到MQ,结果你的订单系统突然崩溃了,这就导致你的订单状态可能已经修改为了“已完成”,但是消息却没发送到MQ去!o如果你要是已经完成了订单数据库更新、Redis缓存更新、ES数据更新了,结果没法送MQ呢订单系统崩溃了虽然订单数据库的操作会回滚,依然有问题,假设用户支付成功了,然后支付系统回调通知你的订单系统说,有一笔订单已经支付成功了,这个时候你的订单系统卡在多次重试MQ。事务机制复杂度提高,会导致整体性能比较差,吞吐量比较低。原创 2023-05-17 08:04:21 · 423 阅读 · 0 评论 -
面试题:RocketMQ事务消息机制的底层实现原理
rocketmq后台有定时任务,定时任务会去扫描RMQ_SYS_TRANS_HALF_TOPIC中的half消息,如果你超过一定时间还是half消息,他会回调业务系统的接口,让你判断这个half消息是要rollback还是commit。接着需要把放在RMQ_SYS_TRANS_HALF_TOPIC中的half消息给写入到原始Topic的ConsumeQueue里去,然后我们的红包系统可以就可以看到这条消息进行消费了。然后正常情况下然后业务系统按理说会从这个ConsumeQueue里获取到你写入的这个消息。原创 2023-05-15 08:18:42 · 342 阅读 · 0 评论 -
Kafka必问面试题
earliest代表从分区的开始位置读取,可能会重复读取消息,但是不会丢失,消费方一般我们肯定要自己保证幂等,另外一种latest表示从分区末尾读取,那就会有概率丢失消息。Kafka副本的之前提到过,分为Leader副本和Follower副本,也就是主副本和从副本,和其他的比如Mysql不一样的是,Kafka中只有Leader副本会对外提供服务,Follower副本只是单纯地和Leader保持数据同步,作为数据冗余容灾的作用。当消费者数量小于分区数量的时候,那么必然会有一个消费者消费多个分区的消息。原创 2022-11-27 22:21:14 · 1062 阅读 · 0 评论 -
kafka集群搭建
1 安装jdk1.8版本(这里具体安装的版本为 jdk1.8.0_261)2 搭建zookeeper集群(具体选择使用了 10.8.40.160,10.8.40.161,10.8.40.162 3台机器)2.1 下载安装从 https://zookeeper.apache.org/ 下载zookeeper-3.6.3 并分别安装到usr/local目录下2.2 指定jdk版本在 /usr/local/apache-zookeeper-3.6.3-bin/bin 目录下指定jdk的版本JAV原创 2022-03-22 14:41:43 · 2181 阅读 · 0 评论 -
kafka压测工具调研及测试
一 介绍Apache Kafka 官方提供了两个客户端性能测试脚本,它们的存放位置如下:$KAFKA_HOME/bin/kafka-producer-perf-test.sh 支持测试的性能指标包括:吞吐量(throughput)、最大时延(max-latency)、平均时延(avg-latency);kafka-consumer-perf-test.sh 同样支持吞吐量指标,还提供了一些消费端特有的指标,但没有直接提供时延信息二 使用2.1) kafka-producer-perf-test.s原创 2022-01-29 10:40:30 · 4593 阅读 · 0 评论 -
RocketMQ常见面试题
01.为什么要用RocketMq?总得来说,RocketMq具有以下几个优势:吞吐量高:单机吞吐量可达十万级可用性高:分布式架构消息可靠性高:经过参数优化配置,消息可以做到0丢失功能支持完善:MQ功能较为完善,还是分布式的,扩展性好支持10亿级别的消息堆积:不会因为堆积导致性能下降源码是java:方便我们查看源码了解它的每个环节的实现逻辑,并针对不同的业务场景进行扩展可靠性高:天生为金融互联网领域而生,对于要求很高的场景,尤其是电商里面的订单扣款,以及业务削峰,在大量交易涌入时,后端可能无法原创 2021-07-21 23:25:41 · 12144 阅读 · 2 评论