如何设计一个消息队列
首先我们需要明确地提出消息中间件的几个重要角色,分别是生产者、消费者、Broker、注册中心。
简述下消息中间件数据流转过程,无非就是生产者生成消息,发送至 Broker,Broker 可以暂缓消息,然后消费者再从 Broker 获取消息,用于消费。
而注册中心用于服务的发现包括:Broker 的发
...
drop、delete、truncate的区别
drop直接删掉表;简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表,
truncate删除的是表中的数据,再插入数据时自增长的数据id又重新从1开始;删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,他比较温柔.删除内容很容易理解,不删除定义也很容易理解,
...
for、foreach和Iterator
[TOC]
1.在形式上for的形式是 for(int i=0;i<arr.size();i++){...}
foreach的形式是 for(int i:arr){...}
iterator的形式是
12Iterator it = arr.iterator();while(it.hasNext
...
hyperloglog底层剖析
[TOC]
原理举一个例子,假设你抛很多次硬币,如果抛到正面,就继续抛;如果抛到反面,就记录下在这之前连续抛到了多少次正面k,然后开始下一轮。
如果你告诉我,你最多的时候,连续抛了2次正面后就抛到反面了。那我认为你可能并没有抛多少轮,可能是3轮或者4轮就会发生这样的情况。
但如果你告诉我,你最多的时
...