kafka的特点是什么
特点就是快!kafka主要追求的就是性能而非功能。rocketmq的缓存起码还在快递员那边,kafka干脆把缓存做到客户家了。直接在家屯了一波包裹,隔一段时间再喊快递员送,这样效率肯定更高了。
发送者原理
首先我们得知道broker的地址,这个拉取元数据的操作少不了,一般是从zk就能拉取到。拿到这些我们肯定是缓存起来,ok,现在要发一个消息。会立刻发出去吗?不会。这里有个发送缓冲区的概念,默认32M,满了就去发,那如果一直不满呢?总不能不发吧,所以有一个最大延迟时间(linger.ms)的限制,xxms后哪怕不满也要发给broker。当然,既然可以缓存,那就可以继续优化,把一个broker的请求都汇总到一起发过去。
ISR是什么
in-sync replica,顾名思义,比如你想发送消息给leader,他想同步数据给fllower,假设有3个吧,那同步几个算成功呢?看你参数了。你设置2,那就是起码有两个副本才允许你写,比如min.sync.replicas = 2 ack = -1 意思就是你最少要有两个副本在isr里并且都要发送成功。那如果你设置了三个副本,只不过这其中两个个副本可能网络慢,跟leader同步的数据落后了一大截,他这就只有一个副本在ISR了,其他都被踢出了。