Q1:怎么解决remote too much exception的问题呢?

A:主要是的客户端发送的TPS太高,达到了broker的瓶颈。

Q2: broker无法写入store.log的日志报错,报异常如下:

2018-12-17 14:09:37 WARN StoreScheduledThread1 - disk space will be full soon, but delete file failed.
2018-12-17 14:09:42 WARN SendMessageThread_1 - message store is not writeable, so putMessage is forbidden 16
2018-12-17 14:09:47 INFO StoreScheduledThread1 - physic disk maybe full soon, so reclaim space, 0.9246850495308918

R:物理文件不能无限制的写入磁盘,当磁盘空间达到阈值时,不再接受消息,broker打印出日志,消息发送失败。

A:扩容 或者根据业务缩短commitlog在磁盘的保存时间。或者调大diskMaxUsedSpaceRatio = 75的默认值到90。

Q3:如果在多topic下,并发对多个partition文件写入,相当于随机io,所以性能不好,那rocketmq也会对多个consumerqueue写入,为什么就不会出现性能问题?

A:kafka与rocketmq的存储区别在于:kafka是每个topic下会对应好几个.log文件;而rocketmq则是将所有的topic消息都写在了一个commitlog里。当topic很多时,kafka下的.log文件就会很多,而commitlog数量则不会受到影响(受影响的是consumequeue,但是consumequeue文件大小很小,基本上都是在内存里,不需要访问磁盘)。

在topic很少时,kafka是顺序读,rocketmq是随机读,但是rocketmq基于os的pagecache,所以性能不会慢于顺序读。
在topic很多时,kafka文件很多,就变成了随机读,性能会下降。rocketmq依然不受影响。

kafka内存不足时会将已经缓存的数据swap到磁盘,同时再从磁盘读取新数据。增加了磁盘IO,性能就降低了。
但是rocketmq 会尽可能利用OS的磁盘IO调度算法(NOOP)以及PageCache,尽可能的减少磁盘IO。

Q4:中通使用rocketmq的消息 落盘方式,以及主从同步方式,是sync还是async呢?还是说根据场景不同的集群选择 不同的组合?

A: 中通目前采用异步刷盘方式,不保证消息不丢失,由应用去重新发送;对于特殊业务要起高的集群,会采用同步刷盘的方式,保证消息不丢失;目前集群仍采用master-slave的架构,还未采用dledger集群架构;

其实如果rocketMQ真的实现exactly once,在用的时候,肯定也会把幂等逻辑加上去。设计方案的时候,一定要认为中间件是可能出问题的,而事实上,每个软件都可能出问题。

不能要求 rockemq 性能极高,又不允许数据丢失的可能,这是权衡,中间件,业务完美配合,协作。RocketMQ 创造一位大佬说的一句话,例如RocketMQ如何实现不会重复消费这个难题,他的解决方法是不解决。

Q5:如果直接使用公网的rocketmq,怎么保证数据安全?

A:  rocketmq是支持ssl的

Q6:如果在正常消费的过程中,增加或减少了topic队列数,还能够正常消费吗?会出现问题?

A:在消费过程中修改broker队列会导致消费重新进行负载,进而可能会导致有部分消息重复消费。

Q7:RocketMQ会不会出现,同一条消息并发到相同的节点进行消费,还是说可能会有两条一样的消息,但是先后消费?

A:一般不会出现同一条消息并发到相同节点进行消费,无论是集群模式还是广播模式。同一时间只会发送到一个queue,但是在消息负载的时候会有可能发生重复消费的可能性的,业务要做好幂等性的。其实只要没有不停机水平扩容的问题,一般正常情况是是不会重复消费的哈,但是是存在这种情况的,防止重复消费的问题还是要业务方自己去解决的。

Q8: RocketMQ从哪个版本开始支持了自动选择Master,即支持DLedger 集群模式?

A:从4.4.0版本开始。

Q9:RocketMQ支持queue粒度数据迁移么? 从一组broker任意迁移另外一组,比如broker坏了的情况下。

