Kafka简介

38
KAFKA简介 @wacai.com

Transcript of Kafka简介

Page 1: Kafka简介

KAFKA简介陨⽯石@wacai.com

Page 2: Kafka简介

What Is The History?

Page 3: Kafka简介

Daemon Based Messaging

Page 4: Kafka简介

Tibco Rendezvous

Page 5: Kafka简介

Broker-Based Messaging

Page 6: Kafka简介

HOLD ON…

Page 7: Kafka简介

Broker-less Messaging

Page 8: Kafka简介

ZMQBrokerless

Page 9: Kafka简介

本质上,⽀支持多种通信协议和模式的消息框架

Page 10: Kafka简介

Actor Model

Page 11: Kafka简介
Page 12: Kafka简介

Messaging Scope

• Intra-Node

• Inter-Nodes

• Remoting

• Clustering

Page 13: Kafka简介

Broker Based Messaging

• JMS家族

• AMQP家族

Page 14: Kafka简介

JMS家族

Page 15: Kafka简介

消息模型

Point-To-Point Pub-Sub

Page 16: Kafka简介

相关产品

Page 17: Kafka简介

AMQP家族

Page 18: Kafka简介

消息模型

Page 19: Kafka简介

相关产品

Page 20: Kafka简介

Ultra Messaging

Todd L. Montgomery

Page 21: Kafka简介
Page 22: Kafka简介

理论模型

应⽤用模型

Page 23: Kafka简介
Page 24: Kafka简介

FAST 1. DISK FAVORED IO!2. Zero-Copy Transfer

SCALABLE PARTITIONING FOR SCALING READ&WRITE

DURABLE 1. REPLICA IN MIND!2. FLUSH PROPERLY

DISTRIBUTED FAULT-TOLERANCE!

Page 25: Kafka简介

KAFKA的应⽤用场景

Page 26: Kafka简介

KAFKA@Linkedin

Page 29: Kafka简介

KAFKA InternalsKafka集群拓扑结

构, 相关配置,结点之间的协调,消费管理,统统

我来管~

Page 30: Kafka简介

Zookeeper With Kafka

Page 31: Kafka简介

Message Producer

!

"

Page 32: Kafka简介

消息路由

props.put("partitioner.class", "xx.xxx.StringPrefixPartitioner")

class StringPrefixPartitioner(props:VerifiableProperties) extends kafka.producer.Partitioner{ def partition(key:Any, partitionNum:Int) : Int ={ hash(key.asInstanceOf[String].substring(0, 6)) % partitionNum } }

!

"

Page 33: Kafka简介

Message Consumer!

" High Level Consumer API

# Simple Consumer API

Page 34: Kafka简介

ConsumerGroup和Threads的关系

• 同⼀一consumer group中consumer线程的数量应该少于等于topic的partition的数量

• 同⼀一partition的数据会⼀一直分发给同⼀一个消费线程,但同⼀一个消费线程可能接收到来⾃自多个partition的数据

• 消费线程数量⼤大于topic的partition的数量的时候,有的消费线程不会接收到任何消息数据

Page 35: Kafka简介

Ops• Stabilize Zookeeper First

• Higher Scala-Versioned Distribution If Exists

• Bigger Disk, Faster RPM

• Higher file handle number limit

• Raise default Heap Size(1G), make it 2-4G at least

Page 36: Kafka简介

Conclusion

Page 37: Kafka简介

Use Kafka Wisely!

Page 38: Kafka简介

もんだい?