Cat使用中的一些坑

1.国外服务器连接不上Cat服务器

我们当时全球各地都有服务器,在搭建好Cat服务器后,大陆及东南亚的服务器可以正常的连接Cat,不过像欧洲、北美这种服务器缺连接不上。查看Cat客户端的日志错误如下:

[10-21 23:59:54.771] [INFO] [ChannelManager] router config changed :****:2280;
[10-21 23:59:54.771] [INFO] [ChannelManager] start connect server/****:2280
[10-21 23:59:54.871] [ERROR] [ChannelManager] Error when try connecting to /****:2280
[10-21 23:59:54.871] [INFO] [ChannelManager] Error when init CAT server /****:2280;
[10-21 23:59:54.871] [INFO] [ChannelManager] start connect server/****:2280

去找Github上找相似的问题,都说什么我的配置项有问题,我又疯狂检查配置项,很烦;

后来在官方文档中发现,在Cat官方文档中指明了,Cat是只建议在内网中进行通讯。可他也不说为什么只建议在内网中通讯;

随后想到,是否是Cat客户端源码的问题,网络连接都会设置超时时间的,随后查看Cat的源码,通过字符串搜索,定位到 Error when try connecting 错误日志是从哪里打印出来的;

最后在ChannelManager类中发现了他链接Cat服务器的代码

	private ChannelFuture createChannel(InetSocketAddress address) {
		m_logger.info("start connect server" + address.toString());
		ChannelFuture future = null;

		try {
			future = m_bootstrap.connect(address);
			future.awaitUninterruptibly(10, TimeUnit.MILLISECONDS); // 10 ms

			if (!future.isSuccess()) {
				m_logger.error("Error when try connecting to " + address);
				closeChannel(future);
			} else {
				m_logger.info("Connected to CAT server at " + address);
				return future;
			}
		} catch (Throwable e) {
			m_logger.error("Error when connect server " + address.getAddress(), e);

			if (future != null) {
				closeChannel(future);
			}
		}
		return null;
	}

我真是套他猴子,这里链接时间居然是10ms,难怪海外的连接不上;
随后反编译客户端jar包,修改时长为100,重新打包,上线,解决!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值