A:目前不支持,因为数据都混在 一个 commitlog 文件中,自己可以通过改造实现。

RocketMQ实战疑问和原理解答(更新至Q9)相关推荐

  1. RocketMQ实战与原理---安装、部署及简单应用

    RocketMQ实战与原理 第一章  安装.部署及简单应用 1. 安装 1.1 下载RocketMQ 2. 部署 2.1 部署nameserver 2.2 部署broker 2.3 新增Topic 3 ...

  2. RocketMQ实战与原理解析

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  3. Redis实战和核心原理详解(4)Redis存储Key的一种设计实现方式:模式匹配

    注意:此方案仅为演示Redis 的使用,正式生产环境切勿使用! 相关文章: Redis实战和核心原理详解(1)Centos7.0下安装Redis 5.0详细过程和使用常见问题 Redis实战和核心原理 ...

  4. RocketMQ实战(四)

    前言 这将是RocketMQ实战系列的最后一篇文章,该系列的文章列表如下: <RocketMQ实战(一)> <RocketMQ实战(二)> <RocketMQ实战(三): ...

  5. 学习DVB知识的疑问与自我解答

    ---------------------------------------------------------------------------------------------------- ...

  6. 《RocketMQ实战专栏》为什么是你学习RocketMQ的最佳资料

    <RocketMQ实战与原理>专栏简介 简介 RocketMQ业界主流的消息中间件之一,承载公司核心业务消息的流转.对RocketMQ核心原理的理解与最佳实践成了开发与运维同学的必备技能. ...

  7. RocketMQ——消息文件过期原理

    原文:http://jaskey.github.io/blog/2017/02/16/rocketmq-clean-commitlog/ RocketMQ--消息文件过期原理 2017-02-16 T ...

  8. UDP 构建p2p打洞过程的实现原理(持续更新)

    UDP 构建p2p打洞过程的实现原理(持续更新) 发表于7个月前(2015-01-19 10:55)   阅读(433) | 评论(0) 8人收藏此文章, 我要收藏 赞0 8月22日珠海 OSC 源创 ...

  9. RocketMQ实战--大数据平台技术栈06

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的RocketMQ! 作者丨张丰哲 www.jianshu.com/p/3afd610a8f7d 阿里巴巴有2大核心的分布式技术,一个是O ...

最新文章

  1. 远程办公让企业生产力大打折扣?那是你的打开方式错了
  2. 智能算法PSO的图例分析
  3. C++ File IO
  4. fekit前端代码模块化工具
  5. office word中利用宏编程批量调节图片的亮度和对比度
  6. kali mysql停止服务器_从零开始:手把手教你黑客入门攻破服务器并获取ROOT权限...
  7. 【学习记录】Sql中存储过程的
  8. 用AI实现隔墙“透视”,准确率达97%,这家中国公司研究入选CVPR
  9. 制作WIN_XP无人值守光盘
  10. DBConvert Studio - 数据库迁移和同步 - Crack
  11. 主观赋权法(AHP)和客观赋权法(熵值法)组合权重法
  12. 英语名词复数s的发音规则
  13. Max骨骼沿样条线运动——中国龙绑定相关问题
  14. 视频号小店新订单如何实时同步企业微信
  15. CTFshow-卷王杯-简单的re(复现)
  16. 深入解析String intern
  17. 【离散数学】阿贝尔群和循环群编程题
  18. Samba客户端工具
  19. 微信好友信息统计-图、词云和热图
  20. java 中的socket_Java中Socket用法详解

热门文章

  1. python中的is None和==None
  2. 硬件工程师都没人干了_将软件带到硬件上,到底意味着什么?
  3. Java利用Set集合去重复
  4. mysql slow query_mysql slow query
  5. Matlab不同版本之间中文注释乱码的解决方法
  6. 基于单片机的篮球计分器系统设计(#0456)
  7. Windows10安装Internet Information Services(IIS)管理器
  8. 模板模式template
  9. Hadoop集群塔建常见bug
  10. JOOQ学习笔记:分页、排序、字段重命名的写法