zoukankan      html  css  js  c++  java
  • RabbitMQ安装(centos7.2)

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。

    MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。说的笼统点是queue+socket实现

     

    安装Erlang

    在安装RabbitMQ之前,我们需要安装Erlang,官方建议使用打包版本,有三个建议的来源:
      1、使用官方生成的一个软件包(https://github.com/rabbitmq/erlang-rpm),它只提供运行RabbitMQ所需要的组件,它可能会也可能不适合运行其他基于Erlang的软件或第三方RabbitMQ插件
      2、使用Erlang官方下载一个rpm包(https://www.erlang-solutions.com/resources/download.html),这个包通常是最新的
      3、使用EPEL源来安装,这种方式安装的包并不总是最新的

    这里我选择第1种方式:

    vim /etc/yum.repos.d/rabbitmq-erlang.repo

    [rabbitmq-erlang]
    name=rabbitmq-erlang
    baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
    gpgcheck=1
    gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    repo_gpgcheck=0
    enabled=1

     

    yum install –y  erlang

    安装RabbitMQ服务器

    wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.0/rabbitmq-server-3.7.0-1.el7.noarch.rpm

    rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc

    yum install rabbitmq-server-3.7.0-1.el7.noarch.rpm

    启动服务器

    systemctl enable rabbitmq-server

    systemctl start rabbitmq-server

    配置RabbitMQ

    在大多数系统上,一个节点应该能够启动并运行所有的默认值
    生产环境配置后面再详解
    注意:服务器设置为以系统用户rabbitmq运行 。如果更改节点数据库或日志的位置,则必须确保文件由该用户所有(并且还要更新环境变量)

    端口访问

    SELinux和类似的机制可能会阻止RabbitMQ绑定到一个端口。发生这种情况时,RabbitMQ将无法启动

    防火墙可以防止节点和CLI工具相互通信。确保可以打开以下端口:

    4369:epmd, RabbitMQ节点和CLI工具使用的对等发现服务

    5672,5671:  由AMQP 0-9-1和1.0客户端使用

    25672:     由Erlang分配用于节点间和CLI工具通信,并且从动态范围分配(AMQP端口+20000)

    15672:     HTTP API客户端和rabbitmqadmin(仅当管理插件启用时)

    61613,61614:STOMP客户端没有和使用TLS(只有STOMP插件已启用)

    1883年,8883:(MQTT客户端没有和TLS,如果MQTT插件已启用)

    15674:STOMP-over-WebSockets客户端(仅在启用了Web STOMP插件的情况下)

    15675:MQTT-over-WebSockets客户端(仅在启用了Web MQTT插件的情况下)

    默认的用户访问

    默认将创建一个用户guest,密码guest。默认情况下,只有在以localhost身份连接到代理时才能使用这些凭证

    调整系统限制

    运行生产工作负载的RabbitMQ安装可能需要系统限制和内核参数调整,以便处理体面的并发连接和队列。需要调整的主要设置是打开文件的最大数量,也称为ulimit -n
    许多操作系统上的默认值对于消息传递代理来说太低(例如,在几个Linux发行版上为1024)。我们建议在生产环境中为用户rabbitmq至少允许65536个文件描述符。4096对于大多数开发工作量来说应该是足够的
    有两个限制操作系统内核允许的最大打开文件数(fs.file-max)和每用户限制(ulimit -n)。前者必须高于后者

    fs.file-max设置

    vim /etc/sysctl.conf,添加:

    fs.file-max = 65535

    sysctl -p

    每用户限制(ulimit -n)

    # vim /etc/security/limits.conf

    在最后一行添加如下命令

    root soft nofile 65535

    root hard nofile 65535

    * soft nofile 65535

    * hard nofile 65535

    # vim /etc/rc.local

    ulimit -SHn 65535

    修改rabbitmq配置

    修改rabbitmq配置

    修改/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service

    在[Service]中,增加LimitNOFILE=30000(具体数值根据需要)

    执行systemctl daemon-reload

    重启rabbitmq服务

    rabbitmqctl status

    日志

    默认的情况下,日志位于/var/log/rabbitmq目录中,服务器的输出被发送到RABBITMQ_NODENAME .log文件 。其他日志数据写入RABBITMQ_NODENAME -sasl.log

    rabbitmq自带管理后台,安装后需要配置开启

    进入rabbitmq安装目录中的sbin目录执行

    rabbitmq-plugins enable rabbitmq_management

    重启rabbitmq服务生效

    打开http://localhost:15672/即可看到管理后台

    用户名密码均为guest

    #添加用户和删除guest

    rabbitmqctl add_user admin 123456abc

    rabbitmqctl set_user_tags admin administrator

    rabbitmqctl delete_user guest

    rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

     

    配置文件rabbitmq.config详解

    默认rabbitmq.conf配置文件是没有的,如果我们想自定义一些配置,可以创建/etc/rabbitmq/rabbitmq.conf,修改后的配置会覆盖内置的配置

     

    ##相关文档指南:http://rabbitmq.com/configure.html。看到

    ## http://rabbitmq.com/documentation.html文档ToC。

    ## 联网

    ## ====================

    ##

    ##相关文档指南:http://rabbitmq.com/networking.html。

    ##

    ##默认情况下,RabbitMQ将使用侦听所有接口

    ##标准(保留)AMQP 0-9-1和1.0端口。

    ##

    #listeners.tcp.default = 5672

    ##要监听特定的接口,请提供带有端口的IP地址。

    ##例如,只在本地主机上侦听IPv4和IPv6:

    ##

    #IPv4

    #listeners.tcp.local = 127.0.0.1:5672

    #IPv6

    #listeners.tcp.local_v6 = :: 1:5672

    ##您可以使用侦听器名称定义多个侦听器

    #listeners.tcp.other_port = 5673

    #listeners.tcp.other_ip = 10.10.10.10:5672

    ## TLS监听器的配置方式与TCP监听器相同,

    ##包括控制界面选择的选项。

    ##

    #listeners.ssl.default = 5671

    ##将接受TCP连接的Erlang进程的数量

    ##和TLS监听器。

    ##

    #num_acceptors.tcp = 10

    #num_acceptors.ssl = 1

    ## AMQP 0-8 / 0-9 / 0-9-1握手的最大时间(套接字连接后)

    ##和TLS握手),以毫秒为单位。

    ##

    #handshake_timeout = 10000

    ##设置为'true'在接受a时执行反向DNS查询

    ##连接。主机名将被显示,而不是IP地址

    在rabbitmqctl中的##和管理插件。

    ##

    #reverse_dns_lookups = true

    ##

    ##安全,访问控制

    ## ==============

    ##

    ##相关文档指南:http://rabbitmq.com/access-control.html。

    ##默认的“访客”用户只能访问服务器

    ##通过一个回送接口(例如本地主机)。

    ## {loopback_users,[<<“guest”>>]},

    ##

    #loopback_users.guest = true

    ##如果您想允许访问,请取消注释以下行

    ##来宾用户从网络上的任何地方。

    #loopback_users.guest = false

    ## TLS配置。

    ##

    ##相关文档指南:http://rabbitmq.com/ssl.html。

    ##

    #ssl_options.verify = verify_peer

    #ssl_options.fail_if_no_peer_cert = false

    #ssl_options.cacertfile = /path/to/cacert.pem

    #ssl_options.certfile = /path/to/cert.pem

    #ssl_options.keyfile = /path/to/key.pem

    ##选择要使用的认证/授权后端。

    ##

    ##备用后端由插件提供,例如rabbitmq-auth-backend-ldap。

    ##

    ##注意:这些设置需要启用某些插件。

    ##

    ##相关文档指南:

    ##

    ## * http://rabbitmq.com/plugins.html

    ## * http://rabbitmq.com/access-control.html

    ##

    #auth_backends.1 = rabbit_auth_backend_internal

    ##使用单独的后端进行身份验证和授权,

    ## 见下文。

    #auth_backends.1.authn = rabbit_auth_backend_ldap

    #auth_backends.1.authz = rabbit_auth_backend_internal

    ## rabbitmq_auth_backend_ldap插件允许经纪人

    ##通过推迟到一个执行认证和授权

    ##外部LDAP服务器。

    ##

    ##相关文档指南:

    ##

    ## * http://rabbitmq.com/ldap.html

    ## * http://rabbitmq.com/access-control.html

    ##

    ##使用LDAP进行身份验证和授权

    #auth_backends.1 = rabbit_auth_backend_ldap

    ##使用HTTP服务进行身份验证和

    ##授权

    #auth_backends.1 = rabbit_auth_backend_http

    ##在链中使用两个后端:首先是HTTP,然后是内部

    #auth_backends.1 = rabbit_auth_backend_http

    #auth_backends.2 = rabbit_auth_backend_internal

    ##认证

    ##内置的机制是“普通”,

    ##'AMQPLAIN'和'EXTERNAL'可以通过添加其他机制

    ##插件。

    ##

    ##相关文档指南:http://rabbitmq.com/authentication.html。

    ##

    #auth_mechanisms.1 = PLAIN

    #auth_mechanisms.2 = AMQPLAIN

    ## rabbitmq-auth-mechanism-ssl插件使得它成为可能

    ##根据客户端的x509(TLS)证书对用户进行身份验证。

    ##相关文档指南:http://rabbitmq.com/authentication.html。

    ##

    ##要使用auth-mechanism-ssl,EXTERNAL机制应该

    ##被启用:

    ##

    #auth_mechanisms.1 = PLAIN

    #auth_mechanisms.2 = AMQPLAIN

    #auth_mechanisms.3 = EXTERNAL

    ##要强制所有客户端上基于x509证书的身份验证,

    ##排除所有其他机制(注意:这将禁用基于密码的

    ##认证甚至管理用户界面!):

    ##

    #auth_mechanisms.1 = EXTERNAL

    ##这涉及rabbitmq-auth-mechanism-ssl插件和

    ## STOMP ssl_cert_login配置。查看RabbitMQ STOMP插件

    稍后在此文件和README中的##配置部分

    ## https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl进一步

    ## 细节。

    ##

    ##使用TLS证书的CN而不是DN作为用户名

    ##

    #ssl_cert_login_from = common_name

    ## TLS握手超时,以毫秒为单位。

    ##

    #ssl_handshake_timeout = 5000

    ##密码散列实现。只会影响新的

    ##创建用户。重新计算现有用户的散列值

    ##有必要更新她的密码。

    ##

    ##要使用SHA-512,请设置为rabbit_password_hashing_sha512。

    ##

    #password_hashing_module = rabbit_password_hashing_sha256

    ##导入从早期版本导出的定义

    ##比3.6.0,有可能回到MD5(只做这个

    ##作为临时措施!)通过将其设置为rabbit_password_hashing_md5。

    ##

    #password_hashing_module = rabbit_password_hashing_md5

    ##

    ##默认用户/ VHost

    ## ====================

    ##

    ##首先启动RabbitMQ将创建一个虚拟主机和一个用户。这些

    ## config items控制创建的内容。

    ##相关文档指南:http://rabbitmq.com/access-control.html

    ##

    #default_vhost = /

    #default_user = guest

    #default_pass = guest

    #default_permissions.configure =。*

    #default_permissions.read =。*

    #default_permissions.write =。*

    ##默认用户的标签

    ##

    ##有关标签的更多详细信息,请参阅文档

    ##管理插件在http://rabbitmq.com/management.html。

    ##

    #default_user_tags.administrator = true

    ##定义这样的其他标签:

    #default_user_tags.management = true

    #default_user_tags.custom_tag = true

    ##

    ##其他网络和协议相关的配置

    ## ================================================ =====

    ##

    ##设置默认的AMQP 0-9-1心跳间隔(以秒为单位)。

    ##相关文档指南:

    ##

    ## * http://rabbitmq.com/heartbeats.html

    ## * http://rabbitmq.com/networking.html

    ##

    #心跳= 600

    ##设置AMQP帧的最大允许大小(以字节为单位)。

    ##

    #frame_max = 131072

    ##设置连接前服务器将接受的最大帧大小

    ##调整发生

    ##

    #initial_frame_max = 4096

    ##设置每个连接的最大允许通道数量。

    ## 0的意思是“没有限制”。

    ##

    #channel_max = 128

    ##自定义TCP监听器(套接字)配置。

    ##

    ##相关文档指南:

    ##

    ## * http://rabbitmq.com/networking.html

    ## * http://www.erlang.org/doc/man/inet.html#setopts-2

    ##

    #tcp_listen_options.backlog = 128

    #tcp_listen_options.nodelay = true

    #tcp_listen_options.exit_on_close = false

    ##

    ##资源限制和流量控制

    ## ==============================

    ##

    ##相关文档指南:http://rabbitmq.com/memory.html。

    ##基于内存的流量控制阈值。

    ##

    #vm_memory_high_watermark.relative = 0.4

    ##或者,我们可以设置节点使用的RAM的限制(以字节为单位)。

    ##

    #vm_memory_high_watermark.absolute = 1073741824

    ##或者您可以使用内存单位设置绝对值(使用RabbitMQ 3.6.0+)。

    如果相对定义,绝对水印将被忽略!

    ##

    #vm_memory_high_watermark.absolute = 2GB

    ##

    ##支持的单位后缀:

    ##

    ## kb,KB:kibibytes(2 ^ 10个字节)

    ## mb,MB:mebibytes(2 ^ 20)

    GB gb,GB:gibibytes(2 ^ 30)

    ##队列开始的高水印限制的分数

    ##寻呼消息到光盘为了释放内存。

    ##例如,当vm_memory_high_watermark被设置为0.4并且该值被设置为0.5时,

    ##分页可以在节点使用总可用RAM的20%时开始。

    ##

    ##大于1.0的值可能是危险的,应谨慎使用。

    ##

    ##一个替代方案是使用持久队列和发布消息

    ##作为永久(交付模式= 2)。有了这个组合队列将

    ##将消息更快地移动到磁盘。

    ##

    ##另一种选择是配置队列来寻呼所有消息(都是

    ##持久性和瞬态)到磁盘

    ##尽可能参见http://rabbitmq.com/lazy-queues.html。

    ##

    #vm_memory_high_watermark_paging_ratio = 0.5

    ##选择Erlang VM内存消耗计算策略。可以是“分配”,“rss”或“legacy”(别名为“erlang”),

    ##在3.6.11中介绍。“rss”是3.6.12的默认值。

    ##查看https://github.com/rabbitmq/rabbitmq-server/issues/1223和rabbitmq / rabbitmq-common#224获取背景信息。

    #vm_memory_calculation_strategy = rss

    ##我们执行内存检查的间隔(以毫秒为单位)

    ##水平对水印。

    ##

    #memory_monitor_interval = 2500

    ##可用的总内存可以从OS资源中计算出来

    ##  - 默认选项 - 或作为配置参数提供。

    #total_memory_available_override_value = 2GB

    ##设置磁盘空闲限制(以字节为单位)。一旦可用磁盘空间达到此目的

    ##下限,磁盘报警将被设置 - 请参阅文档

    ##上面列出了更多的细节。

    ##

    如果相对定义,绝对水印将被忽略!

    #disk_free_limit.absolute = 50000

    ##或者你可以使用内存单元(与vm_memory_high_watermark相同)

    ##与RabbitMQ 3.6.0+。

    #disk_free_limit.absolute = 500KB

    #disk_free_limit.absolute = 50mb

    #disk_free_limit.absolute = 5GB

    ##或者,我们可以设置一个相对于可用RAM总量的限制。

    ##

    ##低于1.0的值可能是危险的,应谨慎使用。

    #disk_free_limit.relative = 2.0

    ##

    ##聚类

    ## =====================

    ##

    #cluster_partition_handling =忽略

    ## pause_if_all_down策略需要额外的配置

    #cluster_partition_handling = pause_if_all_down

    ##恢复策略。可以是“autoheal”或“忽略”

    #cluster_partition_handling.pause_if_all_down.recover =忽略

    ##节点名称检查

    #cluster_partition_handling.pause_if_all_down.nodes.1 = rabbit @ localhost

    #cluster_partition_handling.pause_if_all_down.nodes.2 = hare @ localhost

    ##在消息中镜像同步批量大小。增加这将加快速度

    ##同步,但批量总大小(以字节为单位)不得超过2 GiB。

    ##在RabbitMQ 3.6.0或更高版本中可用。

    ##

    #mirroring_sync_batch_size = 4096

    ##在启动时自动进行聚类。仅适用

    ##到第一次刚复位或启动的节点。

    ##

    ##相关文档指南:http://rabbitmq.com//cluster-formation.html

    ##

    #autocluster.peer_discovery_backend = rabbit_peer_discovery_classic_config

    #autocluster.classic_config.nodes.node1 = rabbit1 @ hostname

    #autocluster.classic_config.nodes.node2 = rabbit2 @ hostname

    #autocluster.classic_config.nodes.node3 = rabbit3 @ hostname

    #autocluster.classic_config.nodes.node4 = rabbit4 @ hostname

    ##基于DNS的对等发现。这后端将列出A记录

    配置的主机名##并执行反向查找

    ##返回的地址。

    #autocluster.peer_discovery_backend = rabbit_peer_discovery_dns

    #autocluster.dns.hostname = rabbitmq.discovery.mycompany.local

    ##此节点的类型可以配置。如果你不确定

    ##使用什么节点类型,总是使用“光盘”。

    #autocluster.node_type =光盘

    ##发送Keepalive消息的间隔(以毫秒为单位)

    ##给其他集群成员。请注意,这不是一回事

    ## as net_ticktime; 遗漏的keepalive消息不会导致节点

    ##被认为是失望的。

    ##

    #cluster_keepalive_interval = 10000

    ##

    ##统计收集

    ## =====================

    ##

    ##设置(内部)统计信息收集粒度。

    ##

    ##可以不是,粗或细

    #collect_statistics =无

    #collect_statistics =粗略

    ##统计信息收集间隔(以毫秒为单位)。增加

    ##这将减少管理数据库的负载。

    ##

    #collect_statistics_interval = 5000

    ##

    ##其他/高级选项

    ## =====================

    ##

    ##注意:只有在你明白自己在做什么的情况下才能改变这些!

    ##

    ##显式启用/禁用hipe编译。

    ##

    #hipe_compile = false

    ##在等待群集中的Mnesia表时使用的超时

    ##变得可用。

    ##

    #mnesia_table_loading_retry_timeout = 30000

    ##在群集启动中等待Mnesia表时重试。注意

    ##此设置不适用于Mnesia升级或节点删除。

    ##

    #mnesia_table_loading_retry_limit = 10

    ##以字节为单位的大小,低于该大小将消息嵌入到队列索引中。

    ##相关文档指南:http://rabbitmq.com/persistence-conf.html

    ##

    #queue_index_embed_msgs_below = 4096

    ##你也可以用内存单位来设置这个大小

    ##

    #queue_index_embed_msgs_below = 4kb

    ##是否启用所有的后台定期GC

    ## Erlang处于“等待”状态。

    ##

    ##禁用后台GC可以减少客户端操作的延迟,

    ##保持启用可能会减少RAM的使用量。

    ##

    #background_gc_enabled = false

    ##运行背景GC的目标(期望)间隔(以毫秒为单位)。

    ##实际时间间隔取决于执行时间的长短

    ##操作(可高于此间隔)。值小于

    ##不建议使用30000毫秒。

    ##

    #background_gc_target_interval = 60000

    ##是否启用代理协议支持。

    ##一旦启用,客户端不能直接连接到代理

    ##了。他们必须通过一个负载均衡器连接发送

    ##代理协议头在连接时间给代理。

    ##此设置仅适用于AMQP客户端,其他协议

    像MQTT或STOMP这样的##有自己的设置来启用代理协议。

    ##请参阅插件文档以获取更多信息。

    ##

    #proxy_protocol = false

    ## ------------------------------------------------ ----------------------------

    ##高级的Erlang网络/集群选项。

    ##

    ##相关文档指南:http://rabbitmq.com/clustering.html

    ## ------------------------------------------------ ----------------------------

    #======================================

    #内核部分

    #======================================

    #kernel.net_ticktime = 60

    ## ------------------------------------------------ ----------------------------

    ## RabbitMQ管理插件

    ##

    ##相关文档指南:http://rabbitmq.com/management.html。

    ## ------------------------------------------------ ----------------------------

    #=======================================

    #管理部分

    #=======================================

    ##从以下JSON文件中预载模式定义。

    ##相关文档指南:http://rabbitmq.com/management.html#load-definitions。

    ##

    #management.load_definitions = /path/to/exported/definitions.json

    ##将所有对管理HTTP API的请求记录到一个文件中。

    ##

    #management.http_log_dir = /path/to/access.log

    ##更改HTTP侦听器侦听的端口,

    ##指定Web服务器绑定的接口。

    ##还要将侦听器设置为使用TLS并提供TLS选项。

    ##

    #management.listener.port = 15672

    #management.listener.ip = 127.0.0.1

    #management.listener.ssl = true

    #management.listener.ssl_opts.cacertfile = /path/to/cacert.pem

    #management.listener.ssl_opts.certfile = /path/to/cert.pem

    #management.listener.ssl_opts.keyfile = /path/to/key.pem

    ##“基本”,“详细”或“无”之一。看到

    ## http://rabbitmq.com/management.html#fine-stats了解更多详情。

    #management.rates_mode =基本

    ##配置聚合数据的长度(如消息速率和队列

    ##长度)被保留。请阅读插件的文档

    ## http://rabbitmq.com/management.html#configuration更多

    ## 细节。

    ##您可以使用“分钟”,“小时”和“日”键或整数键(以秒为单位)

    #management.sample_retention_policies.global.minute = 5

    #management.sample_retention_policies.global.hour = 60

    #management.sample_retention_policies.global.day = 1200

    #management.sample_retention_policies.basic.minute = 5

    #management.sample_retention_policies.basic.hour = 60

    #management.sample_retention_policies.detailed.10 = 5

    ## ------------------------------------------------ ----------------------------

    ## RabbitMQ铲子插件

    ##

    ##相关文档指南:http://rabbitmq.com/shovel.html

    ## ------------------------------------------------ ----------------------------

    ## Shovel插件配置示例在additional.config文件中定义

    ## ------------------------------------------------ ----------------------------

    ## RabbitMQ STOMP插件

    ##

    ##相关文档指南:http://rabbitmq.com/stomp.html

    ## ------------------------------------------------ ----------------------------

    #=======================================

    #STOMP部分

    #=======================================

    ##网络配置。格式通常与核心代理相同。

    ##

    #stomp.listeners.tcp.default = 61613

    ##与ssl监听器相同

    ##

    #stomp.listeners.ssl.default = 61614

    ##将接受TCP连接的Erlang进程的数量

    ##和TLS监听器。

    ##

    #stomp.num_acceptors.tcp = 10

    #stomp.num_acceptors.ssl = 1

    ##其他TLS选项

    ##使用TLS时,从客户端证书中提取名称。

    ##

    #stomp.ssl_cert_login = true

    ##设置默认的用户名和密码。这被用作默认登录

    ##每当CONNECT框架省略登录名和密码头。

    ##

    ##请注意,设置这将允许客户端连接没有

    ##验证!

    ##

    #stomp.default_user = guest

    #stomp.default_pass = guest

    ##如果配置了默认用户,或者您已配置使用TLS客户端

    ##证书为基础的身份验证,您可以选择允许客户端

    ##完全忽略CONNECT帧。如果设置为true,则客户端是

    ##自动连接为默认用户或用户提供的

    每当在一个会话上发送的第一帧不是一个## TLS证书

    ##连接框架。

    ##

    #stomp.implicit_connect = true

    ##是否启用代理协议支持。

    ##一旦启用,客户端不能直接连接到代理

    ##了。他们必须通过一个负载均衡器连接发送

    ##代理协议头在连接时间给代理。

    ##此设置仅适用于STOMP客户端,其他协议

    像MQTT或AMQP这样的##有自己的设置来启用代理协议。

    ##请参阅插件或代理文档以获取更多信息。

    ##

    #stomp.proxy_protocol = false

    ## ------------------------------------------------ ----------------------------

    ## RabbitMQ MQTT适配器

    ##

    ##见https://github.com/rabbitmq/rabbitmq-mqtt/blob/stable/README.md

    ##的细节

    ## ------------------------------------------------ ----------------------------

    #=======================================

    #MQTT部分

    #=======================================

    ##设置默认的用户名和密码。将被用作默认登录

    ##如果连接客户端没有提供其他登录信息。

    ##

    ##请注意,设置这将允许客户端连接没有

    ##验证!

    ##

    #mqtt.default_user = guest

    #mqtt.default_pass = guest

    ##启用匿名访问。如果这被设置为false,客户端必须提供

    ##登录信息才能连接。请参阅default_user / default_pass

    ##配置元素管理登录没有身份验证。

    ##

    #mqtt.allow_anonymous = true

    ##如果你有多个chosts,指定哪个

    ##适配器连接。

    ##

    #mqtt.vhost = /

    ##指定发布来自MQTT客户端的消息的交换。

    ##

    #mqtt.exchange = amq.topic

    ##指定TTL(生存时间)来控制非干净会话的生命周期。

    ##

    #mqtt.subscription_ttl = 1800000

    ##设置预取计数(控制未确认的最大数量

    ##消息将被交付)。

    ##

    #mqtt.prefetch = 10

    ## TCP / SSL配置(按照代理配置)。

    ##

    #mqtt.listeners.tcp.default = 1883

    ##与ssl监听器相同

    ##

    #mqtt.listeners.ssl.default = 1884

    ##将接受TCP连接的Erlang进程的数量

    ##和TLS监听器。

    ##

    #mqtt.num_acceptors.tcp = 10

    #mqtt.num_acceptors.ssl = 1

    ## TCP侦听器选项(按照代理配置)。

    ##

    #mqtt.tcp_listen_options.backlog = 128

    #mqtt.tcp_listen_options.nodelay = true

    ##是否启用代理协议支持。

    ##一旦启用,客户端不能直接连接到代理

    ##了。他们必须通过一个负载均衡器连接发送

    ##代理协议头在连接时间给代理。

    ##此设置仅适用于STOMP客户端,其他协议

    ##像STOMP或AMQP有自己的设置来启用代理协议。

    ##请参阅插件或代理文档以获取更多信息。

    ##

    #mqtt.proxy_protocol = false

    ## ------------------------------------------------ ----------------------------

    ## RabbitMQ AMQP 1.0支持

    ##

    ##见https://github.com/rabbitmq/rabbitmq-amqp1.0/blob/stable/README.md。

    ## ------------------------------------------------ ----------------------------

    #=======================================

    #AMQP 1.0部分

    #=======================================

    ##未通过SASL认证的连接将以此连接

    ##帐户。请参阅自述文件以获取更多信息。

    ##

    ##请注意,设置这将允许客户端连接没有

    ##验证!

    ##

    #amqp1_0.default_user = guest

    ##启用协议严格模式。请参阅自述文件以获取更多信息。

    ##

    #amqp1_0.protocol_strict_mode = false

    ## Lager控制记录。

    ##请参阅https://github.com/basho/lager获取更多文档

    ##

    ## Log direcrory,默认情况下取自RABBITMQ_LOG_BASE env变量。

    ##

    #log.dir = / var / log / rabbitmq

    ##记录到控制台(可以为true或false)

    ##

    #log.console = false

    ## Loglevel登录到控制台

    ##

    #log.console.level = info

    ##记录到文件。可以是假的或文件名。

    ##默认:

    #log.file = rabbit.log

    ## 把关掉:

    #log.file = false

    ## Loglevel记录到文件

    ##

    #log.file.level = info

    ##文件旋转配置。没有旋转的defualt。

    ##不要将旋转日期设置为“”。如果需要“”值,请保持不变

    #log.file.rotation.date = $ D0

    #log.file.rotation.size = 0

    ## QA:配置系统日志记录

    #log.syslog = false

    #log.syslog.identity = rabbitmq

    #log.syslog.level = info

    #log.syslog.facility =守护进程

    ## ------------------------------------------------ ----------------------------

    ## RabbitMQ LDAP插件

    ##

    ##相关文档指南:http://rabbitmq.com/ldap.html。

    ##

    ## ------------------------------------------------ ----------------------------

    #=======================================

    #LDAP部分

    #=======================================

    ##

    ##连接到LDAP服务器

    ## ================================

    ##

    ##指定要绑定的服务器。你*必须*设置为了插件

    ##正常工作。

    ##

    #auth_ldap.servers.1 =你的服务器名称在这里

    ##您可以定义多个服务器

    #auth_ldap.servers.2 =你的其他服务器

    ##使用TLS连接到LDAP服务器

    ##

    #auth_ldap.use_ssl = false

    ##指定要连接的LDAP端口

    ##

    #auth_ldap.port = 389

    ## LDAP连接超时,以毫秒或“无限”

    ##

    #auth_ldap.timeout =无限

    ##或号码

    #auth_ldap.timeout = 500

    ##启用LDAP查询的记录。

    ##其中之一

    ##  -  false(不记录)

    ##  -  true(详细记录插件使用的逻辑)

    ##  - 网络(如同,但另外记录LDAP网络流量)

    ##

    ##默认为false。

    ##

    #auth_ldap.log = false

    ##也可以是真实的或网络

    #auth_ldap.log = true

    #auth_ldap.log =网络

    ##

    ##认证

    ## ==============

    ##

    ##模式将通过AMQP给出的用户名转换为DN

    ## 捆绑

    ##

    #auth_ldap.user_dn_pattern = cn = $ {username},ou = People,dc = example,dc = com

    ##或者,您可以将用户名转换为Distinguished

    ##绑定后通过LDAP查找命名。请参阅文档

    ##全部细节。

    ##通过查找将用户名转换为dn时,将其设置为

    ##表示用户名的属性的名称,而

    查找查询的## base DN。

    ##

    #auth_ldap.dn_lookup_attribute = userPrincipalName

    #auth_ldap.dn_lookup_base = DC = gopivotal,DC = com

    ##控制如何绑定授权查询,也可以

    ##检索登录用户的详细信息,而不显示一个

    ##密码(例如,SASL EXTERNAL)。

    ##其中之一

    ##  -  as_user(作为认证用户进行绑定 - 需要密码)

    ##  - 匿名(匿名绑定)

    ##  -  {UserDN,Password}(用指定的用户名和密码绑定)

    ##

    ##默认为'as_user'。

    ##

    #auth_ldap.other_bind = as_user

    ##或者可以更复杂:

    #auth_ldap.other_bind.user_dn =用户

    #auth_ldap.other_bind.password =密码

    ##如果user_dn和密码定义 - 其他选项被忽略。

    #-----------------------------

    #太复杂的LDAP部分

    #-----------------------------

    ##

    ##授权

    ## =============

    ##

    ## LDAP插件可以针对您的应用程序执行各种查询

    ## LDAP服务器来确定授权的问题。

    ##

    ##相关文档指南:http://rabbitmq.com/ldap.html#authorisation。

    ##以下配置应该在additional.config文件中定义

    ##不要处理这条线!

    ##将查询设置为在确定访问虚拟主机时使用

    ##

    ## {vhost_access_query,{in_group,

    ##“ou = $ {vhost} -users,ou = vhosts,dc = example,dc = com”}}

    ##设置查询以在确定资源(例如,队列)访问时使用

    ##

    ## {resource_access_query,{constant,true}},

    ##设置查询来确定用户拥有哪些标签

    ##

    ## {tag_queries,[]}

    #]},

    #-----------------------------

     

     

     

     

     

  • 相关阅读:
    个人作业——软件评测
    软件工程第五次作业——结对编程的实现
    软件工程第三次作业
    软件工程第一次作业
    两个矩形面积交
    二维并查集
    Java 作业 1
    练习题
    线性表

  • 原文地址:https://www.cnblogs.com/pengrj/p/9067993.html
Copyright © 2011-2022 走看看