MQ全称为Message Queue 消息队列(MQ)是一种应用程序对应用程序的通信方法。
MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。这样发布者和使用者都不用知道对方的存在。
概念:先进先出的一种数据结构。(联想到栈,栈是先进后出的数据结构)
消息队列可以简单理解为:把要传输的数据放在队列中。
消息队列是一种中间件,它是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削峰,实现高性能,高可用,可伸缩和最终一致性架构。
外卖系统消息推送:
解耦:系统与系统之间直接对接会存在耦合性过高的情况,导致代码在维护的时候会消耗大量的时间和精力。
异步消息:消费者这从消息队列中获取消息后,互不干扰,各自拿到需要的数据后,各做各的。
流量削峰:在接收请求的系统之前创建一个消息队列,每次请求过来都先经过消息队列,这样极大的保护了系统,免受请求过多而宕机的危险
rabbitMQ是一款基于AMQP协议的消息中间件,它能够在应用之间提供可靠的消息传输。在易用性,扩展性,高可用性上表现优秀。使用消息中间件利于应用之间的解耦,生产者(客户端)无需知道消费者(服务端)的存在。而且两端可以使用不同的语言编写,大大提供了灵活性。
安装:内含erlang环境包,以及RabbitMQ软件包 windows版
链接:https://pan.baidu.com/s/1RvC0V8t-HIjqGlDTY6SiCg
提取码:np9h
windows安装rabbitmq 直接下载erlang安装包,和rabbitmq-server安装包 1.下载erlang的安装包 http://erlang.org/download/otp_win64_22.2.exe 2.下载rabbitmq-server服务端安装包 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.2/rabbitmq-server-3.8.2.exe 3.先安装erlang,再安装rabiitmq 4.配置环境变量,加载erlang和rabbitmq 在admin用户的PATH中,追加erlang和rabbitmq的可执行命令目录,路径即可 ############路径按照自己的来 C:\Program Files\erl10.6\bin; C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.2\sbin 5.重新开启cmd命令行,重新加载PATH值 6.开启rabbitmq后台管理页面,测试命令是否可以用 rabbitmq-plugins enable rabbitmq_management 7.此时可以访问本地的后台管理界面 http://127.0.0.1:15672/ 8.创建rabbitmq用户,用于连接服务端,创建消息队列 rabbitmqctl add_user admin admin #创建用户,密码 rabbitmqctl set_user_tags admin administrator #设置用户管理员权限 rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" #设置用户允许访问所有的队列 9.重启rabbitmq服务端,用yuanhao用户登录 在win中找到服务 -> 找到rabbitmq -> 重启此服务 10.用你的账号密码登录rabbitmq-server服务端 linux安装rabbitmq centos系列 yum install rabbitmq-server erlang -y
生产者
### 生产者 import pika # 连接RabbitMQ服务端 connection = pika.BlockingConnection(pika.ConnectionParameters(‘localhost‘)) # 实例化一个对象 channel = connection.channel() # 申明一个队列 channel.queue_declare(queue=‘hello‘) # 将数据放入队列 channel.basic_publish(exchange=‘‘, #空字符串表示默认为简单模式 routing_key=‘hello‘, #指定队列名称 body=‘Hello World!‘) #放入的数据 print(" [x] Sent ‘Hello World!‘")
原文:https://www.cnblogs.com/kindvampire/p/12198547.html