消息队列 MQ产品使用合集之启动broker&proxy的时候会报错,该怎么办

简介: 消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。

问题一:RocketMQ部署了一个三副本namesrv的场景,ip分别为a,b,c,这是正常情况吗?

RocketMQ部署了一个三副本namesrv的场景,ip分别为a,b,c,然后我在"xxxCluster"里添加了个topic,我发现我的Java程序进行produce的时候会报错"No topic route info in name server for the topic: TopicTest"

然后我分别使用“mqadmin topicList -n a:9876 -c xxxCluster ” “mqadmin topicList -n b:9876 -c xxxCluster ”"mqadmin topicList -n c:9876 -c xxxCluster " 发现三个命令得到的结果都不一样,一个什么也不输出,一个输出初始topic列表,一个输出有TopicTest的列表。

这是正常情况吗?



参考答案:

你部的是1个namesrv,3个不同集群的broker吗?

在集群A的创建的topic只属于集群A



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/612825



问题二:RocketMQ中plain_acl.yml里的全局白名单只能写ip吗?能不能写主机名?

RocketMQ中plain_acl.yml里的全局白名单只能写ip吗?能不能写主机名?我启动broker&proxy的时候会报错

java.lang.NumberFormatException: For input string: "broker"

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:580)

at java.lang.Integer.parseInt(Integer.java:615)

at org.apache.rocketmq.acl.plain.RemoteAddressStrategyFactory$RangeRemoteAddressStrategy.analysis(RemoteAddressStrategyFactory.java:192)

at org.apache.rocketmq.acl.plain.RemoteAddressStrategyFactory$RangeRemoteAddressStrategy.(RemoteAddressStrategyFactory.java:170)

at org.apache.rocketmq.acl.plain.RemoteAddressStrategyFactory.getRemoteAddressStrategy(RemoteAddressStrategyFactory.java:71)

at org.apache.rocketmq.acl.plain.PlainPermissionManager.load(PlainPermissionManager.java:144)

at org.apache.rocketmq.acl.plain.PlainPermissionManager.(PlainPermissionManager.java:85)

at org.apache.rocketmq.acl.plain.PlainAccessValidator.(PlainAccessValidator.java:35)

at org.apache.rocketmq.broker.BrokerController.initialAcl(BrokerController.java:971)

at org.apache.rocketmq.broker.BrokerController.recoverAndInitService(BrokerController.java:836)

at org.apache.rocketmq.broker.BrokerController.initialize(BrokerController.java:792)

at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:240)

at org.apache.rocketmq.proxy.ProxyStartup.createBrokerController(ProxyStartup.java:229)

at org.apache.rocketmq.proxy.ProxyStartup.createMessagingProcessor(ProxyStartup.java:187)

at org.apache.rocketmq.proxy.ProxyStartup.main(ProxyStartup.java:79)

看起来是加载到了broker相关的字段,我的plain_acl.yml里包含broker的地方只有:

globalWhiteRemoteAddresses:

  • broker-a-s-0.broker-a-s.pscp-rocketmq.svc.cluster.local
  • broker-b-s-0.broker-b-s.pscp-rocketmq.svc.cluster.local我用4.9.8没有这个问题,有5.1.4有



参考答案:

域名不支持, 会分析是否连续的ip,或者 1.1.1.* 这种 ,



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/612818



问题三:RocketMQ5.x版本顺序消息示例注释的,这个消费者分组为顺序投递模式怎么确定?

RocketMQ5.x版本顺序消息示例注释的,“消费顺序消息时,需要确保当前消费者分组是顺序投递模式,否则仍然按并发乱序投递”。这个消费者分组为顺序投递模式怎么确定?示例说使用PushConsumer消费顺序消息,只需要在消费监听器处理即可。我按示例服务启动的时候debug,创建的是StandardConsumeService



参考答案:

我这边是在创建消费者的时候,将消费者的线程数量设为1,就能顺序消费了。

官网有说明,顺序队列的限制,同个进程下一个消费组只能有一个消费者实例对象。创建group的时候可以指定是否顺序,grpc 的客户端是以服务侧的配置为准。你创建的是顺序group,启动后就会按照顺序的方式进行消费,这个是官网的使用建议。目前我是这么处理的,一切良好,一个进程内同个Topic、N个消费组。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/612813



问题四:RocketMQ中sh mqadmin 是不是已经被删除了?

RocketMQ中sh mqadmin getAccessConfigSubCommand 是不是已经被删除了?我用这个会输出 The sub command getAccessConfigSubCommand not exist。那现在有什么办法查看broker的权限情况吗,直接去看plain_acl文件吗?



参考答案:

登到broker机器上查看



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/612809



问题五:RocketMQ99 5.1.0版本设置这个参数没有用,总说磁盘满了,如何解决?

RocketMQ中mqbroker.cmd -n localhost:9876 diskMaxUsedSpaceRatio=99 5.1.0版本设置这个参数没有用,总说磁盘满了?



参考答案:

磁盘满了看清除一些内容 或者扩容



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/612808

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
消息中间件 C语言 RocketMQ
消息队列 MQ操作报错合集之出现"Connection reset by peer"的错误,该如何处理
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
2月前
|
消息中间件 Java C语言
消息队列 MQ使用问题之在使用C++客户端和GBase的ESQL进行编译时出现core dump,该怎么办
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
7天前
|
消息中间件
手撸MQ消息队列——循环数组
队列是一种常用的数据结构,类似于栈,但采用先进先出(FIFO)的原则。生活中常见的排队场景就是队列的应用实例。在数据结构中,队列通常用数组实现,包括入队(队尾插入元素)和出队(队头移除元素)两种基本操作。本文介绍了如何用数组实现队列,包括定义数组长度、维护队头和队尾下标(front 和 tail),并通过取模运算解决下标越界问题。此外,还讨论了队列的空与满状态判断,以及并发和等待机制的实现。通过示例代码展示了队列的基本操作及优化方法,确保多线程环境下的正确性和高效性。
16 0
手撸MQ消息队列——循环数组
|
1月前
|
消息中间件 存储 Java
【揭秘】RocketMQ内部运作大揭秘:一探究竟,原来消息队列是这样工作的!
【8月更文挑战第19天】RocketMQ是一款高性能、高可用的消息中间件,在分布式系统中至关重要。它采用发布/订阅模式,支持高吞吐量的消息传递。核心组件包括管理元数据的NameServer、存储消息的Broker以及Producer和Consumer。RocketMQ支持发布/订阅与点对点两种模型,并具备复杂的消息持久化和路由机制。通过Java API示例,可轻松实现消息的发送与接收。RocketMQ凭借其出色的特性和可靠性,成为大型分布式系统首选的消息解决方案。
53 5
|
1月前
|
消息中间件 人工智能 监控
|
1月前
|
消息中间件 存储 缓存
一个用过消息队列的人,竟不知为何要用 MQ?
一个用过消息队列的人,竟不知为何要用 MQ?
75 1
|
24天前
|
消息中间件 SQL 监控
RocketMQ 5.3.0 版本中 Broker IP 配置为 IPv6 的情况
【8月更文第28天】RocketMQ 是一款分布式消息中间件,支持多种消息发布和订阅模式。在 RocketMQ 5.3.0 版本中,Broker 的配置文件 `broker.conf` 允许配置 IPv6 地址。当 Broker 的 `brokerIP1` 配置为 IPv6 地址时,会对 Broker 的启动、消息推送和状态监控等方面产生影响。本文将探讨如何在 RocketMQ 中配置 IPv6 地址,并检查 Broker 的状态。
71 0
|
2月前
|
消息中间件 Java 物联网
消息队列 MQ操作报错合集之建立连接时发生了超时错误,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
消息队列 MQ操作报错合集之建立连接时发生了超时错误,该如何解决
|
1月前
|
消息中间件 网络架构
RabbitMQ消息队列常见面试题
这篇文章总结了RabbitMQ的常见面试题,涵盖了消息模型、使用场景、实现功能、消息幂等性、顺序性、堆积和丢失的避免方法,以及推模式和拉模式的区别。
44 0
|
1月前
|
消息中间件 Java Kafka
MQ 消息队列 比较
MQ 消息队列 比较
29 0

相关产品

  • 云消息队列 MQ