zoukankan      html  css  js  c++  java
  • Rabbitmq-单机安装

    Rabbitmq介绍
     
    RabbitMQ是一款在全球范围内使用非常广泛的开源消息队列中间件。它轻量级、易部署、并支持多种协议。它基于Erlang开发,天生拥有高并发的能力。
     
    RabbitMQ相关术语
    ①生产者:产生消息的进程或服务
    ②消费者:接收消息的进程或服务
    ③队列:RabbitMQ是消息队列中间件,而真正储存消息数据的就是队列,队列可以有很多。
    ④交换器:类似于网络设备交换机,它可以根据不同的关键字,将消息发送到不同的队列。
    ⑤虚拟主机:虚拟主机类似于Apache的虚拟主机,如果没有虚拟主机,当RabbitMQ中的数据越来越庞大,队列越来越多,随之而来的是令人头痛的管理问题,比如队列、交换器命名冲突,它们相互影响等等。虚拟主机能够解决这些问题,而不需要我们部署多个RabbitMQ来负责不同的业务。
    虚拟主机提供了资源的逻辑分组和分隔,每一个虚拟主机本质上是mini版的RabbitMQ服务器,他们有用自己的连接、队列、绑定、交换器,更重要的是有用自己的权限机制,这有点类似服务器和运行在服务器上的虚拟机一样。
     
     
    一、安装erlang
    官网地址:http://erlang.org
     
    1:下载源码包
     
    2:解压
    [root@test1 src]# tar zxvf otp_src_20.3.tar.gz
     
    3:编译
    [root@test1 src]# cd otp_src_20.3
    [root@test1 otp_src_20.3]# ./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac [root@test1 otp_src_20.3]# make -j8 [root@test1 otp_src_20.3]# make install
     
    说明:编译前需要先安装opensll openssl-devel依赖包
    报错提示:configure: error: No curses library functions found
    解决方法:yum -y install  ncurses-devel
     
    4:设置变量
    [root@test1 otp_src_20.3]# vim /etc/profile.d/path.sh
    #!/bin/bash
     
    export PATH=$PATH:/usr/local/erlang/bin
     
    [root@test1 otp_src_20.3]# source /etc/profile.d/path.sh
     
    5:测试变量是否成功
    [root@test1 otp_src_20.3]# erl
    Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [hipe] [kernel-poll:false]
     
    Eshell V9.3 (abort with ^G)
    1>
     
    二、Rabbitmq安装
     
    1:下载源码包
    [root@test1 ~]# wget --no-check-certificate http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz
     
    2:解压
    [root@test1 ~]# tar xvf rabbitmq-server-generic-unix-3.6.15.tar.xz
    [root@test1 ~]# mv rabbitmq_server-3.6.15 /usr/local/rabbitmq
     
    3:设置环境变量
    [root@test1 ~]# vim /etc/profile.d/path.sh
    #!/bin/bash
     
    export PATH=$PATH:/usr/local/erlang/bin
    export PATH=$PATH:/usr/local/rabbitmq/sbin
     
    [root@test1 ~]# source /etc/profile.d/path.sh
     
    4:开启web管理插件
    [root@test1 ~]# rabbitmq-plugins enable rabbitmq_management
    [root@test1 ~]# rabbitmq-plugins list
    [e ] amqp_client 3.6.15
    [e ] cowboy 1.0.4
    [e ] cowlib 1.0.2
    [ ] rabbitmq_amqp1_0 3.6.15
    [ ] rabbitmq_auth_backend_ldap 3.6.15
    [ ] rabbitmq_auth_mechanism_ssl 3.6.15
    [ ] rabbitmq_consistent_hash_exchange 3.6.15
    [ ] rabbitmq_event_exchange 3.6.15
    [ ] rabbitmq_federation 3.6.15
    [ ] rabbitmq_federation_management 3.6.15
    [ ] rabbitmq_jms_topic_exchange 3.6.15
    [E ] rabbitmq_management 3.6.15
    [e ] rabbitmq_management_agent 3.6.15
    [ ] rabbitmq_management_visualiser 3.6.15
    [ ] rabbitmq_mqtt 3.6.15
    [ ] rabbitmq_random_exchange 3.6.15
    [ ] rabbitmq_recent_history_exchange 3.6.15
    [ ] rabbitmq_sharding 3.6.15
    [ ] rabbitmq_shovel 3.6.15
    [ ] rabbitmq_shovel_management 3.6.15
    [ ] rabbitmq_stomp 3.6.15
    [ ] rabbitmq_top 3.6.15
    [ ] rabbitmq_tracing 3.6.15
    [ ] rabbitmq_trust_store 3.6.15
    [e ] rabbitmq_web_dispatch 3.6.15
    [ ] rabbitmq_web_mqtt 3.6.15
    [ ] rabbitmq_web_mqtt_examples 3.6.15
    [ ] rabbitmq_web_stomp 3.6.15
    [ ] rabbitmq_web_stomp_examples 3.6.15
    [ ] sockjs 0.3.4
     
     
    5:启动服务
    [root@test1 ~]# rabbitmq-server -detached
    [root@test1 ~]# netstat -lnpt
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1557/master
    tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 62757/beam.smp
    tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 62344/epmd
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1155/sshd
    tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 62757/beam.smp
    tcp6 0 0 ::1:25 :::* LISTEN 1557/master
    tcp6 0 0 :::5672 :::* LISTEN 62757/beam.smp
    tcp6 0 0 :::4369 :::* LISTEN 62344/epmd
    tcp6 0 0 :::22 :::* LISTEN 1155/sshd
     
    ##rabbitmq监听的端口是25672、4369、5672;15672是web管理插件监听的端口
     
    6:在浏览器输入:IP:15672,用户名和密码默认都是guest,rabbitmq登录限制只允许127.0.0.1访问,所以还需在本机配置一个nginx代理
    7:增加一个Nginx代理本机127.0.0.1:15672,即rabbitmq登录界面
    [root@test1 ~]# vim /usr/local/nginx/conf.d/vhosts/rabbitmq.conf
    #加入以下内容 server { listen 80; server_name www.test.top; #域名自定义,如果没有dns解析,需要在本地绑定hosts location / { proxy_pass http://127.0.0.1:15672; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
     
    [root@test1 ~]# nginx -s reload
     
  • 相关阅读:
    Hibernate 3入門
    如何调整液晶显示器保护你的视力
    WEB前端开发经验总结实战篇
    【JS】引用类型之Array
    Oracle的DBA管理常用sql
    使用cos组建上传文件
    前台js将json转换成json对象的方法
    关于父页面访问iframe中元素和js的那点事
    数据库中IN和EXISTS的区别
    关于google浏览器有时莫名自动提交表单的问题
  • 原文地址:https://www.cnblogs.com/douyi/p/11756056.html
Copyright © 2011-2022 走看看