Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agent 序列化以及转发问题 #76

Open
andyyin opened this issue Jul 12, 2018 · 1 comment
Open

Agent 序列化以及转发问题 #76

andyyin opened this issue Jul 12, 2018 · 1 comment

Comments

@andyyin
Copy link

andyyin commented Jul 12, 2018

最近在学习 motan-go,有两个方面的问题:

1、agent 在收到请求后是反序列化,然后做负载均衡转发,这块是对整个包进行了反序列化处理,这个对性能是不是影响比较大。
2、agent 在转发时使用的是同步,不知道是不是看错了,这块是不是会导致吞吐上不去。

@dingzk
Copy link

dingzk commented Jul 16, 2018

以下是我对上面两个问题的理解和解释,希望你也确认下,如有疑问欢迎再一起讨论~
1,agent.go 中,你看Open第二个参数,proxy是true,然后你看mpro.Decode中header和meta是解的因为这里需要知道一些版本信息reqid等,内容很小,对性能没有大的影响,另外meta中包含service和分组信息,要不然怎么去找到cluster呢?你再看body只是简单的读取,并没有解开。在ConvertToRequest中判断是proxy的时候也没有把body解开,不是proxy的时候才把body解开的,比如你的程序直接作为client。
2,agent在转发的时候,accept是阻塞的(见Open第一个参数),但是继续往下读到m.run()调用了handleConn方法,这里是go协程,处理连接是协程。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants