数据分区存储
在topic内设置了多个分区,使kafka的消费者进程池能得到有序性保证和负载均衡,使得topic对应的消费组里的消费者们各自可以独享一个分区。如此的话,每个消费者是其消费的分区的唯一reader,在单个reader下当然保证了有序这件事。而且多个分区也使得负载可以比较平衡。
具体流程:
1. Producer根据指定的partition方法,将消息发布到指定topic的par...
分类:
其他好文 时间:
2015-06-02 23:27:07
阅读次数:
147
如果Java内存模型中所有的有序性都仅仅依靠volatile和synchronized来完成,那么一些操作将会变得很繁琐,但是我们在编写Java程序时并没有感觉到这一点,这是因为Java语言中有一个”先行发生(happens-before)“的原则。这个原则非常重要,它是判断数据是否存在竞争、线程是...
分类:
其他好文 时间:
2015-06-02 15:09:38
阅读次数:
133
原子性(Atomicity):由Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write,我们大致可以认为基本类型的访问读写是具备原子性的。如果应用场景还需要一个更大范围的原子性保证,Java内存模型还提供了lock和unlock操作来满足这种需...
分类:
其他好文 时间:
2015-06-02 14:54:28
阅读次数:
136
本文通过实例的方式,给大家提供一个SQL TUNING时经常用到、效果显著的一个技巧,该技巧实践中用途广泛,通过巧妙的利用index的有序性,省去了大量的资源消耗,也极大地提升了SQL效率和用户满意度,但在实施该技巧的过程中,可能会遇到一些问题,本文也提出了相应的解决方案,在此分享给大家,抛砖引玉,共同学习,共同提高。...
分类:
数据库 时间:
2015-04-29 15:07:30
阅读次数:
156
最坏情况下的成本 平均情况下的成本 是否高效低支持有序性的相关操作 关键接口 查找 插入 查找 插入顺序查找(无序链表) N N ...
分类:
其他好文 时间:
2015-03-09 23:46:45
阅读次数:
279
堆优先队列:特殊的”队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序
堆是优先队列的完全二叉树表示。
堆的两个特性:
①结构性:用数组表示的完全二叉树
②有序性:任意结点的关键字是其子树所有结点的最大值,叫最大堆(或最小值,叫最小堆)(注意从根结点到任意结点路径上结点序列的有序性)下面举一个最大堆的例子。
/** 最大堆的操作 */
typedef st...
分类:
编程语言 时间:
2015-02-17 22:21:37
阅读次数:
231
ORDER BY?通常会有两种实现方法,一个是利用有序索引自动实现,也就是说利用有序索引的有序性就不再另做排序操作了。另一个是把结果选好之后再排序。 用有序索引这种,当然是最快的,不过有一些限制条件,来看下...
分类:
其他好文 时间:
2015-01-29 14:49:32
阅读次数:
205
在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。1、堆的两个特性结构性:用数组表示的完全二叉树有序性:任一结点的关键字是其子树所有结点的最大值(或最...
分类:
其他好文 时间:
2015-01-27 01:50:26
阅读次数:
157
最近有个业务写远远大于读,读也集中在最近写入,这不很适合采用leveldb存储么。 ssdb是leveldb的redis兼容协议封装,并且实现了主从同步,源码不多易读;主要对redis命令封装,get/set 不说,leveldb 是有序的,相比redis通过scan遍历的命令,利用有序性 l...
分类:
数据库 时间:
2015-01-18 17:09:19
阅读次数:
1182