不知道大家有没有研究过 GRPC 框架,我想知道里面建立 socket 是怎么建立的,我想修改这部分代码,不知道有没有大牛能指导以下?

2018-09-06 09:08:28 +08:00
 Kellerman
3414 次点击
所在节点    问与答
15 条回复
jetyang
2018-09-06 09:29:32 +08:00
不是大牛,刚好当前项目用到 gRPC。你用什么语言? gRPC Java 是在 Netty 上封装的,不需要写原生的 socket ; C/C++语言是原生的,Python、Ruby、PHP 都是在 C 语言版本上包了一层壳
koolob
2018-09-06 09:39:36 +08:00
grpc 用的是 http2。
Kellerman
2018-09-06 09:42:21 +08:00
@jetyang 哇,快哭了,终于有人可以讨论这个问题了,目前组里就我一个人研究这个,都没有人能讨论,我用的是 C++,主要是源代码看我的晕乎,而且没有文档可以参考,我不知道它具体的 socket 建立过程,大哥能不能详细讨论一下?
Kellerman
2018-09-06 09:42:52 +08:00
@koolob http2 不需要建立 socket 吗?我是想对 socket 层做修改!
coderscala
2018-09-06 09:53:47 +08:00
为什么要修改? 你是打算修改协议还是打算在会话层做优化呢?在没有完全理解的情况下贸然修改这样合适吗? gRPC 只是一种长链接 RPC 协议封装,与其对一个不了解的项目进行修改,还不如自己动手写一套 RPC 协议(如果是个人的话,当然不建议)
Kellerman
2018-09-06 09:59:25 +08:00
@coderscala 没有,我只是想修改一下他的 socket 类型然后看看性能,的确没有完全理解,但是单修改这一部分应该问题不大吧。
coderscala
2018-09-06 10:12:44 +08:00
你是说要把 tcp 换成 udp?这样做显然不合适,你改了 server,client 也得改,对应的工具链也得改。如果单纯的只是性能测试,你不应该尝试去 hack,这种做法会破坏一个完善的体系,你们的维护成本也会变得异常的高,商业公司肯定不会这么做。
rockyou12
2018-09-06 10:12:44 +08:00
@Kellerman 说实话你连 http2 协议都没搞懂就想在 4 层上做优化实在是不自量力……建议先学下 http2 协议
coderscala
2018-09-06 10:17:58 +08:00
贸然的去改 4 层或者 5 层肯定是不合适的
Kellerman
2018-09-06 10:19:30 +08:00
@rockyou12 是的我没研究过 http2,也谢谢你的建议,不过我没明白四层上做的改变跟上层使用的协议有什么关系,如果是使用 tcp 的 socket 建立好了,对上层来说有什么区别?其实我也不是做优化,我只是想看一下 grpc 本身在不同 socket 下的性能。谢谢。
Kellerman
2018-09-06 10:21:29 +08:00
@coderscala 不是 tcp 换成 udp,是把 family 类型改一下,我们是研究型部门,不是做成熟应用的,只是想看一下不同 family 类型的 grpc 性能。
Hellert
2018-09-06 10:52:09 +08:00
jetyang
2018-09-06 16:48:24 +08:00
@Kellerman 没时间,也没能力给你修改建议
Kellerman
2018-09-10 10:59:24 +08:00
@Hellert 这是什么?
Kellerman
2018-09-10 10:59:45 +08:00
@jetyang 也很谢谢啦!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/486599

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX