[问题记录]-技术学习-RocketMQ-全球集群部署问题
一:问题场景
公司在部署全球的RocketMQ的时候,遇到亚洲区的服务器往欧洲区的RocketMQ发送消息失败的情况。
总共有出现两个问题
1:No Topic Route Info
org.apache.rocketmq.client.exception.MQClientException: No route info for this topic, Producer_Test
For more information, please visit the url, http://rocketmq.apache.org/docs/faq/
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendSelectImpl(DefaultMQProducerImpl.java:920)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:891)
at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:409)
2:connect to <xxx.xxx.xxx.xxx:10911> failed
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <xxx.xxx.xxx.xxx:10911> failed
at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:388)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:351)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:335)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:298)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:696)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendSelectImpl(DefaultMQProducerImpl.java:914)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:891)
三:解决思路
1:问题一通过查看注册上的nameSrvAddr发现配置的host没有注册在/etc/hosts下面。导致无法解析地址,运维直接把地址改成IP后解决。
但理论上在/etc/hosts中配置上相应的hosts信息也是可以的。
2:问题2是报 brokerIP:brokerPort 连接不上。那么说明broker已经通过nameSrv成功寻址到了,只是寻址到的broker无法正常连接。
通过查看启动配置文件和broker的日志发现,注册的brokerIP是集群内网地址。那么问题就变成了服务器之间的通信问题了。
然后想到全球之间的IDC之间应该是没有互相通信的。问了一下运维,确实如此。亚洲区的集群和欧洲区的集群之间是没有通信的。
因此把broker配置文件里面的brokerIP改成 外网地址,重启一下,测试成功。
[问题记录]-技术学习-RocketMQ-全球集群部署问题的更多相关文章
- Quartz学习笔记:集群部署&高可用
Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...
- kafka学习总结之集群部署和zookeeper
1. 集群部署 kafka集群的瓶颈主要在网络和磁盘上:kafka依赖于zookeeper,zookeeper集群的节点采用奇数个,3个节点允许一个节点失败,5个节点允许2个节点失败. 图 1 ka ...
- Elasticsearch学习总结 (Centos7下Elasticsearch集群部署记录)
一. ElasticSearch简单介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticse ...
- rocketmq学习(二) rocketmq集群部署与图形化控制台安装
1.rocketmq图形化控制台安装 虽然rocketmq为用户提供了使用命令行管理主题.消费组以及broker配置的功能,但对于不够熟练的非运维人员来说,命令行的管理界面还是较难使用的.为此,我们可 ...
- Centos6.9下RabbitMQ集群部署记录
之前简单介绍了CentOS下单机部署RabbltMQ环境的操作记录,下面详细说下RabbitMQ集群知识,RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言, ...
- RocketMQ集群部署记录
RocketMQ集群部署记录 #引用 https://cloud.tencent.com/developer/article/1147765 一.RocketMQ基础知识介绍 A ...
- RocketMQ的高可用集群部署
RocketMQ的高可用集群部署 标签(空格分隔): 消息队列 部署 1. RocketMQ 集群物理部署结构 Rocket 物理部署结构 Name Server: 单点,供Producer和Cons ...
- Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)
文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...
- RocketMQ 简单梳理 及 集群部署笔记【转】
一.RocketMQ 基础知识介绍Apache RocketMQ是阿里开源的一款高性能.高吞吐量.队列模型的消息中间件的分布式消息中间件. 上图是一个典型的消息中间件收发消息的模型,RocketMQ也 ...
随机推荐
- MYSQL中的数值型数据类型与字符串类型
/* 数值型数据类型主要用来存储数字,包含的类型有: TINYINT.SMALLINT.MEDIUMINT. INT(INTEGER). BIGINT TINGINT占1个字节,SMALLINT占2个 ...
- Solidworks如何导入和使用模板文件
将模板文件拷贝到Solidworks目录(可以是任意目录) 点击工具-选项-文件位置,然后把文件夹添加进去 新建文件的时候选择高级模式,然后就会看到已经出现了我们导入的模板文件 ...
- Cocos2d-HTML5搭载nodejs express3
源代码 已经上传到github Cocos2d-HTML5 入门第一天搭载了express3 server.Cocos2d-html5配置改了不少路径,改得有点乱. 今天又重搭了一遍server,力求 ...
- linux 网络编程-基础篇01
#Socket简介 是一个编程接口是一种特殊的文件描述符(everything in Unix is a file)并不仅限于TCPIP协议面向连接(Transmission Control Prot ...
- JSP-Runoob:JSP 调试
ylbtech-JSP-Runoob:JSP 调试 1.返回顶部 1. JSP 调试 要测试/调试一个JSP或servlet程序总是那么的难.JSP和Servlets程序趋向于牵涉到大量客户端/服务器 ...
- openstack封装待调试
- IDEA Spark程序报错处理
错误一: // :: ERROR Executor: Exception ) java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Prod ...
- 腾讯云SSL证书管理
2018050608010400y5mbx15awnpwxfhdmd7zqet1i9dzaqkvb6lxzosi4qq5ezbr
- PCB MS SQL 存储过程(CLR) 实现Json转DataTable表的方法
一.准备需转为DataTable的json字符串 原json字符串数据 [{"TechName":"ECN","TechNo":" ...
- PCB Genesis 无需启动Xmanager图形窗口运行脚本 实现方法
从事PCB工程行业的都知道,启动Genesis需2个exe程序(Xmanager.exe与get.exe)需一起启动才可以打开我们熟悉的软件, 而Xmanager是图形窗口是给用户UI交互使用的,如果 ...