SlideShare a Scribd company logo
KAFKA简介
陨⽯石@wacai.com
What Is The History?
Daemon Based Messaging
Tibco Rendezvous
Broker-Based Messaging
HOLD ON…
Broker-less Messaging
ZMQ
Brokerless
本质上,⽀支持多种通信协议和模
式的消息框架
Actor Model
Messaging Scope
• Intra-Node
• Inter-Nodes
• Remoting
• Clustering
Broker Based Messaging
• JMS家族
• AMQP家族
JMS家族
消息模型
Point-To-Point Pub-Sub
相关产品
AMQP家族
消息模型
相关产品
Ultra Messaging
Todd L. Montgomery
理论模型
应⽤用模型
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!
KAFKA的应⽤用场景
KAFKA@Linkedin
KAFKA@wacai.com
KAFKA@wacai.com
KAFKA Internals
Kafka集群拓扑结
构, 相关配置,结点之间
的协调,消费管理,统统
我来管~
Zookeeper With Kafka
Message Producer
!
"
消息路由
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
}
}
!
"
Message Consumer
!
" High Level Consumer API
# Simple Consumer API
ConsumerGroup和Threads的关系
• 同⼀一consumer group中consumer线程的数量应该少于等于topic的
partition的数量
• 同⼀一partition的数据会⼀一直分发给同⼀一个消费线程,但同⼀一个消费线程
可能接收到来⾃自多个partition的数据
• 消费线程数量⼤大于topic的partition的数量的时候,有的消费线程不会
接收到任何消息数据
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
Conclusion
Use Kafka
Wisely!
もんだい?

More Related Content

Similar to Kafka简介

Kafka cluster best practices
Kafka cluster best practicesKafka cluster best practices
Kafka cluster best practices
Rico Chen
 
Kafka & mafka client开发与实践
Kafka & mafka client开发与实践Kafka & mafka client开发与实践
Kafka & mafka client开发与实践
志涛 李
 
ServiceMesh-Runtime-FaaS三位一体.pdf
ServiceMesh-Runtime-FaaS三位一体.pdfServiceMesh-Runtime-FaaS三位一体.pdf
ServiceMesh-Runtime-FaaS三位一体.pdf
QingyuanZheng2
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
 
ZeroMQ简介
ZeroMQ简介ZeroMQ简介
ZeroMQ简介
Xu Wang
 
NLP補充
NLP補充NLP補充
NLP補充
NCUDSC
 
SMACK Dev Experience
SMACK Dev ExperienceSMACK Dev Experience
SMACK Dev Experience
Chih-Hsuan Hsu
 
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
Improvements Made in KoP 2.9.0  - Pulsar Summit Asia 2021Improvements Made in KoP 2.9.0  - Pulsar Summit Asia 2021
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
StreamNative
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践
qi lei
 
Erlang and HTML5
Erlang and HTML5Erlang and HTML5
Erlang and HTML5
Witeman Zheng
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructurekyhpudding
 
淘宝Java中间件之路
淘宝Java中间件之路淘宝Java中间件之路
淘宝Java中间件之路
mysqlops
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
美团技术团队
 
RabbitMQ on Pulsar's Practice in Tencent Cloud - Puslar Summit Asia 2021
RabbitMQ on Pulsar's Practice in Tencent Cloud  - Puslar Summit Asia 2021RabbitMQ on Pulsar's Practice in Tencent Cloud  - Puslar Summit Asia 2021
RabbitMQ on Pulsar's Practice in Tencent Cloud - Puslar Summit Asia 2021
StreamNative
 
運用MMLSpark 來加速Spark 上 機器學習專案
運用MMLSpark 來加速Spark 上機器學習專案運用MMLSpark 來加速Spark 上機器學習專案
運用MMLSpark 來加速Spark 上 機器學習專案
Herman Wu
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168
vanadies10
 
VMware zimbra email and collaboration for the post pc era
VMware zimbra email and collaboration for the post pc eraVMware zimbra email and collaboration for the post pc era
VMware zimbra email and collaboration for the post pc era
零壹科技股份有限公司
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
mysqlops
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
涛 吴
 
谈谈模块化
谈谈模块化谈谈模块化
谈谈模块化
衡锋 阳
 

Similar to Kafka简介 (20)

Kafka cluster best practices
Kafka cluster best practicesKafka cluster best practices
Kafka cluster best practices
 
Kafka & mafka client开发与实践
Kafka & mafka client开发与实践Kafka & mafka client开发与实践
Kafka & mafka client开发与实践
 
ServiceMesh-Runtime-FaaS三位一体.pdf
ServiceMesh-Runtime-FaaS三位一体.pdfServiceMesh-Runtime-FaaS三位一体.pdf
ServiceMesh-Runtime-FaaS三位一体.pdf
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
ZeroMQ简介
ZeroMQ简介ZeroMQ简介
ZeroMQ简介
 
NLP補充
NLP補充NLP補充
NLP補充
 
SMACK Dev Experience
SMACK Dev ExperienceSMACK Dev Experience
SMACK Dev Experience
 
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
Improvements Made in KoP 2.9.0  - Pulsar Summit Asia 2021Improvements Made in KoP 2.9.0  - Pulsar Summit Asia 2021
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践
 
Erlang and HTML5
Erlang and HTML5Erlang and HTML5
Erlang and HTML5
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 
淘宝Java中间件之路
淘宝Java中间件之路淘宝Java中间件之路
淘宝Java中间件之路
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
 
RabbitMQ on Pulsar's Practice in Tencent Cloud - Puslar Summit Asia 2021
RabbitMQ on Pulsar's Practice in Tencent Cloud  - Puslar Summit Asia 2021RabbitMQ on Pulsar's Practice in Tencent Cloud  - Puslar Summit Asia 2021
RabbitMQ on Pulsar's Practice in Tencent Cloud - Puslar Summit Asia 2021
 
運用MMLSpark 來加速Spark 上 機器學習專案
運用MMLSpark 來加速Spark 上機器學習專案運用MMLSpark 來加速Spark 上機器學習專案
運用MMLSpark 來加速Spark 上 機器學習專案
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168
 
VMware zimbra email and collaboration for the post pc era
VMware zimbra email and collaboration for the post pc eraVMware zimbra email and collaboration for the post pc era
VMware zimbra email and collaboration for the post pc era
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
 
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)
 
谈谈模块化
谈谈模块化谈谈模块化
谈谈模块化
 

Kafka简介