一、RabbitMQ队列

不同进程间的通信,简称IPC。不同的进程间的通信,可以基于队列解决,将生产者和消费者进行解耦,中间的队列作为其桥梁。RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。RabbitMQ可以,多个程序同时使用RabbitMQ ,但是必须队列名称不一样。采用erlang语言,属于爱立信公司开发的。

消息中间件 --->就是消息队列

异步方式:不需要立马得到结果,需要排队

同步方式:需要实时获得数据,坚决不能排队

subprocess 的Q也提供不同进程之间的沟通

应用场景:

  电商秒杀活动

  抢购小米手机

  堡垒机批量发送文件

二、Centos6.x系统编译安装RabbitMQ

1、查看环境:

[root@rabbitmq ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@rabbitmq ~]# uname -r
2.6.32-504.el6.x86_64

2、安装erlang环境

1、安装依赖包:yum install gcc ncurses ncurses-base ncurses-devel ncurses-libs ncurses-static ncurses-term ocaml-curses -yyum install ocaml-curses-devel openssl-devel zlib-devel openssl-devel perl xz xmlto m4 kernel-devel -y2、下载otp_src_19.3.tar.gzwget http://erlang.org/download/otp_src_19.3.tar.gz3、tar xvf otp_src_19.3.tar.gz4、cd otp_src_19.35、./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac6、make && make install7、配置erlang环境:echo "export PATH=$PATH:/usr/local/erlang/bin" >>/etc/profile#使环境变量配置生效source /etc/profile7、配置解析
[root@rabbitmq otp_src_19.3]#
echo "127.0.0.1 自己的主机名" >>/etc/hosts    #rabbitmq改成你自己主机名备注:
启动rabbitmq报错:[root@bogon sbin]# /usr/local/rabbitmq/sbin/rabbitmq-server -detacheERROR: epmd error for host bogon: timeout (timed out) 原因:解析不了主机名解决办法:先查看主机名[root@rabbitmq ~]# hostnamerabbitmq然后再执行下面这步echo "127.0.0.1 主机的主机名" >>/etc/hosts 

3、安装rabbitMQ

1、下载rabbitmq-server-generic-unix-3.6.5.tar.xz
2、tar xvf rabbitmq-server-generic-unix-3.6.5.tar.xz
3、mv rabbitmq_server-3.6.5/ /usr/local/rabbitmq
4、启动:#启动rabbitmq服务/usr/local/rabbitmq/sbin/rabbitmq-server#后台启动/usr/local/rabbitmq/sbin/rabbitmq-server -detached#关闭rabbitmq服务/usr/local/rabbitmq/sbin/rabbitmqctl stop或ps -ef | grep rabbit 和 kill -9 xxx#开启插件管理页面/usr/local/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management#创建用户/usr/local/rabbitmq/sbin/rabbitmqctl add_user rabbitadmin 123456/usr/local/rabbitmq/sbin/rabbitmqctl set_user_tags rabbitadmin administrator#给用户授权/usr/local/rabbitmq/sbin/rabbitmqctl set_permissions -p / rabbitadmin ".*" ".*" ".*"#语法:1
set_permissions [-p <vhost>] <user> <conf> <write> <read>

4、登录RabbitMQ_web页面

三、Centos7.x系统编译安装RabbitMQ

1、系统环境

[root@rabbitmq sbin]# cat /proc/version
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015

1.1、Centos7.x关闭防火墙

1 [root@rabbitmq /]# systemctl stop firewalld.service
2
3 [root@rabbitmq /]# systemctl disable firewalld.service
4 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
5 Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

如果不想关闭防火墙,可以通过如下方法处理:

1 开放5672端口:
2
3 firewall-cmd --zone=public --add-port=5672/tcp --permanent
4 firewall-cmd --reload 

2、下载erlang和rabbitmq-server的rpm

http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm

3、安装erlang

[root@rabbitmq ~]# cd /server/scripts/
[root@rabbitmq scripts]# ll
total 23508
-rw-r--r--. 1 root root 18580960 Jan 28 10:04 erlang-19.0.4-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 5487706 Jan 28 10:04 rabbitmq-server-3.6.6-1.el7.noarch.rpm

