Ray

Results 188 comments of Ray

对象池的互斥模型对高并发影响非常大,高并发场景下链接会维持在maxconnection。共享对象池对高并发不敏感,2-3个链接已经可以提供很高的并发了(1k大小,2-3Wqps)

可以参考[这里]( https://github.com/weibocom/motan/wiki/zh_quickstart#%E4%BD%BF%E7%94%A8opentracing)

有可能是网络原因,也有可能是client端因超时等原因关闭了链接

OpenTracingFilter的逻辑是: 在client端发起调用时把当前span(如果没有span时新建) inject到motan的attachment中。 在server端处理请求时,把attachment中的trace信息extract出来。这时会建立新的span。 所以一次远程调用会新建2个span。 你看span的name,teacherapi和studentapi各两个span这个没什么问题。 如果想了解rpc中span的传递流程,可以debug OpenTracingFilter的filter方法

spanname是有group+interface+method组成的, saveteacher和savestudent这两个方法不是各有两个span吗?

因为调用student的行为是在teacher service发起的,所以这个span是在teacher service侧创建的。 可以debug断点一下BraveSpan的构造方法和finish方法,这样会比较容易看清span的创建和结束过程。

@aqiangsoft 后续版本会对OT的api进行升级,并支持kind等属性

这个可能是为了方便其他协议在motan协议上进行传输吧。因为保持兼容性的原因,motan1协议中一直保持这种编码方式。 在motan2协议中已经去掉了这第二层的header

NettyChannelHandler中channel exceptionCaught时的行为是log异常日志、断开链接,这个是预期的行为。 除魔数异常外,遇到数据读取异常(长度错误)、数据超长等异常的期望行为都是记录异常、断开链接,这些都是统一由NettyChannelHandler的hannel exceptionCaught处理的