消息队列:是简单的生产者和消费者模式,它的出现是让各个服务板块之间解耦和消息通知。比如,我们一般生成服务板块中的数据存在有:数据库,静态文件,搜索系统,hdfs等,那么如果数据库中的数据发生了变化,怎么把这个消息推送给其他的数据存储单元呢?如果单纯的用服务接口进行调用,就会表现各个板块间耦合性太高,并且显得冗余。消息队列的出现很好的解决了这个问题,当一方面的数据出现了变化,作为消息的提供者只需要向消息队列中发送消息,其他有订阅关系的就可以进行相应的数据更新。
消息队列分类:
AMQP: 直白话就是定义了协议,只要满足该协议就ok,可以跨语言 常见的有(rabbitMq)
JMS: 是java提供的一套api ,只能用java语言来进行调用(ActiveMq,rocketMq)
今天学的就是基于高并发的erlang语言开发的 rabbitMQ。
Linux下安装rabbitmq(rabbitmq是基于erlang语言开发的所以首先要有erlang的环境)
1:安装erlang语言开发环境(我这边操作环境是centos6)
1.1:在线安装:(采用yum来进行安装)
yum install esl-erlang_17.3-1~centos~6_amd64.rpm
yum install esl-erlang-compat-R14B-1.el6.noarch.rpm
1.2:离线安装:
先要有相应的erlang的安装包(百度网盘:链接: https://pan.baidu.com/s/1yUULtPDHxj4-xuVXsRKcUw 提取码: rvgk)我这里提供了相应的安装所需文件
将该文件上传到linux系统,然后依次执行以下命令
rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps (npm 解压安装)
rpm -ivh esl-erlang17.3-1~centos~6amd64.rpm --force --nodeps
rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps 至此 erlang语言安装完成
2:安装rabbitmq(提取文件: 链接: https://pan.baidu.com/s/1ZvQc30NJYdB3Gp1eTVbIWQ 提取码: dbya )这边安装的是 3.4.1版本的
上传后执行 :rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm 来安装rabbitmq
设置配置文件的访问为任何人都可以访问:cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
vi /etc/rabbitmq/rabbitmq.config
将其中的一行 %%{loopback_users,[]}, 修改为 {loopback_users,[]} 一定要注意去掉后面的逗号
3:可以开启插件管理 ,运行命令 rabbitmq-plugins enable rabbitmq_management 就可以用界面来管理了
4:启动rabbit:service rabbit-server start
5:防火墙端口管理:
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT #开放端口号
/etc/rc.d/init.d/iptables save #保存端口号设置信息
chkconfig rabbitmq-server on #设置开机自启动
至此rabbitmq就安装好了,通过 http:192.168.13.253:15672/ 就可以访问了
最后,为了高薪一起分享,一起学习,交流邮箱(可能不会答复):1456616693@qq.com