canal消耗服务器性能吗,CanalServer 是否存在性能瓶颈

canal上部署了51个实例,client(消费所有的实例)与canal部署在同一台服务器上,并且服务器上无其他服务。

client实现

初始化连接

// 根据ip,直接创建链接,无HA的功能

CanalConnector connector = CanalConnectors.newSingleConnector(

new InetSocketAddress(hostIp, port), destination.generateDestination(), "", "");

获取数据

long t1 = System.currentTimeMillis();

Message message = connector.getWithoutAck(10240, 1000L, TimeUnit.MILLISECONDS); //以毫秒为单位

long t2 = System.currentTimeMillis();

long batchId = message.getId();

logger.info("read batchId=[{}], time=[{}]ms", batchId, (t2 -t1));

问题

发现部分实例执行getWithoutAck方法的耗时大于设置值(1000ms),大概在2000ms,数据量大时耗时也随之放大。

下面是client一次请求的分析:

client发送请求(t1)

server收到请求(t2)

embeddedServer.getWithoutAck()完成,并向client返回数据(t3=10:40:34)

client收到数据(t4=10:40:37)

根据日志可知,t4-t1=5000ms,而t4-t3=3000ms,而getWithoutAck耗时为1000ms,因此可以推断出t2-t1=5000-3000-1000=1000ms。

因此,是否可以说明client与CanalServer之间的通信存在耗时?但是这个耗时在一般情况下是忽略不计的!

如果是CanalServer 的性能瓶颈,能否优化?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值