什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 它可以作为...
分类:
其他好文 时间:
2015-01-06 15:19:30
阅读次数:
107
从AMQP协议可以看出,MessageQueue、Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用Rabbit MQ构建消息队列以及使用过程中的注意事项。1. 声明MessageQueue 在Rabbit MQ中,无论是生产....
分类:
其他好文 时间:
2015-01-06 15:03:10
阅读次数:
493
上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity(严重程度)来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。1. Bindings绑定 上篇文章中我们是这么做的绑定:channel.QueueBind(queueName, EX...
分类:
其他好文 时间:
2015-01-06 13:45:30
阅读次数:
144
上篇文章中,我们把每个Message都是deliver(提供)到某个Consumer。在这篇文章中,我们将会将同一个Message deliver(提供)到多个Consumer中。这个模式也被成为 "publish / subscribe"。 这篇文章中,我们将创建一个日志系统,它包含两个部分:第一...
分类:
其他好文 时间:
2015-01-06 13:43:50
阅读次数:
111
在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题。在实际的应用场景中,这是远远不够的。从本篇文章开始,我们将结合更加实际的应用场景来讲解更多的高级用法。 当有Consumer需要大量的运算时,RabbitMQ Server需要一定的...
分类:
其他好文 时间:
2015-01-06 13:21:35
阅读次数:
179
2. Sending第一个program send.cs:发送Hello world 到queue。正如我们在上篇文章提到的,你程序的第9行就是建立连接,第12行就是创建channel,第14行创建名字为hello的queue。 1 using System; 2 using RabbitMQ.Cl...
分类:
其他好文 时间:
2015-01-06 11:53:32
阅读次数:
106
handler 主要用于发送消息和接收消息,handler可以更新ui延时更新uilooper 主要用于从消息队列中循环读取消息并把消息发送给handlermessageQueue 是一个消息队列,用来存储消息。下面从源码的角度分析三者的关系:Handler handler = new Handle...
分类:
其他好文 时间:
2015-01-05 21:45:44
阅读次数:
195
无锁队列
第一篇文章末尾我们提到的《无锁队列的实现》(陈皓(hào)),该文末尾提到的“用数组实现无锁队列”,即用 RingBuffer 实现的无锁队列。
分类:
其他好文 时间:
2015-01-05 10:44:19
阅读次数:
305
MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法RabbitMQ是流行的开源消息队列系统,用erlang语言开发几个概念说明:Broker:简单来说就是消息队列服务器实体。 Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 Queu...
分类:
其他好文 时间:
2015-01-04 16:35:20
阅读次数:
295
前续一个无锁消息队列引发的血案:怎样做一个真正的程序员?(一)——地:起因平行时空 在复制好上面那一行我就先停下来了,算是先占了个位置,虽然我知道大概要怎么写,不过感觉还是很乱。 我突然想到,既然那么纠结,那么混乱,那么不知所措,我们不如换个视角。记得高中时看过的为数不多的长篇小说《穆斯林的葬礼.....
分类:
其他好文 时间:
2015-01-03 23:43:46
阅读次数:
518