[root@rabbitmq scripts]# rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm

测试erlang是否安装成功:

[root@rabbitmq scripts]# erl
Erlang/OTP 19 [erts-8.0.3] [source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.0.3 (abort with ^G)
1> 5+6.
11
2> halt().  #退出

4、安装socat (备注:安装RabbitMQ必须先安装socat依赖,否则会报错)

[root@rabbitmq scripts]# yum install socat

5、安装RabbitMQ

[root@rabbitmq scripts]# rpm -ivh rabbitmq-server-3.6.6-1.el7.noarch.rpm

启动和关闭:

/sbin/service rabbitmq-server start #启动服务

/sbin/service rabbitmq-server stop #关闭服务

/sbin/service rabbitmq-server status #查看服务状态

示例:

 1 [root@rabbitmq ~]# service rabbitmq-server status2 Redirecting to /bin/systemctl status  rabbitmq-server.service3 ● rabbitmq-server.service - RabbitMQ broker4    Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)5    Active: active (running) since Sat 2017-01-28 20:20:46 CST; 8h ago6  Main PID: 2892 (beam.smp)7    Status: "Initialized"8    CGroup: /system.slice/rabbitmq-server.service9            ├─2892 /usr/lib64/erlang/erts-8.0.3/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -st...
10            ├─3027 /usr/lib64/erlang/erts-8.0.3/bin/epmd -daemon
11            ├─3143 erl_child_setup 1024
12            ├─3153 inet_gethost 4
13            └─3154 inet_gethost 4
14
15 Jan 28 20:20:43 rabbitmq rabbitmq-server[2892]: RabbitMQ 3.6.6. Copyright (C) 2007-2016 Pivot...nc.
16 Jan 28 20:20:43 rabbitmq rabbitmq-server[2892]: ##  ##      Licensed under the MPL.  See http...om/
17 Jan 28 20:20:43 rabbitmq rabbitmq-server[2892]: ##  ##
18 Jan 28 20:20:43 rabbitmq rabbitmq-server[2892]: ##########  Logs: /var/log/rabbitmq/rabbit@ra...log  #日志存放地址
19 Jan 28 20:20:43 rabbitmq rabbitmq-server[2892]: ######  ##        /var/log/rabbitmq/rabbit@ra...log
20 Jan 28 20:20:43 rabbitmq rabbitmq-server[2892]: ##########
21 Jan 28 20:20:43 rabbitmq rabbitmq-server[2892]: Starting broker...
22 Jan 28 20:20:45 rabbitmq rabbitmq-server[2892]: systemd unit for activation check: "rabbitmq-...ce"
23 Jan 28 20:20:46 rabbitmq systemd[1]: Started RabbitMQ broker.
24 Jan 28 20:20:46 rabbitmq rabbitmq-server[2892]: completed with 0 plugins.
25 Hint: Some lines were ellipsized, use -l to show in full.

#查看端口

1 [root@rabbitmq sbin]# ps -ef|grep rabbitmq
2 rabbitmq  2892     1  0 Jan28 ?        00:01:39 /usr/lib64/erlang/erts-8.0.3/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K true -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.6/ebin -noshell -noinput -s rabbit boot -sname rabbit@rabbitmq -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@rabbitmq.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@rabbitmq-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.6/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@rabbitmq-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@rabbitmq" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
3 rabbitmq  3027     1  0 Jan28 ?        00:00:00 /usr/lib64/erlang/erts-8.0.3/bin/epmd -daemon
4 rabbitmq  3143  2892  0 Jan28 ?        00:00:01 erl_child_setup 1024
5 rabbitmq  3153  3143  0 Jan28 ?        00:00:00 inet_gethost 4
6 rabbitmq  3154  3153  0 Jan28 ?        00:00:00 inet_gethost 4
7 root     24739 21359  0 03:18 pts/0    00:00:00 grep --color=auto rabbitmq

转载于:https://www.cnblogs.com/skiler/p/6865748.html

RabbitMQ消息队列———安装(一)相关推荐

  1. openstack mysql默认密码_OpenStack 安装数据库和rabbitmq消息队列 (三)

    一)安装配置数据库 1.1.安装包 # yum install mariadb mariadb-server python2-PyMySQL -y 1.2.配置数据库 # vim /etc/my.cn ...

  2. RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列

    上一篇已经讲了Rabbitmq如何在Windows平台安装,不懂请移步:RabbitMQ学习系列一:windows下安装RabbitMQ服务 一.理论: .net环境下,C#代码调用RabbitMQ消 ...

  3. rabbitMQ消息队列 – 面板介绍及简单demo

    首先rabbit安装好之后,运维会给一个控制面板. 默认账号密码为guest 登入以后可以看到具体界面. 在此鸣谢百度翻译给予的大力支持.. ###写一个简单的demo 编写之前..虽然说可以直接用底 ...

  4. 大数据互联网架构阶段 QuartZ定时任务+RabbitMQ消息队列

    QuartZ定时任务+RabbitMQ消息队列 一 .QuartZ定时任务解决订单系统遗留问题 情景分析: 在电商项目中 , 订单生成后 , 数据库商品数量-1 , 但是用户迟迟不进行支付操作 , 这 ...

  5. (四)RabbitMQ消息队列-服务详细配置与日常监控管理

    (四)RabbitMQ消息队列-服务详细配置与日常监控管理 原文:(四)RabbitMQ消息队列-服务详细配置与日常监控管理 RabbitMQ服务管理 启动服务:rabbitmq-server -de ...

  6. 使用EasyNetQ组件操作RabbitMQ消息队列服务

    RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合, ...

  7. 初探 RabbitMQ 消息队列

    初探 RabbitMQ 消息队列 rabbitmq基础概念常见应用场景导入依赖属性配置具体编码定义队列实体类控制器消息消费者主函数测试总结说点什么 SpringBoot 是为了简化 Spring 应用 ...

  8. 消息队列——RabbitMQ消息队列集群

    RabbitMQ消息队列集群 消息队列/中间件 RabbitMQ详解 RabbitMQ单机部署 RabbitMQ集群部署 消息队列/中间件 一.前言 在我们秒杀抢购商品的时候,系统会提醒我们稍等排队中 ...

  9. php中rabbitmq消息乱码,PHP实现RabbitMQ消息队列(转)

    本篇文章给大家带来的内容是关于PHP和RabbitMQ实现消息队列的完整代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 先安装PHP对应的RabbitMQ,这里用的是 php_a ...

