美文网首页
rabbitmq 的安装启动(linux)

rabbitmq 的安装启动(linux)

作者: 北方_f6b4 | 来源:发表于2019-11-02 16:46 被阅读0次

    rabbitmq依赖于Erlang,需先安装,推荐安装rabbitmq/erlang-rpm

    #clone源码git clone https://github.com/rabbitmq/erlang-rpm.git#makecd erlang-rpmmake  #需要等待较长时间cd RPMS/x86_64  #其下有两个rpm包 erlang-19.3.6-1.alios6.x86_64.rpm  erlang-debuginfo-19.3.6-1.alios6.x86_64.rpm, 选择前者安装#安装sudo rpm -ivh  erlang-19.3.6-1.alios6.x86_64.rpm

    官网下载页面找到和系统版本对应的rabbitmq版本:

    #安装rabbitmq-serversudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm#此时可能报:Requires: socat, 以下是解决方法, 参考:http://www.cnblogs.com/ray30th/p/6651800.htmlsudo wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.reposudo yum makecachesudo yum install socat#重新安装rabbitmq-serversudo yum install rabbitmq-server-3.6.10-1.el6.noarch.rpm

    启动/关闭/状态查看

    #启动/停止 start/stop$sudo /sbin/service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.$sudo /sbin/service rabbitmq-server stopStopping rabbitmq-server: rabbitmq-server.#状态查看sudo rabbitmqctl status

    SELinux和与其机制类似的系统可能会阻止RabbtMQ绑定相应端口,所以安装完之后需要确保一下端口可以打开:

    4369,epmd(Erlang Port Mapper Daemon),是Erlang的端口/结点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似DNS的作用。

    5672, 5671, AMQP 0-9-1 和 1.0 客户端端口,used by AMQP 0-9-1 and 1.0 clients without and with TLS(Transport Layer Security)

    25672,Erlang distribution,和4369配合

    15672,HTTP_API端口,管理员用户才能访问,用于管理RbbitMQ,需要启用management插件,rabbitmq-plugins enable rabbitmq_management,访问http://server-name:15672/

    61613, 61614,当STOMP插件启用的时候打开,作为STOMP客户端端口(根据是否使用TLS选择)

    1883, 8883,当MQTT插件启用的时候打开,作为MQTT客户端端口(根据是否使用TLS选择)

    15674,基于WebSocket的STOMP客户端端口(当插件Web STOMP启用的时候打开)

    15675,基于WebSocket的MQTT客户端端口(当插件Web MQTT启用的时候打开)

    参考

    Installing on RPM-based Linux(Port Access)

    RabbitMQ~开篇与环境部署

    用户权限管理

    RabbitMQ有一个默认的用户"guest",密码也是"guest",这个用户默认只能通过本机访问,eg:http://localhost:15672/,在通过http访问之前记得启用management插件:

    $rabbitmq-pluginsenablerabbitmq_management

    要让其他机器可以访问,需要创建一个新用户,为其分配权限。用户权限可以通过rabbitmqctl执行相关命令来维护,rabbitmqctl是管理rabbitmq的命令行管理工具,下面介绍相关的命令:

    用户管理

    list_users,用户列表

    add_user {username} {password},添加用户

    delete_user {username},删除用户

    change_password {username} {newpassword},修改密码

    clear_password {username},删除密码,密码删除后就不能访问了。This user now cannot log in with a password (but may be able to through e.g. SASL EXTERNAL if configured)

    authenticate_user {username} {password},用户认证

    set_user_tags {username} {tag...},为用户设置角色,tag可以是0个、一个、或多个,eg:rabbitmqctl set_user_tags chris administrator,设置为管理员;rabbitmqctl set_user_tags chris,清除chris与角色的关联。

    #用户列表查看$sudo rabbitmqctl list_usersListing usersguest  [administrator]#添加用户$sudo rabbitmqctl add_user chris 123Creating user "chris"#为用户分配权限$sudo rabbitmqctl set_user_tags chris administratorSetting tags for user "chris" to [administrator]#然后就可以通过http://host:15672 登录management界面管理rabbitmq了,但此时用户chris还没有访问队列资源的权限

    权限管理

    RabbitMQ客户端连接到一个服务端的时候,在它的操作指令中指定了一个虚拟主机。服务端首先检查是否有访问该虚拟主机的权限,没有权限的会拒绝连接。

    对于exchanges和queues等资源,位于某个虚拟主机内;不同虚拟主机内即便名称相同也代表不同的资源。当特定操作在资源上执行时第二级访问控制开始生效。

    RabbitMQ在某个资源上区分了配置、写和读操作。配置操作创建或者销毁资源,或者更改资源的行为。写操作将消息注入进资源之中。读操作从资源中获取消息。

    要执行特定操作用户必须授予合适的权限。

    下面介绍相关命令:

    list_vhosts [vhostinfoitem...],获取vhosts列表

    add_vhost {vhost}, eg:rabbitmqctl add_vhost test

    delete_vhost {vhost}

    set_permissions [-pvhost] {user} {conf} {write} {read},给用户分在对应的vhost上分配相应的权限。eg:rabbitmqctl set_permissions -p /myvhost chris "^chris-.*" ".*" ".*",这条指令,给用户chris在myvhost分配了权限,权限包括:以"chris-"开头的全部资源的配置权限,和所有资源的读写权限

    clear_permissions [-pvhost] {username},清除权限

    list_permissions [-pvhost],vhost权限分配列表

    list_user_permissions {username},user权限列表

    $sudo rabbitmqctl set_permissions -p / chris".*"".*"".*"Setting permissions for user "chris" in vhost "/"#此时用户chris才有访问队列资源的权限

    参考

    rabbitmqctl(1) manual page(User management, Access control)

    System Limits

    rabbitmq会维持大量的网络连接,所以系统允许同时打开的最大文件数需要调整。推荐的允许同时打开的最大文件数为65535。有两个地方需要设置:

    系统每个用户允许的最大同时打开文件数,ulimit -n,可以通过ulimit -n size设置

    系统允许的最大同时打开文件数,fs.file-max

    系统级限制查看与设置:

    #查看$ cat /proc/sys/fs/file-max184289$ cat /proc/sys/fs/file-nr1024    0    184289#已分配文件句柄的数目    分配了但没有使用的句柄数  文件句柄最大数目#设置$echo284289 > /proc/sys/fs/file-max

    相关文章

      网友评论

          本文标题:rabbitmq 的安装启动(linux)

          本文链接:https://www.haomeiwen.com/subject/wouqhqtx.html