> 文章列表 > Server 2008下突破Rabbitmq的socket限制数

Server 2008下突破Rabbitmq的socket限制数

Server 2008下突破Rabbitmq的socket限制数

利用Rabbitmq进行各类业务系统(如SAP、OA、EHR、KMS、访客系统、AD等)的集成和接口,已有很长一段时间了,初步建立了企业服务总线(ESB)。随着新业务系统的不断接入到ESB中,在实践中也发现了一些问题并总结了一些经验,下文主要介绍如何在windows下突破Rabbitmq的socket限制数,以便为需要使用的同学分享一些实际经验,后续将陆续分享一些技术经验。

1、 RabbitMQ_Limits文档说明

Status of node rabbit@MYSERVER ...

[{pid,6604},

{running_applications,

[{rabbitmq_management,\"RabbitMQ Management Console\",\"2.8.2\"},

{xmerl,\"XML parser\",\"1.3\"},

{rabbitmq_management_agent,\"RabbitMQ Management Agent\",\"2.8.2\"},

{amqp_client,\"RabbitMQ AMQP Client\",\"2.8.2\"},

{rabbit,\"RabbitMQ\",\"2.8.2\"},

{os_mon,\"CPO CXC 138 46\",\"2.2.8\"},

{sasl,\"SASL CXC 138 11\",\"2.2\"},

{rabbitmq_mochiweb,\"RabbitMQ Mochiweb Embedding\",\"2.8.2\"},

{webmachine,\"webmachine\",\"1.7.0-rmq2.8.2-hg\"},

{mochiweb,\"MochiMedia Web Server\",\"1.3-rmq2.8.2-git\"},

{inets,\"INETS CXC 138 49\",\"5.8\"},

{mnesia,\"MNESIA CXC 138 12\",\"4.6\"},

{stdlib,\"ERTS CXC 138 10\",\"1.18\"},

{kernel,\"ERTS CXC 138 10\",\"2.15\"}]},

{os,{win32,nt}},

{erlang_version,\"Erlang R15B (erts-5.9) [smp:4:4] [async-threads:30]n\"},

{memory,

[{total,22807872},

{processes,8644230},

{processes_used,8644210},

{system,14163642},

{atom,495069},

{atom_used,485263},

{binary,665136},

{code,9611946},

{ets,877468}]},

{vm_memory_high_watermark,0.20002174609205853},

{vm_memory_limit,858993459},

{disk_free_limit,4294500352},

{disk_free,26035458048},

{file_descriptors,

[{total_limit,924},

{total_used,24},

{sockets_limit,829}, 默认的限制sockets数为829

{sockets_used,22}]},

{processes,[{limit,1048576},{used,388}]},

{run_queue,0},

{uptime,72329}]

1、 如何在windows下扩展sockets数量,提高吞吐量?

(1)、需要在windows系统环境变量中设置erlang的ERL_MAX_PORTS

Server 2008下突破Rabbitmq的socket限制数

(2)重启RabbitMQ服务才能正式生效

Server 2008下突破Rabbitmq的socket限制数

(3)扩展后的最终效果如下:

Server 2008下突破Rabbitmq的socket限制数