连网站建设,神马收录提交入口,php创建网页,网站开发哪家公司口碑好文章目录python内置队列先进先出的队列Queue分布式队列rabbitmqrocketmqredis list 队列python内置队列
标准库queue提供Queue队列、LifoQueue栈、PriorityQueue优先级队列用于单机的生产者、消费者缓冲队列#xff1b; 生产者#xff0c;生产消息的进程或线程#xff1b…
文章目录python内置队列先进先出的队列Queue分布式队列rabbitmqrocketmqredis list 队列python内置队列
标准库queue提供Queue队列、LifoQueue栈、PriorityQueue优先级队列用于单机的生产者、消费者缓冲队列 生产者生产消息的进程或线程 消费者使用消息的进程或者线程
先进先出的队列Queue
pending…
在这里插入代码片分布式队列
用于不同的应用程序/主机之间通信。
rabbitmq
erlang语言实现比较稳定基于AMQP协议不限制实现语言可以python/java/go等client/server模式目前最流行的消息队列之一应用系统解耦解决高并发减轻服务器压力分布式系统集成系统之间对接
Broker接收和分发消息的应用RabbitMQ Server就是Message Broker。 Virtual host当多个用户使用同一个RabbitMQ Server时可以划分出多个虚拟机每个用户在自己的vhost创建exchange/queue等。 Connectionpublisher/consumer和broker之间的TCP连接。 Channel如果每一次访问RabbitMQ都建立一个Connection在消息量大时建立TCP Connection的开销是巨大的效率也非常低。Channel是在Connection内部建立的逻辑连接通常每个thread会创建单独的Channel进行通信channel之间是完全隔离的。Channel作为轻量级的Connection极大减少了操作系统建立TCP连接的开销。 生产者生产消息的应用程序将消息放入消息队列中。 消费者使用消息的应用程序从消息队列中获取消息。
官网参考 原理图 建立好连接后生产者将消息交给exchange(交换机)由交换机根据routing_key进行转发到相应的队列中消费者从声明的队列中获取消息进行消费。
安装rabbitmq (以windows为例其他系统参考官网)
首先安装erlang运行环境下载安装后bin配置环境变量下载rabbitmq并安装根据自己的操作系统及erlang版本选择兼容版本运行rabbitmq 服务进入安装目录的sbin下终端输入rabbitmqctl start_app启动插件管理 rabbitmq-plugins enable rabbitmq_management查看状态 rabbitmqctl status如下为成功shutdown关闭 浏览器打开UI界面可以使用guest/guest登录。 登录成功如下
rabbitmq工作模式
生产者、消费者模式 hello world 一个生产者一个消费者work queue 一个生产者多个消费者 发布、订阅模式 fanout 广播模式direct 根据routing_key定向模式topic模式根据正则匹配routing_key进行转发消息。 rpc模式
使用rabbitmq pending rocketmq
基于JMS实现仅支持java语言
redis list 队列
pending…