Queue与Topic的比较1、JMS Queue执行load balancer语义:一条消息仅能被一个consumer收到。如果在message发送的时候没有可用的consumer,那么它将被保存一直到能处理该 message的consumer可用。如果一个consumer收到一条message后...
分类:
其他好文 时间:
2014-08-04 13:40:07
阅读次数:
448
1.Failover 当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务的对象已经更换。如数据库、应用服务、硬件设备等的失效转移。2.STOMP(Streaming Text Orientated Message Protocol)流文本....
分类:
其他好文 时间:
2014-08-03 20:23:25
阅读次数:
331
tair是一个分布式KV存储引擎,当新增机器或者有机器down掉的时候,tair的dataserver会根据ConfigServer生成的新的对照表进行数据的迁移和清理。在数据清理的过程中就用到了在tair中新增的Compaction方式——CompactRangeSelfLevel,顾名思义,这个...
分类:
数据库 时间:
2014-08-03 12:37:25
阅读次数:
885
1.概述消息队列可认为是消息链表。有足够写权限的线程可以往队列中放置消息,有足够读权限的进程可以从队列中取走消息。每个消息是一个记录,由发送着赋予一个优先级。在像队列中写入消息时,不需要某个进程在该队列上等待消息到达。这与管道不同,管道必须现有读再有写。消息队列具有随内核的持续性,与管道不同。进程结...
分类:
其他好文 时间:
2014-08-01 22:46:32
阅读次数:
315
在多线程开发中,消息队列是一种有效的线程间通讯方式.我在开发KendyNet的过程中一直在寻找一种高效而易用的消息队列实现.期间使用过的一种实现可参考message queue的设计。这个实现的消息队列是相当高效的,但其存在的一个问题是,如果发送方相对较慢,则需要一个定时机制以固定间隔将本线程中缓存...
分类:
编程语言 时间:
2014-07-31 23:15:40
阅读次数:
317
Handler的使用(一) Handler基本概念: Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分逐个的在消息队列中将消息取出,然后对消息进行出来,就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的....
分类:
移动开发 时间:
2014-07-31 20:37:57
阅读次数:
456
glog本身是很高效的,google的大牛肯定知道大规模的写日志用glog的话肯定会影响业务线程的处理,带负荷的磁盘IO谁都桑不起。比方levelDB就是默认异步写,更不用说google的三驾马车都是分布式的。之前看过其论文,简直是引领时代。在glog的issue里有人提出了异步写的问题,可是语焉不...
分类:
编程语言 时间:
2014-07-31 20:06:27
阅读次数:
388
cells的功能允许用户以更分散的方式去扩展OpenStack计算云而无需使用复杂的技术,比如数据库和消息队列的集群。它的目的是支持非常大规模的部署。当启用了此功能,在OpenStack计算云中的主机被划分为组称为cells。cells可以被配置成树形结构。顶层的cell的主机应该运行nova-ap...
分类:
其他好文 时间:
2014-07-30 23:50:45
阅读次数:
298
leveldb作为一个KV存储引擎将数据持久化到磁盘,而对于一个存储引擎来说在存储过程中因为一些其他原因导致程序down掉甚至数据文件被破坏等都会导致程序不能按正常流程再次启动。那么遇到这些状况以后如何使程序最大程度的恢复数据就是非常重要的一项工作,leveldb也提供了这方面的工作。首先来看rec...
分类:
数据库 时间:
2014-07-29 17:23:52
阅读次数:
409
进程间通讯有多种方式,包括信号,管道,消息队列,信号量,共享内存,socket等1.共享内存Python可以通过mmap模块实现进程之间的共享内存mmap文件对象既像一个字符串也像一个普通文件对象。像字符串时因为我们可以改变其中的单个字符,如,obj[index] = 'a',同时我们也可以改变一小...
分类:
编程语言 时间:
2014-07-28 23:46:04
阅读次数:
349