上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 如果Rabbit只管按顺序把消息发到各个消费者身上,不考虑消费者负载的话,很可能出现,一个机器配置不高的消费者那里堆积了很多消息处理不完,同时配置高的消费者却一直很轻松。为解决此问题,可以在各个消费者端,配置perfetch=1,意思就是告诉RabbitMQ在我这个消费者当前消息还没处理完的时候就不 阅读全文
posted @ 2017-11-22 15:09 人生是一场修行 阅读(11129) 评论(0) 推荐(0) 编辑
摘要: 之前我们讲,RabbitMQ server是采用轮询的方式,公平的依次给每一个消费者。下面我们就来讲讲RabbitMQ 是如何把消息持久化的。 1.1、RabbitMQ手动确认 是消费者处理消息完毕之后,需要RabbitMQ server手动去确认是否处理完毕,而不是自动确认。 通过 rabbitm 阅读全文
posted @ 2017-11-21 16:45 人生是一场修行 阅读(2721) 评论(0) 推荐(0) 编辑
摘要: 之前我们演示了,如何通过rabbitmq实现消息队列的,而且是一个生产者对应一个消费者,那我现在想一个生产者对应多个消费者,又会有什么样的情况发生呢? 2.1、no_ack参数 说明:no_ack 意思是 no acknowlargement 不确定的意思,如果这个no_ack=True 表示你服务 阅读全文
posted @ 2017-11-21 16:10 人生是一场修行 阅读(4001) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ,它是干嘛用的呐?它是用来发消息的,消息队列,那它跟我们之前的学习的python的线程queue和进程的queue有什么区别呢?其实他们干的事情都是一样的。先来说说我们之前学习的python的queue吧。 如果是两个独立的程序,即便是python 程序,两个完全独立的python程 阅读全文
posted @ 2017-11-20 17:34 人生是一场修行 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 之前我们就讲了select的这种方式,使用的是轮询方式去监测客户端的连接,效率比较低下,我们今天来聊聊epoll的方式,这种效率更高,但是这种方式在Windows下不支持,在Linux是支持的,那就不得不说下面的一个模块selectors。 2.1、英文解释 This module allows h 阅读全文
posted @ 2017-10-27 17:01 人生是一场修行 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 之前我们讲了select、poll、epoll的介绍,我们今天先来说说select的IO多路复用代码实现。我们先来根据之前图说说select的原理。 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno() 阅读全文
posted @ 2017-10-27 16:36 人生是一场修行 阅读(275) 评论(0) 推荐(0) 编辑
摘要: select 负责监控和检测很多个socket连接,与下面这个内核态到用户态没什么关系,它只是说监控连接有一个连接,然后其中100个连接0k了,它就会返回。 说明:IO多路复用中包括 select、pool、epoll,这些都属于同步,还不属于异步。 2.1、select select最早于1983 阅读全文
posted @ 2017-10-27 10:33 人生是一场修行 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 刚才说了,对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段:1. 等待数据准备 (Waiting for the data to be ready)2. 将数据从内核 阅读全文
posted @ 2017-10-26 17:59 人生是一场修行 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1、我们之前讲了IO操作什么时候切换回来呢? 我们刚刚讲了回调函数,这个回调函数是当你的程序一遇到IO操作,再一切换,这个切换的时候,切换之前你等着IO操作完了再回来。 2、IO 为什么不阻塞呐? 因为IO操作是用操作系统完成的,咋们用户读一个文件,你以为自己的程序打开一个文件,然后去把文件的内容读 阅读全文
posted @ 2017-10-26 17:43 人生是一场修行 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求 上面的几种方式,各有千秋, 第(1)中方法,由于创建新 阅读全文
posted @ 2017-10-26 15:55 人生是一场修行 阅读(166) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页