erlang如何有效地监视大量的并发连接

erlang如何有效地监视大量的并发连接

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

阅读erlang一些开源web框架RabbitMQ、Ranch,他们使用多个进程在同一时间accept一socket。以这样的方式,使socketport监控共享很多其他的机会调度工作,但,在erlang在,socket接受一个新的连接之后,假设有一个过程,你要处理的消息,调用gen_tcp:controlling_process(Socket, Pid)。

所以问题来了,erlang多个进程同一时候监听一个socket安全吗?

这样的方式在早期的erlang是不安全的。但R11B03 版本号之后,erlang做了改进,同意多个进程同一时候监听同一个socket。

erlang R11B03 更新日志

OTP-6416 gen_tcp now allows for several processes to issue accept calls to the same listen-socket simultaniously. The different accepting processes will get connected sockets on a first-come-first-served basis.

当多个进程同一时候accept一个socket。erlang 内部将使用队列保存acceptor信息,以先来先服务的原则将新的连接关联到acceptor,再给acceptor投递消息 {inet_async, L, Ref, Result}。

详细看\erts\emulator\drivers\common\inet_drv.c 的 tcp_inet_ctl 函数,erlang对socket的处理都集中在inet_drv.c

erlang协调{backlog, N}。听好了新的连接

backlog这是erlang设置socket等待连接队列。

N队列的长度,默认值5,显然太小

参考:

http://blog.csdn.net/mycwq/article/details/27108911

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117810.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月30日 下午9:00
下一篇 2021年12月30日 下午10:00


相关推荐

  • 融资超12亿美金!Kimi估值翻倍破百亿,阿里腾讯为何联手押注?

    融资超12亿美金!Kimi估值翻倍破百亿,阿里腾讯为何联手押注?

    2026年3月12日
    2
  • 虚拟机桥接模式怎么都连不上网(桥接模式下不能连校园网)[通俗易懂]

    虚拟机桥接模式怎么都连不上网(桥接模式下不能连校园网)[通俗易懂]虚拟机桥接失败的坑——桥接模式下不能连校园网问题描述这天下午,我在将树莓派采集到的图片拷贝到虚拟机Ubuntu上的时候,发现用NAT模式根本ping不通虚拟机。所以就想配个桥接模式嘛…然后就陷入了一个坑——折腾了四个多小时的坑。。。搞了半天,发现怎么桥接都连接不上网,ping都ping不通,网上也找了好多帖子,浏览量7、8W的帖子都翻烂了还是没用。嘤嘤嘤…网上有说安装包没卸载干净的、也有说要把桥接改成自动的,VMware卸了装,装了卸,然并卵。。。问题原因原因嘛,说出来都丢人,就是——桥接模式下

    2022年5月18日
    54
  • 打赏图片,怎么在csdn上上传图片,并添加到自定义栏目中[通俗易懂]

    打赏图片,怎么在csdn上上传图片,并添加到自定义栏目中[通俗易懂]打赏图片,怎么在csdn上上传图片,并添加到自定义栏目中

    2022年4月23日
    34
  • 理解IaaS、SaaS、paas的含义及区别

    理解IaaS、SaaS、paas的含义及区别理解 IaaS SaaS paas 的含义及区别你一定听说过云计算中的三个 高大上 的你一定听说过云计算中的三个 高大上 的概念 IaaS PaaS 和 SaaS 这几个术语并不好理解 不过 如果你是个吃货 还喜欢披萨 这个问题就好解决了 好吧 其实你根本不是一个吃货 之所以自我标榜为吃货 其实是为了收获赞叹式的夸奖 吃货还这么瘦 好羡慕啊 或者 总得给伦家的微丰找个像样的理由 一个 吃货 是怎样

    2026年3月10日
    2
  • 火狐的Http请求插件的安装和使用[通俗易懂]

    火狐的Http请求插件的安装和使用[通俗易懂]火狐有一个http请求插件,安装之后就可以用它来测试各种http请求了(GET/POST/PUT/DELETE)。安装步骤如下:1、打开火狐的附加组件管理器2、在左边菜单栏选择插件3、在搜索栏搜索httpRequest4、选择并安装,然后重启浏览器5、以上步骤完成后,在浏览器右上角就已经出现该插件了6、点击它即可打开,然后就可以模拟http请求了…

    2022年6月15日
    73
  • Jenkins安装_jenkins sonar

    Jenkins安装_jenkins sonar前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

    2022年7月31日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号