设为首页 加入收藏

TOP

关于RabbitMQ(一)
2019-09-02 23:21:22 】 浏览:31
Tags:关于 RabbitMQ

 1. 生产者: 在现实生活中就好比制造商品的工厂,他们是商品的生产者。生产者只意味着发送。发送消息的程序称之为一个生产者。

2. 队列:rabbitMQ就像一个仓库,一个仓库里面可以 有很多队列,每个队列才是服务器之间消息通信的载体。

3.消费者:消费者就好比是从商店购买或从仓库取走商品的人,消费的意思就是接收。消费者是一个程序,主要是等待接收消息。

4.交换器:在生产者和消息队列之间的交换器,功能类似于网络宽带的交换机,可以根据不同的关键字,将信息发送到不同的队列。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MQ不能进行批量的消息处理,你看到的传输再多也只是消息被一条一条的存入队列,消费者从队列中一条一条的取出。这跟kafKa有区别,所以在效率上比不上kafKa,但是MQ主打的是稳定

每次消费者取出消息时会通知队列,我拿到了,当队列接收到这条消息,就会把消息删除,这是默认的ACK机制

如果在接收消息之后,消费者挂掉,或者任何情况没有返回ack,队列中这条消息将不会删除,可以一直存着,等待其他消费者来取。    

注意,但是如果设置不返回ack,在不断的发送消息到队列又不删除,会导致MQ仓库  boom~~~~

 

以上内容参考文章:https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html

 

 

 

 

 

RabbitMQ安装:

安装erlang的依赖:
yum -y install epel-release
yum clean all
yum makecache
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel bzip2 gtk+* mesa* freeglut*


wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.2/wxWidgets-3.1.2.tar.bz2
bzip2 -d wxWidgets-3.1.2.tar.bz2
tar -xvf wxWidgets-3.1.2.tar
cd wxWidgets-3.1.2
./configure --with-opengl --enable-debug --enable-unicode
make && make install
ldconfig

 

下载并安装ERLANG
wget http://erlang.org/download/otp_src_22.0.tar.gz
tar -zxvf otp_src_22.0.tar.gz -C /usr/local/
cd /usr/local/otp_src_22.0/
./configure --prefix=/usr/lib/erlang --without-javac --disable-javac
make && make install
/usr/lib/erlang/bin/erl -version
  Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.4

配置环境变量
echo 'export PATH=/usr/lib/erlang/bin:$PATH' >>/etc/profile
source /etc/profile

 

下载rebbitmq包并安装
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
mv rabbitmq_server-3.7.15/ /usr/local/rabbitmq
echo 'export PATH=/usr/local/rabbitmq/sbin:$PATH'>>/etc/profile
source /etc/profile

启动rabbitmq-server
rabbitmq-server (加 -detached 为后台启动)

检查服务启动状态
netstat -lnpt|grep beam
netstat -lnpt|grep :15672

启动web管理插件
rabbitmq-plugins enable rabbitmq_management

添加远端登录账户
#添加用户 admin 密码为 123456
rabbitmqctl add_user admin 123456

#将admin 设置为管理员权限
rabbitmqctl set_user_tags admin administrator

#将admin 设置为远端登录
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

重启rabbitmq-server并测试访问
rabbitmq-server -detached
rabbitmqctl stop_app
###################################
报错:
[root@kvm2 ~]# rabbitmq-server
ERROR: epmd error for host kvm2: timeout (timed out)
解决:(添加主机名即可)
[root@kvm2 ~]# vim /etc/hosts
127.0.0.1 kvm2 localhost localhost.localdomain localhost4 localhost4.localdomain4
###################################

浏览器登录rabbitmq:
http://IP:15672
账号:admin
密码:123456

 

 

 

 

 

 

 

 

 

RabbitMQ节点绑定到端口(打开服务器TCP套接字)以接受客户端和CLI工具连接。其他进程和工具(如SELinux)可能会阻止RabbitMQ绑定到端口。发生这种情况时,节点将无法启动。CLI工具,客户端库和RabbitMQ节点也打开连接(客户端TCP套接字)。防火墙可以防止节点和CLI工具相互通信。

各端口解释:

4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务
5672,5671:AMQP 0-9-1和1.0客户端使用没有和使用

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Ansible--项目实战 下一篇修改linux系统TCP连接数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目