首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >netty通道和线程与eventLoop

netty通道和线程与eventLoop
EN

Stack Overflow用户
提问于 2018-06-01 06:19:23
回答 1查看 1.1K关注 0票数 0

请说明请求、线程、事件循环、服务器通道和客户端通道之间的关系,当将netty服务器和netty客户端连接起来制作代理时。在开始之前,我想对于每个请求,netty服务器将从eventloop中获取一个辅助线程,以及一个channel (绑定到一个工作线程,并从线程池中获得有限的对象it )来处理这个入站消息,并将其发送到来自netty客户机的出站channel。此后,可能的服务器channel是有限的,而客户机channel是无限的(因为出站端口是随机选择的)。不过,我的意见是:

  1. 入站通道和出站通道都不受限制。
  2. 有时不同的请求共享相同的入站通道,有时则不共享。

当教程谈到使用netty作为代理时,他们总是说服务器(Serverbootstrap)中使用的事件循环可以用来创建客户端(bootstrap)来保存线程重载。这是什么意思?当客户端和服务器共享相同的事件循环时,它们本质上共享什么?我对此很感兴趣,因为当客户端以异步方式运行时,我不知道如何将响应消息返回到它的原始通道。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-01 09:44:50

所以你问了很多问题,我会尽力回答所有这些.

1)入站和出站通道的限制需要由您自己实现,或者您在您使用的操作系统设置的限制上进行中继(这是大多数情况下每个进程可以打开的文件描述符的数量)。

2)通道表示连接,因此根据所使用的协议,多个请求/响应可能共享相同的连接。例如,HTTP保持活动是可能的,这是HTTP/1.1的默认设置

为服务器和客户端共享相同的EventLoop允许使用相同的线程处理两者,这意味着无需上下文切换,您可以在两者之间传输数据。如果您构建了类似于代理的东西,这一点尤其重要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50637176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档