赞
踩
下载 erlang 和 rabbitMq
ERLANG_HOME
D:\erl8.2
path添加%ERLANG_HOME%\bin;
cmd下用erl -version检测是否配置成功
RabbitMQ Server安装包下载:http://www.rabbitmq.com/download.html
配置环境变量
RABBIT_HOME
D:\RabbitServer\rabbitmq_server-3.6.6
path添加%RABBIT_HOME%\sbin;
cmd下进入RabbitMQ Server目录下的sbin目录,用rabbitmqctl status检测RabbitMQ是否配置成功
1、官方提供的一个web管理工具(rabbitmq_management)
http://www.rabbitmq.com/management.html
2、安装了Rabbitmq后,默认也安装了该管理工具,执行命令即可启动
rabbitmq-plugins enable rabbitmq_management(先定位到rabbitmq安装目录)
3、启动后,直接在浏览器地址输入: http://localhost:15672/ 账号密码都是:guest ;
4、如果无法在web页打开管理界面,则继续按照以下方式操作:
使用管理员打开cmd执行此命令:net stop RabbitMQ && net start RabbitMQ
5、重新打开http://localhost:15672/ ,你会发现管理页面出来了。
有两个目录,一个是安装目录,还有一个是输出目录,在输出目录的下面新建一个 rabbitmq.config文件即可。ps:我的版本是3.9.11
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.9.11\etc\rabbitmq 安装目录
C:\Users\Administrator\AppData\Roaming\RabbitMQ 输出目录
- [{
-
- rabbit,
-
- [{
-
- tcp_listeners,
-
- [{"0.0.0.0",5672}]
-
- }]
-
- }, {
-
- rabbitmq_management,
-
- [{
-
- listener,
-
- [
-
- {port,15672},
-
- {ip,"0.0.0.0"},
-
- {ssl,false}
-
- ]
-
- }]
-
- }].
其次,修改了配置文件后,
rabbitmq-service stop
rabbitmq-service remove
rabbitmq-service install
rabbitmq-service start
5. . 如果config有问题,服务是启动不起来的,而且错误信息也是很难发现的,我最先就是那个端口后面那个逗号没有去掉,结果启动出错,又不知道错误原因,很难排查。
附:配置文件(这个太多,直接用上面的就行)
- %% -*- mode: erlang -*-
- %% ----------------------------------------------------------------------------
- %% RabbitMQ Sample Configuration File.
- %%
- %% See http://www.rabbitmq.com/configure.html for details.
- %% ----------------------------------------------------------------------------
- [
- {rabbit,
- [%%
- %% Network Connectivity
- %% ====================
- %%
-
- %% By default, RabbitMQ will listen on all interfaces, using
- %% the standard (reserved) AMQP port.
- %%
- %% {tcp_listeners, [5672]},
-
- %% To listen on a specific interface, provide a tuple of {IpAddress, Port}.
- %% For example, to listen only on localhost for both IPv4 and IPv6:
- %%
- %% {tcp_listeners, [{"127.0.0.1", 5672},
- %% {"::1", 5672}]},
-
- %% SSL listeners are configured in the same fashion as TCP listeners,
- %% including the option to control the choice of interface.
- %%
- %% {ssl_listeners, [5671]},
-
- %% Number of Erlang processes that will accept connections for the TCP
- %% and SSL listeners.
- %%
- %% {num_tcp_acceptors, 10},
- %% {num_ssl_acceptors, 1},
-
- %% Maximum time for AMQP 0-8/0-9/0-9-1 handshake (after socket connection
- %% and SSL handshake), in milliseconds.
- %%
- %% {handshake_timeout, 10000},
-
- %% Log levels (currently just used for connection logging).
- %% One of 'debug', 'info', 'warning', 'error' or 'none', in decreasing
- %% order of verbosity. Defaults to 'info'.
- %%
- {log_levels, [{connection, error}, {channel, error}]}
-
- %% Set to 'true' to perform reverse DNS lookups when accepting a
- %% connection. Hostnames will then be shown instead of IP addresses
- %% in rabbitmqctl and the management plugin.
- %%
- %% {reverse_dns_lookups, true},
-
- %%
- %% Security / AAA
- %% ==============
- %%
-
- %% The default "guest" user is only permitted to access the server
- %% via a loopback interface (e.g. localhost).
- %% {loopback_users, [<<"guest">>]},
- %%
- %% Uncomment the following line if you want to allow access to the
- %% guest user from anywhere on the network.
- %% {loopback_users, []},
-
- %% Configuring SSL.
- %% See http://www.rabbitmq.com/ssl.html for full documentation.
- %%
- %% {ssl_options, [{cacertfile, "/path/to/testca/cacert.pem"},
- %% {certfile, "/path/to/server/cert.pem"},
- %% {keyfile, "/path/to/server/key.pem"},
- %% {verify, verify_peer},
- %% {fail_if_no_peer_cert, false}]},
-
- %% Choose the available SASL mechanism(s) to expose.
- %% The two default (built in) mechanisms are 'PLAIN' and
- %% 'AMQPLAIN'. Additional mechanisms can be added via
- %% plugins.
- %%
- %% See http://www.rabbitmq.com/authentication.html for more details.
- %%
- %% {auth_mechanisms, ['PLAIN', 'AMQPLAIN']},
-
- %% Select an authentication database to use. RabbitMQ comes bundled
- %% with a built-in auth-database, based on mnesia.
- %%
- %% {auth_backends, [rabbit_auth_backend_internal]},
-
- %% Configurations supporting the rabbitmq_auth_mechanism_ssl and
- %% rabbitmq_auth_backend_ldap plugins.
- %%
- %% NB: These options require that the relevant plugin is enabled.
- %% See http://www.rabbitmq.com/plugins.html for further details.
-
- %% The RabbitMQ-auth-mechanism-ssl plugin makes it possible to
- %% authenticate a user based on the client's SSL certificate.
- %%
- %% To use auth-mechanism-ssl, add to or replace the auth_mechanisms
- %% list with the entry 'EXTERNAL'.
- %%
- %% {auth_mechanisms, ['EXTERNAL']},
- %% The rabbitmq_auth_backend_ldap plugin allows the broker to
- %% perform authentication and authorisation by deferring to an
- %% external LDAP server.
- %%
- %% For more information about configuring the LDAP backend, see
- %% http://www.rabbitmq.com/ldap.html.
- %%
- %% Enable the LDAP auth backend by adding to or replacing the
- %% auth_backends entry:
- %%
- %% {auth_backends, [rabbit_auth_backend_ldap]},
- %% This pertains to both the rabbitmq_auth_mechanism_ssl plugin and
- %% STOMP ssl_cert_login configurations. See the rabbitmq_stomp
- %% configuration section later in this file and the README in
- %% https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl for further
- %% details.
- %%
- %% To use the SSL cert's CN instead of its DN as the username
- %%
- %% {ssl_cert_login_from, common_name},
-
- %% SSL handshake timeout, in milliseconds.
- %%
- %% {ssl_handshake_timeout, 5000},
-
- %% Password hashing implementation. Will only affect newly
- %% created users. To recalculate hash for an existing user
- %% it's necessary to update her password.
- %%
- %% {password_hashing_module, rabbit_password_hashing_sha256},
- %% Configuration entry encryption.
- %% See http://www.rabbitmq.com/configure.html#configuration-encryption
- %%
- %% To specify the passphrase in the configuration file:
- %%
- %% {config_entry_decoder, [{passphrase, <<"mypassphrase">>}]}
- %%
- %% To specify the passphrase in an external file:
- %%
- %% {config_entry_decoder, [{passphrase, {file, "/path/to/passphrase/file"}}]}
- %%
- %% To make the broker request the passphrase when it starts:
- %%
- %% {config_entry_decoder, [{passphrase, prompt}]}
- %%
- %% To change encryption settings:
- %%
- %% {config_entry_decoder, [{cipher, aes_cbc256},
- %% {hash, sha512},
- %% {iterations, 1000}]}
- %%
- %% Default User / VHost
- %% ====================
- %%
- %% On first start RabbitMQ will create a vhost and a user. These
- %% config items control what gets created. See
- %% http://www.rabbitmq.com/access-control.html for further
- %% information about vhosts and access control.
- %%
- %% {default_vhost, <<"/">>},
- %% {default_user, <<"guest">>},
- %% {default_pass, <<"guest">>},
- %% {default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
- %% Tags for default user
- %%
- %% For more details about tags, see the documentation for the
- %% Management Plugin at http://www.rabbitmq.com/management.html.
- %%
- %% {default_user_tags, [administrator]},
- %%
- %% Additional network and protocol related configuration
- %% =====================================================
- %%
- %% Set the default AMQP heartbeat delay (in seconds).
- %%
- %% {heartbeat, 60},
- %% Set the max permissible size of an AMQP frame (in bytes).
- %%
- %% {frame_max, 131072},
- %% Set the max frame size the server will accept before connection
- %% tuning occurs
- %%
- %% {initial_frame_max, 4096},
- %% Set the max permissible number of channels per connection.
- %% 0 means "no limit".
- %%
- %% {channel_max, 128},
- %% Customising Socket Options.
- %%
- %% See (http://www.erlang.org/doc/man/inet.html#setopts-2) for
- %% further documentation.
- %%
- %% {tcp_listen_options, [{backlog, 128},
- %% {nodelay, true},
- %% {exit_on_close, false}]},
- %%
- %% Resource Limits & Flow Control
- %% ==============================
- %%
- %% See http://www.rabbitmq.com/memory.html for full details.
- %% Memory-based Flow Control threshold.
- %%
- %% {vm_memory_high_watermark, 0.4},
- %% Alternatively, we can set a limit (in bytes) of RAM used by the node.
- %%
- %% {vm_memory_high_watermark, {absolute, 1073741824}},
- %%
- %% Or you can set absolute value using memory units.
- %%
- %% {vm_memory_high_watermark, {absolute, "1024M"}},
- %%
- %% Supported units suffixes:
- %%
- %% k, kiB: kibibytes (2^10 bytes)
- %% M, MiB: mebibytes (2^20)
- %% G, GiB: gibibytes (2^30)
- %% kB: kilobytes (10^3)
- %% MB: megabytes (10^6)
- %% GB: gigabytes (10^9)
- %% Fraction of the high watermark limit at which queues start to
- %% page message out to disc in order to free up memory.
- %%
- %% Values greater than 0.9 can be dangerous and should be used carefully.
- %%
- %% {vm_memory_high_watermark_paging_ratio, 0.5},
- %% Interval (in milliseconds) at which we perform the check of the memory
- %% levels against the watermarks.
- %%
- %% {memory_monitor_interval, 2500},
- %% Set disk free limit (in bytes). Once free disk space reaches this
- %% lower bound, a disk alarm will be set - see the documentation
- %% listed above for more details.
- %%
- %% {disk_free_limit, 50000000},
- %%
- %% Or you can set it using memory units (same as in vm_memory_high_watermark)
- %% {disk_free_limit, "50MB"},
- %% {disk_free_limit, "50000kB"},
- %% {disk_free_limit, "2GB"},
- %% Alternatively, we can set a limit relative to total available RAM.
- %%
- %% Values lower than 1.0 can be dangerous and should be used carefully.
- %% {disk_free_limit, {mem_relative, 2.0}},
- %%
- %% Misc/Advanced Options
- %% =====================
- %%
- %% NB: Change these only if you understand what you are doing!
- %%
- %% To announce custom properties to clients on connection:
- %%
- %% {server_properties, []},
- %% How to respond to cluster partitions.
- %% See http://www.rabbitmq.com/partitions.html for further details.
- %%
- %% {cluster_partition_handling, ignore},
- %% Make clustering happen *automatically* at startup - only applied
- %% to nodes that have just been reset or started for the first time.
- %% See http://www.rabbitmq.com/clustering.html#auto-config for
- %% further details.
- %%
- %% {cluster_nodes, {['rabbit@my.host.com'], disc}},
- %% Interval (in milliseconds) at which we send keepalive messages
- %% to other cluster members. Note that this is not the same thing
- %% as net_ticktime; missed keepalive messages will not cause nodes
- %% to be considered down.
- %%
- %% {cluster_keepalive_interval, 10000},
- %% Set (internal) statistics collection granularity.
- %%
- %% {collect_statistics, none},
- %% Statistics collection interval (in milliseconds).
- %%
- %% {collect_statistics_interval, 5000},
- %% Explicitly enable/disable hipe compilation.
- %%
- %% {hipe_compile, true},
- %% Timeout used when waiting for Mnesia tables in a cluster to
- %% become available.
- %%
- %% {mnesia_table_loading_timeout, 30000},
- %% Size in bytes below which to embed messages in the queue index. See
- %% http://www.rabbitmq.com/persistence-conf.html
- %%
- %% {queue_index_embed_msgs_below, 4096}
- ]},
- %% ----------------------------------------------------------------------------
- %% Advanced Erlang Networking/Clustering Options.
- %%
- %% See http://www.rabbitmq.com/clustering.html for details
- %% ----------------------------------------------------------------------------
- {kernel,
- [%% Sets the net_kernel tick time.
- %% Please see http://erlang.org/doc/man/kernel_app.html and
- %% http://www.rabbitmq.com/nettick.html for further details.
- %%
- %% {net_ticktime, 60}
- ]},
- %% ----------------------------------------------------------------------------
- %% RabbitMQ Management Plugin
- %%
- %% See http://www.rabbitmq.com/management.html for details
- %% ----------------------------------------------------------------------------
- {rabbitmq_management,
- [%% Pre-Load schema definitions from the following JSON file. See
- %% http://www.rabbitmq.com/management.html#load-definitions
- %%
- %% {load_definitions, "/path/to/schema.json"},
- %% Log all requests to the management HTTP API to a file.
- %%
- %% {http_log_dir, "/path/to/access.log"},
- %% Change the port on which the HTTP listener listens,
- %% specifying an interface for the web server to bind to.
- %% Also set the listener to use SSL and provide SSL options.
- %%
- {listener, [{port, 9080}
- %% {ip, "127.0.0.1"},
- %% {ssl, true},
- %% {ssl_opts, [{cacertfile, "/path/to/cacert.pem"},
- %% {certfile, "/path/to/cert.pem"},
- %% {keyfile, "/path/to/key.pem"}]}]},
- %% One of 'basic', 'detailed' or 'none'. See
- %% http://www.rabbitmq.com/management.html#fine-stats for more details.
- %% {rates_mode, basic},
- %% Configure how long aggregated data (such as message rates and queue
- %% lengths) is retained. Please read the plugin's documentation in
- %% http://www.rabbitmq.com/management.html#configuration for more
- %% details.
- %%
- %% {sample_retention_policies,
- %% [{global, [{60, 5}, {3600, 60}, {86400, 1200}]},
- %% {basic, [{60, 5}, {3600, 60}]},
- %% {detailed, [{10, 5}]}]}
- ]},
-
- %% ----------------------------------------------------------------------------
- %% RabbitMQ Shovel Plugin
- %%
- %% See http://www.rabbitmq.com/shovel.html for details
- %% ----------------------------------------------------------------------------
-
- {rabbitmq_shovel,
- [{shovels,
- [%% A named shovel worker.
- %% {my_first_shovel,
- %% [
-
- %% List the source broker(s) from which to consume.
- %%
- %% {sources,
- %% [%% URI(s) and pre-declarations for all source broker(s).
- %% {brokers, ["amqp://user:password@host.domain/my_vhost"]},
- %% {declarations, []}
- %% ]},
-
- %% List the destination broker(s) to publish to.
- %% {destinations,
- %% [%% A singular version of the 'brokers' element.
- %% {broker, "amqp://"},
- %% {declarations, []}
- %% ]},
-
- %% Name of the queue to shovel messages from.
- %%
- %% {queue, <<"your-queue-name-goes-here">>},
-
- %% Optional prefetch count.
- %%
- %% {prefetch_count, 10},
-
- %% when to acknowledge messages:
- %% - no_ack: never (auto)
- %% - on_publish: after each message is republished
- %% - on_confirm: when the destination broker confirms receipt
- %%
- %% {ack_mode, on_confirm},
-
- %% Overwrite fields of the outbound basic.publish.
- %%
- %% {publish_fields, [{exchange, <<"my_exchange">>},
- %% {routing_key, <<"from_shovel">>}]},
-
- %% Static list of basic.properties to set on re-publication.
- %%
- %% {publish_properties, [{delivery_mode, 2}]},
-
- %% The number of seconds to wait before attempting to
- %% reconnect in the event of a connection failure.
- %%
- %% {reconnect_delay, 2.5}
-
- %% ]} %% End of my_first_shovel
- ]}
- %% Rather than specifying some values per-shovel, you can specify
- %% them for all shovels here.
- %%
- %% {defaults, [{prefetch_count, 0},
- %% {ack_mode, on_confirm},
- %% {publish_fields, []},
- %% {publish_properties, [{delivery_mode, 2}]},
- %% {reconnect_delay, 2.5}]}
- ]},
-
- %% ----------------------------------------------------------------------------
- %% RabbitMQ Stomp Adapter
- %%
- %% See http://www.rabbitmq.com/stomp.html for details
- %% ----------------------------------------------------------------------------
-
- {rabbitmq_stomp,
- [%% Network Configuration - the format is generally the same as for the broker
-
- %% Listen only on localhost (ipv4 & ipv6) on a specific port.
- %% {tcp_listeners, [{"127.0.0.1", 61613},
- %% {"::1", 61613}]},
-
- %% Listen for SSL connections on a specific port.
- %% {ssl_listeners, [61614]},
-
- %% Number of Erlang processes that will accept connections for the TCP
- %% and SSL listeners.
- %%
- %% {num_tcp_acceptors, 10},
- %% {num_ssl_acceptors, 1},
-
- %% Additional SSL options
-
- %% Extract a name from the client's certificate when using SSL.
- %%
- %% {ssl_cert_login, true},
- %% Set a default user name and password. This is used as the default login
- %% whenever a CONNECT frame omits the login and passcode headers.
- %%
- %% Please note that setting this will allow clients to connect without
- %% authenticating!
- %%
- %% {default_user, [{login, "guest"},
- %% {passcode, "guest"}]},
- %% If a default user is configured, or you have configured use SSL client
- %% certificate based authentication, you can choose to allow clients to
- %% omit the CONNECT frame entirely. If set to true, the client is
- %% automatically connected as the default user or user supplied in the
- %% SSL certificate whenever the first frame sent on a session is not a
- %% CONNECT frame.
- %%
- %% {implicit_connect, true}
- ]},
- %% ----------------------------------------------------------------------------
- %% RabbitMQ MQTT Adapter
- %%
- %% See https://github.com/rabbitmq/rabbitmq-mqtt/blob/stable/README.md
- %% for details
- %% ----------------------------------------------------------------------------
- {rabbitmq_mqtt,
- [%% Set the default user name and password. Will be used as the default login
- %% if a connecting client provides no other login details.
- %%
- %% Please note that setting this will allow clients to connect without
- %% authenticating!
- %%
- %% {default_user, <<"guest">>},
- %% {default_pass, <<"guest">>},
- %% Enable anonymous access. If this is set to false, clients MUST provide
- %% login information in order to connect. See the default_user/default_pass
- %% configuration elements for managing logins without authentication.
- %%
- %% {allow_anonymous, true},
- %% If you have multiple chosts, specify the one to which the
- %% adapter connects.
- %%
- %% {vhost, <<"/">>},
- %% Specify the exchange to which messages from MQTT clients are published.
- %%
- %% {exchange, <<"amq.topic">>},
- %% Specify TTL (time to live) to control the lifetime of non-clean sessions.
- %%
- %% {subscription_ttl, 1800000},
- %% Set the prefetch count (governing the maximum number of unacknowledged
- %% messages that will be delivered).
- %%
- %% {prefetch, 10},
- %% TCP/SSL Configuration (as per the broker configuration).
- %%
- %% {tcp_listeners, [1883]},
- %% {ssl_listeners, []},
- %% Number of Erlang processes that will accept connections for the TCP
- %% and SSL listeners.
- %%
- %% {num_tcp_acceptors, 10},
- %% {num_ssl_acceptors, 1},
- %% TCP/Socket options (as per the broker configuration).
- %%
- %% {tcp_listen_options, [{backlog, 128},
- %% {nodelay, true}]}
- ]},
- %% ----------------------------------------------------------------------------
- %% RabbitMQ AMQP 1.0 Support
- %%
- %% See https://github.com/rabbitmq/rabbitmq-amqp1.0/blob/stable/README.md
- %% for details
- %% ----------------------------------------------------------------------------
- {rabbitmq_amqp1_0,
- [%% Connections that are not authenticated with SASL will connect as this
- %% account. See the README for more information.
- %%
- %% Please note that setting this will allow clients to connect without
- %% authenticating!
- %%
- %% {default_user, "guest"},
- %% Enable protocol strict mode. See the README for more information.
- %%
- %% {protocol_strict_mode, false}
- ]},
- %% ----------------------------------------------------------------------------
- %% RabbitMQ LDAP Plugin
- %%
- %% See http://www.rabbitmq.com/ldap.html for details.
- %%
- %% ----------------------------------------------------------------------------
- {rabbitmq_auth_backend_ldap,
- [%%
- %% Connecting to the LDAP server(s)
- %% ================================
- %%
- %% Specify servers to bind to. You *must* set this in order for the plugin
- %% to work properly.
- %%
- %% {servers, ["your-server-name-goes-here"]},
- %% Connect to the LDAP server using SSL
- %%
- %% {use_ssl, false},
- %% Specify the LDAP port to connect to
- %%
- %% {port, 389},
- %% LDAP connection timeout, in milliseconds or 'infinity'
- %%
- %% {timeout, infinity},
- %% Enable logging of LDAP queries.
- %% One of
- %% - false (no logging is performed)
- %% - true (verbose logging of the logic used by the plugin)
- %% - network (as true, but additionally logs LDAP network traffic)
- %%
- %% Defaults to false.
- %%
- %% {log, false},
- %%
- %% Authentication
- %% ==============
- %%
- %% Pattern to convert the username given through AMQP to a DN before
- %% binding
- %%
- %% {user_dn_pattern, "cn=${username},ou=People,dc=example,dc=com"},
- %% Alternatively, you can convert a username to a Distinguished
- %% Name via an LDAP lookup after binding. See the documentation for
- %% full details.
- %% When converting a username to a dn via a lookup, set these to
- %% the name of the attribute that represents the user name, and the
- %% base DN for the lookup query.
- %%
- %% {dn_lookup_attribute, "userPrincipalName"},
- %% {dn_lookup_base, "DC=gopivotal,DC=com"},
- %% Controls how to bind for authorisation queries and also to
- %% retrieve the details of users logging in without presenting a
- %% password (e.g., SASL EXTERNAL).
- %% One of
- %% - as_user (to bind as the authenticated user - requires a password)
- %% - anon (to bind anonymously)
- %% - {UserDN, Password} (to bind with a specified user name and password)
- %%
- %% Defaults to 'as_user'.
- %%
- %% {other_bind, as_user},
- %%
- %% Authorisation
- %% =============
- %%
- %% The LDAP plugin can perform a variety of queries against your
- %% LDAP server to determine questions of authorisation. See
- %% http://www.rabbitmq.com/ldap.html#authorisation for more
- %% information.
- %% Set the query to use when determining vhost access
- %%
- %% {vhost_access_query, {in_group,
- %% "ou=${vhost}-users,ou=vhosts,dc=example,dc=com"}},
- %% Set the query to use when determining resource (e.g., queue) access
- %%
- %% {resource_access_query, {constant, true}},
- %% Set queries to determine which tags a user has
- %%
- %% {tag_queries, []}
- ]}
- ].
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。