上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。1. Bindings绑定 上篇文章中我们是这么做的绑定:[python]view plaincopychannel.queue_b...
分类:
其他好文 时间:
2015-11-18 00:47:56
阅读次数:
201
在上篇文章RabbitMQ消息队列(五):Routing 消息路由中,我们实现了一个简单的日志系统。Consumer可以监听不同severity的log。但是,这也是它之所以叫做简单日志系统的原因,因为是仅仅能够通过severity设定。不支持更多的标准。 比如syslogunix的日志工具,它可以...
分类:
其他好文 时间:
2015-11-18 00:37:11
阅读次数:
206
通信类电子科技总的一个方向: 软件&硬件架构设计能力(附加产品思维)。以【智能家居】 产品为例:服务端 移动端^||||v硬件终端服务器架构--接口架构--存储架构--业务架构--消息路由移动终端[Android&IOS]--App功能界面设计--App功能架构--App业务实现硬件终...
分类:
其他好文 时间:
2015-11-04 00:38:24
阅读次数:
208
一、客户端代码存在的必要性以及我认为需要解决的问题 就NIO通讯本身而言完全没必要分开,其实客户端代码和服务端代码可以放到一起。但是在业务上是分开的。我在做nio的时候思考了许多我自己认为应该解决的问题;...
分类:
其他好文 时间:
2015-08-28 15:46:27
阅读次数:
122
一、报文队列的处理: 如果将多路复用器获取到的所有事件,阻塞式的同步处理,那恐怕会严重影响selector的性能,所以我把从客户端接收到的大部分消息,都放入了队列中,然后另外启动队列的消费线程对消息进行异步...
分类:
其他好文 时间:
2015-08-26 15:55:05
阅读次数:
149
本来我打算单独开一章,专门说明粘包和断包,但是觉得这个事儿我在做的时候挺头疼的,但是对于别人或许不那么重要,于是就在这里写吧。 那么何谓粘包、何谓断包呢? 粘包:我们知道客户端在写入报文给服务端的时候...
分类:
编程语言 时间:
2015-08-18 23:02:24
阅读次数:
345
一、简单介绍: 服务端通讯主线程是消息路由服务的启动类,其主要作用如下: 1、初始化相关配置; 2、根据配置的ip和port创建tcp服务; 3、接收客户端连接,并给客户端分配令牌; 4、接收客户端的登录请求,并将客...
分类:
编程语言 时间:
2015-08-18 19:51:22
阅读次数:
113
一、服务器端结构: 如图所示: 指令类和报文类:对下行的指令和上行的报文进行了类的封装,分别实现IOrder和IPacket接口,继承Order,Packet基类; 服务主线程:接受客户端连接,将客户端发送的报文投递到通讯队...
分类:
其他好文 时间:
2015-08-18 12:27:34
阅读次数:
156
首先解释下目标的概念:celery任务消息会由各种途径(比如手动通过python shell触发、通过tornado触发等)发往统一的一个celery broker,然后任务消息会由不同server上的worker去获取并执行。具体点说就是,借助celery消息路由机制,celery broker中开不同的消息队列来接收相应类型的任务消息,然后不同server上开启worker来处理目标消息队列里...
分类:
其他好文 时间:
2015-08-14 19:20:46
阅读次数:
6482
一、 发布订阅消息
发布订阅(pub/Sub)是一种消息通信模式,主要的目的是解除消息发布者和消订阅者之间的耦合,Redis作为一个pub/sub的server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向Redis Server订阅自己感兴趣的消息类型,Redis将信息类型称为通道(channel).当发布者通过publish...
分类:
其他好文 时间:
2015-07-31 18:20:56
阅读次数:
108