659441806 发表于 2015-4-29 12:45:43

如何在windows Server 2008 R2下突破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,"CPOCXC 138 46","2.2.8"},
      {sasl,"SASLCXC 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,"INETSCXC 138 49","5.8"},
      {mnesia,"MNESIACXC 138 12","4.6"},
      {stdlib,"ERTSCXC 138 10","1.18"},
      {kernel,"ERTSCXC 138 10","2.15"}]},
{os,{win32,nt}},
{erlang_version,"Erlang R15B (erts-5.9) \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
     
  (2)重启RabbitMQ服务才能正式生效
  
  (3)扩展后的最终效果如下:
页: [1]
查看完整版本: 如何在windows Server 2008 R2下突破Rabbitmq的socket限制数