最新文章

  1. 2022 408 大纲变动
  2. line-height 行高
  3. 2016/11/18
  4. 个人喜欢的关于模式识别、机器学习、推荐系统、图像特征等方面个人主页及博客
  5. 面试必备算法题集之「动态规划」Ⅰ
  6. 代理查询 mysql_查询数据库代理设置
  7. MVC webuploader 图片
  8. 日常 Python 编程优雅之道
  9. 犀牛7基本训练学习教程 Rhino 7 Essential Training
  10. (开源)微信小程序实时控制stc89c51,通过esp8266
  11. 2的n次方对照表,十六进制二进制对照表
  12. 少儿计算机编程都学什么,少儿编程课是学什么的?
  13. Palabos User Guide中文解读 | 第十四章 | 网格加密Refinement
  14. 笔记33 笨办法学python练习40之二:类和对象
  15. 算法租用游艇问题c语言,动态规划租用游艇问题
  16. tpc服务器做系统,什么是TPC-C,它为什么会退出历史舞台?
  17. 为什么说人生低谷期是最好的增值期?
  18. 国内物联网平台(7):Ablecloud物联网自助开发和大数据云平台
  19. 2021年G3锅炉水处理考试资料及G3锅炉水处理考试总结
  20. 办理ISO13485医疗器械质量管理体系认证认证的条件

热门文章

  1. ubuntu安装环境软件全文档
  2. Delphi获取默认打印机名称及端口
  3. 装饰模式在Intermec CK1应用程序中通讯模块的应用
  4. Jenkins 部署vue到服务器
  5. 解决Feign接口调用有时候不好用的分析思路
  6. DNS Bind9在windows7下
  7. Django2 Web 实战03-文件上传
  8. WebLogic常见问题
  9. Oracle Controlfile控制文件中记录的信息片段sections
  10. 查看oracle当前的连接数