Install RabbitMAQ and Erlang pits in Windows10

I need RabbitMAQ to learn Spring Boot, so I went to install RabbitMAQ. I stepped in a million potholes on the way. Ouch, it hurt like hell. It took more than a day to solve, so I wanted to take some time to record a hole I stepped in. Here wordy, but also to help the teacher propaganda, want to learn spring Boot students, you can go to see this information:

Programmer brother

The main reason to pit: my own is a conflict between the RabbitMAQ and Erlang versions. I cannot access http://localhost:15672. And then wasted a lot of time fixing other mistakes that didn’t happen.

Install RabbitMAQ and Erlang

I also failed to install it at the beginning, and found this blogger’s tutorial on the Internet (which inspired me and is also a breakthrough point of the problem) :

Blog.csdn.net/weixin_3973…

  1. Download and install Elrang (The RabbitMQ server code is written using the parallel language Erlang, which is a prerequisite for installing RabbitMQ).
    • Installation address: www.erlang.org/downloads

      Note: The version of Elrang I downloaded was 20.2. The reason will be explained later.

    • Click to enter

      I downloaded Windows 64 bit

    • Once you’ve downloaded it, click Next. The corresponding installation directory depends on the user.

    • The next step is to configure environment variables for Elrang, which I won’t mention here.

      Choose Environment Variables > Add System Variables > Create > OK

      Variable name: ERLANG_HOME

      Path: D:\tool\Erlang\erl9.2 (replace your installation path)

    • Then add %ERLANG_HOME%\bin to Path

    • To check if Elrang was installed successfully, open the command line: Windows + R, which is the icon in the lower left corner of the keyboard. Open as follows,

      successful

  2. Then download and install RabbitMAQ

    • Download address: www.rabbitmq.com/download.ht…

      The official website version is relatively new, do not download the latest version, click to enter.

      I chose version 3.7.3. I’ll explain why later.

      Install rabbitmq-server-3.2.3. exe.

    • Same as Elrangd above, all the way to Next, once installed.

    • Open the RabbitMAQ installation directory to sbin

    • Enter CMD to open the command line

      Then type rabbitmq-plugins enable rabbitmq_management to install rabbitmq_management

      Finally, go back to the RabbitMAQ installation directory sbin and click

      The result of running this

      Indicates that the server is successfully started

    • Last visit: http://localhost:15672

      The default username and password are guest.

  3. Now why did you choose Elrange 20.2 and RabbitMAQ 3.7.3

    Rabbitmq-server. bat in the RabbitMAQ installation directory sbin, I have a problem with rabbitmq-server.bat.

    bad “MBa” value: ageffcbfUsage: beam.smp.dll [flags] [ — [init_args] ] The flags are:

    -a size suggested stack size in kilo words for threads in the async-thread pool, valid range is [16-8192] -A number set number of threads in async thread pool, valid range is [0-1024] -B[c|d|i] c to have Ctrl-c interrupt the Erlang shell, d (or no extra option) to disable the break handler, i to ignore break signals -c bool enable or disable time correction -C mode set time warp mode; valid modes are: no_time_warp|single_time_warp|multi_time_warp -d don’t write a crash dump for internally detected errors (halt(String) will still produce a crash dump) -fn[u|a|l] Control how filenames are interpreted -hms size set minimum heap size in words (default 233) -hmbs size set minimum binary virtual heap size in words (default 32768) -hmax size set maximum heap size in words (default 0) -hmaxk bool enable or disable kill at max heap size (default true) -hmaxel bool enable or disable error_logger report at max heap size (default t rue) -hpds size initial process dictionary size (default 8) -hmqd val set default message queue data flag for processes, valid values are: off_heap | on_heap -K boolean enable or disable kernel poll -n[s|a|d] Control behavior of signals to ports Note that this flag is deprecated! -M memory allocator switches, see the erts_alloc(3) documentation for more info. -pc Control what characters are considered printable (default latin1)

    -P number set maximum number of processes on this node, valid range is [1024-134217727] -Q number set maximum number of ports on this node, valid range is [1024-134217727] -R number set compatibility release number, valid range [18-20] -r force ets memory block to be moved on realloc -rg amount set reader groups limit -sbt type set scheduler bind type, valid types are: -stbt type u|ns|ts|ps|s|nnts|nnps|tnnps|db -sbwt val set scheduler busy wait threshold, valid values are: none|very_short|short|medium|long|very_long. -scl bool enable/disable compaction of scheduler load, see the erl(1) documentation for more info. -sct cput set cpu topology, see the erl(1) documentation for more info. -secio bool enable/disable eager check I/O scheduling, see the erl(1) documentation for more info. -sub bool enable/disable scheduler utilization balancing, see the erl(1) documentation for more info. -sws val set scheduler wakeup strategy, valid values are: default|legacy. -swct val set scheduler wake cleanup threshold, valid values are: very_lazy|lazy|medium|eager|very_eager. -swt val set scheduler wakeup threshold, valid values are: very_low|low|medium|high|very_high. -sss size suggested stack size in kilo words for scheduler threads, valid range is [20-8192] (default 128) -sssdcpu size suggested stack size in kilo words for dirty CPU scheduler threads, valid range is [20-8192] (default 40) -sssdio size suggested stack size in kilo words for dirty IO scheduler threads, valid range is [20-8192] (default 40) -spp Bool set port parallelism scheduling hint -S n1:n2 set number of schedulers (n1), and number of schedulers online (n2), maximum for both numbers is 1024 -SP p1:p2 specify schedulers (p1) and schedulers online (p2) as percentages of logical processors configured and logical processors available, respectively -SDcpu n1:n2 set number of dirty CPU schedulers (n1), and number of dirty CPU schedulers online (n2), valid range for both numbers is [1-1024], and n2 must be less than or equal to n1 -SDPcpu p1:p2 specify dirty CPU schedulers (p1) and dirty CPU schedulers online (p2) as percentages of logical processors configured and logical processors available, respectively -SDio n set number of dirty I/O schedulers, valid range is [0-1024] -t size set the maximum number of atoms the emulator can handle valid range is [8192-2147483647] -T number set modified timing level, valid range is [0-9] -V print Erlang version -v turn on chatty mode (GCs will be reported etc) -W

    set error logger warnings mapping, see error_logger documentation for details -zdbbl size set the distribution buffer busy limit in kilobytes valid range is [1-2097151] -zdntgc time set delayed node table gc in seconds valid values are infinity or intergers in the range [0-100000000]
    |w|e>

    Note that if the emulator is started with erlexec (typically from the erl script), these flags should be specified with +.

**bad “MBa” value: ageffcbfUsage: beam.smp.dll [flags] [– [init_args]]** Bad “MBa” value: ageffcbfUsage: beam.smp.dll [flags] [– [init_args]]

groups.google.com/forum/#! MSG…

The answer is as follows:

1. Your version of Erlang does not support some run-time allocator flags 3.7.6 and later

Version used. However, a different set of flags is used on Erlang <20.2.1.

2. The easiest option is to uninstall all existing Erlang versions and then install Erlang 20.3 or 21.0 (for 3.7.7+).

If you have selected RabbitMAQ 3.7.7+ or higher, choose Erlang 20.3 or 21.0. Another way is that you choose my version, because I have not tried other versions, DO not know whether other versions can be adapted.

higher

Version used. However, a different set of flags is used on Erlang <20.2.1.

2. The easiest option is to uninstall all existing Erlang versions and then install Erlang 20.3 or 21.0 (for 3.7.7+).

If you have selected RabbitMAQ 3.7.7+ or higher, choose Erlang 20.3 or 21.0. Another way is that you choose my version, because I have not tried other versions, DO not know whether other versions can be adapted.