SlideShare a Scribd company logo
1 of 98
Download to read offline
Something about Kafka
Frank Yao
@超⼤大杯摩卡星冰乐
2013-06-29
13年7月5⽇日星期五
Agenda
• WHAT is Kafka?
• HOW we use it in Vipshop?
• WHY Kafka is so ‘fast’?
13年7月5⽇日星期五
WHAT is Kafka?
13年7月5⽇日星期五
WHAT
• “Kafka is a messaging system that was
originally developed at LinkedIn to
serve as the foundation for LinkedIn's
activity stream and operational data
processing pipeline.”
13年7月5⽇日星期五
User cases
• Operational monitoring: real-time, heads-up
monitoring
• Reporting and Batch processing: load data into
a data warehouse or Hadoop system
13年7月5⽇日星期五
Performance
(Below test is from Kafka website)
• Parameters:
• message size = 200 bytes
• batch size = 200 messages
• fetch size = 1MB
• flush interval = 600 messages
13年7月5⽇日星期五
Batch Size
13年7月5⽇日星期五
Consumer Throughput
13年7月5⽇日星期五
Data Size?
13年7月5⽇日星期五
Producers thread?
13年7月5⽇日星期五
Topic Number?
13年7月5⽇日星期五
Tradition Queue
• ActiveMQ, RabbitMQ...
13年7月5⽇日星期五
13年7月5⽇日星期五
My Test
• Use Flume:
• In/Out ~= 30w message per second
13年7月5⽇日星期五
Kafka in Vipshop
13年7月5⽇日星期五
Data ‘in’ Kafka
• Operational monitoring
• Nginx access log
• PHP error log, slow log
• Reporting and Batch processing:
• Nginx access log
• PHP error log, slow log
• App log
• b2c
• Recommend
• Pay
• Passport
13年7月5⽇日星期五
How many Data?
• Peak Time(10:00~10:30):
• IN : 15k-20k msg per second
• OUT : 30k-40k msg per second
13年7月5⽇日星期五
13年7月5⽇日星期五
Apps depends on Kakfa
13年7月5⽇日星期五
Kibana(Elasticsearch)
13年7月5⽇日星期五
real-time pv uv
13年7月5⽇日星期五
HDFS
13年7月5⽇日星期五
Load use Kafka
13年7月5⽇日星期五
Replace RabbitMQ
RabbitMQ Kafka
Servers
Load
Language
Deployment
Client
Management
RabbitMQ Kafka
6 1
>10 <2.5
Erlang Scala
Difficult Easy
A lot Not Many
Web-console JMX
13年7月5⽇日星期五
WHY Kafka ‘fast’
13年7月5⽇日星期五
Basics
• producers
• consumers
• consumer groups
• brokers
13年7月5⽇日星期五
Kafka Arch
13年7月5⽇日星期五
Kafka Arch
13年7月5⽇日星期五
Kafka Deployment
13年7月5⽇日星期五
Major Design Elements
• Persistent messages
• Throughput >>> features
• Consumers hold states
• ALL is distributed
13年7月5⽇日星期五
Detail Agenda
• Maximizing Performance
• Filesystem vs. Memory
• BTree?
• Zero-copy
• End-to-end Batch Compression
• Consumer state
• Message delivery semantics
• Consumer state
• Push vs. Pull
• Message
• Message format
• Disk structure
• Zookeeper
• Directory Structure
13年7月5⽇日星期五
Maximize Performance
13年7月5⽇日星期五
Filesystem vs. Memory
Maximize Performance
13年7月5⽇日星期五
Who is fast?
13年7月5⽇日星期五
Memory
Filesystem
13年7月5⽇日星期五
Disk
hardware linear writes random writes
6*7200rpm SATA
RAID-5
300MB/sec 50k/sec
13年7月5⽇日星期五
ACM Pieces
13年7月5⽇日星期五
Let’s see something REAL
13年7月5⽇日星期五
Server Stats
13年7月5⽇日星期五
page cache
• use free memory for disk caching to make
random write fast
13年7月5⽇日星期五
13年7月5⽇日星期五
Drawbacks
• All disk reads and writes will go through this
unified cache. This feature cannot easily be
turned off without using direct I/O, so even if
a process maintains an in-process cache of the
data, this data will likely be duplicated in OS
pagecache, effectively storing everything
twice.
13年7月5⽇日星期五
If JVM...
13年7月5⽇日星期五
13年7月5⽇日星期五
If we use memory(JVM)
• The memory overhead of objects is very
high, often doubling the size of the data
stored (or worse).
• Java garbage collection becomes
increasingly sketchy and expensive as
the in-heap data increases.
13年7月5⽇日星期五
cache size
• at least double the available cache by
having automatic access to all free
memory, and likely double again by
storing a compact byte structure rather
than individual objects. Doing so will
result in a cache of up to 28-30GB on a
32GB machine.
13年7月5⽇日星期五
comparison
in-disk in-memory
GC
Initialization
Logic
no GC stop the world
stay warm even if
restarted
rebuilt slow(10min for
10GB) and cold cache
handle by OS handle by programs
13年7月5⽇日星期五
Conclusion
• using the filesystem and relying on
pagecache is superior to maintaining an
in-memory cache or other structure
13年7月5⽇日星期五
Go Extreme!
• Write to filesystem DIRECTLY!
• (In effect this just means that it is transferred
into the kernel's pagecache where the OS
can flush it later.)
13年7月5⽇日星期五
Furthermore
• You can configure: every N messages or
every M seconds. It is to put a bound on
the amount of data "at risk" in the event
of a hard crash.
• Varnish use pagecache-centric design as
well.
13年7月5⽇日星期五
BTree
Maximize Performance
13年7月5⽇日星期五
Background
• Messaging system meta is often a BTree.
• BTree operations are O(logN).
13年7月5⽇日星期五
BTree
• O(logN) ~= constant time
13年7月5⽇日星期五
BTree is slow on Disk!
13年7月5⽇日星期五
BTree for Disk
• Disk seeks come at 10 ms a pop
• each disk can do only one seek at a time
• parallelism is limited
• the observed performance of tree
structures is often super-linear
13年7月5⽇日星期五
Lock
• Page or row locking to avoid lock the
tree
13年7月5⽇日星期五
Two Facts
• no advantage of driver density because
of the heavy reliance on disk seek
• need small (< 100GB) high RPM SAS
drives to maintain a sane ratio of data
to seek capacity
13年7月5⽇日星期五
Use Log file Structure!
13年7月5⽇日星期五
Feature
• One queue is one log file
• Operations is O(1)
• Reads do not block writes or each other
• Decouple with data size
• Retain messages after consumption
13年7月5⽇日星期五
zero-copy
Maximize Performance
13年7月5⽇日星期五
1. The operating system reads data from the disk
into pagecache in kernel space
2. The application reads the data from kernel
space into a user-space buffer
3. The application writes the data back into
kernel space into a socket buffer
4. The operating system copies the data from the
socket buffer to the NIC buffer where it is sent
over the network
13年7月5⽇日星期五
zerocopy
• data is copied into pagecache exactly
once and reused on each consumption
instead of being stored in memory and
copied out to kernel space every time it
is read
13年7月5⽇日星期五
13年7月5⽇日星期五
zerocopy performance
13年7月5⽇日星期五
End-to-end Batch
Compression
Maximizing Performance
13年7月5⽇日星期五
Consider that
C1
C2
C3
P1
P2
2*compression+
3*de-compression
M=num(P)
N=num(C)
M*compression+
N*de-compression
13年7月5⽇日星期五
Key point
• End-to-end: compress by producers and
de-compress by consumers
• Batch: compression aims to compress a
‘message set’
• Kafka supports GZIP and Snappy
protocols
13年7月5⽇日星期五
Consumer State
13年7月5⽇日星期五
Facts
• No ACK
• Consumers maintain the message state
13年7月5⽇日星期五
Features
• Message is in a partition
• Stored and given out in the order they
arrive
• ‘ watermark’ - ‘offset’ in Kafka
13年7月5⽇日星期五
track state
• write msg state in zookeeper
• in one transaction with writing data
• side benefit: ‘rewind’ msg
13年7月5⽇日星期五
Screenshot
13年7月5⽇日星期五
push vs. pull
Consumer State
13年7月5⽇日星期五
push system
• if a consumer is <defunct>?
13年7月5⽇日星期五
Kafka use pull model
13年7月5⽇日星期五
Message
Format & Data structure
13年7月5⽇日星期五
Msg Format
• N byte message:
• If magic byte is 0
1. 1 byte "magic" identifier to allow format changes
2. 4 byte CRC32 of the payload
3. N - 5 byte payload
• If magic byte is 1
1. 1 byte "magic" identifier to allow format changes
2. 1 byte "attributes" identifier to allow annotations on the message independent of the
version (e.g. compression enabled, type of codec used)
3. 4 byte CRC32 of the payload
4. N - 6 byte payload
13年7月5⽇日星期五
Log format on-disk
• On-disk format of a message
• message length : 4 bytes (value: 1+4+n)
• ‘magic’ value : 1 byte
• crc : 4 bytes
• payload : n bytes
• partition id and node id to uniquely identify a
message
13年7月5⽇日星期五
Kafka Log Implementation
13年7月5⽇日星期五
Screenshot
13年7月5⽇日星期五
Screenshot
13年7月5⽇日星期五
Writes
Message
13年7月5⽇日星期五
Writes
• Append-write
• When rotate:
• M : M messages in a log file
• S : S seconds after last flush
• Durability guarantee: losing at most M
messages or S seconds of data in the
event of a system crash
13年7月5⽇日星期五
Reads
Message
13年7月5⽇日星期五
Buffer Reads
• auto double buffer size
• you can specify the max buffer size
13年7月5⽇日星期五
Offset Search
• Search steps:
1. locating the log segment file in which
the data is stored
2. calculating the file-specific offset from
the global offset value
3. reading from that file offset
• Simple binary in memory
13年7月5⽇日星期五
Features
• Reset the offset
• OutOfRangeException(problem we
met)
13年7月5⽇日星期五
Deletes
Message
13年7月5⽇日星期五
Deletes
• Policy: N days ago or N GB
• Deleting while reading?
• a copy-on-write style segment list
implementation that provides
consistent views to allow a binary
search to proceed on an immutable
static snapshot view of the log
segments
13年7月5⽇日星期五
Zookeeper
13年7月5⽇日星期五
Directory Structure
Zookeeper
13年7月5⽇日星期五
Broker Node
• /brokers/ids/[0...N] --> host:port (ephemeral node)
13年7月5⽇日星期五
Broker Topic
• /brokers/topics/[topic]/[0...N] --> nPartions (ephemeral node)
13年7月5⽇日星期五
Consumer Id
• /consumers/[group_id]/ids/[consumer_id] --> {"topic1":
#streams, ..., "topicN": #streams} (ephemeral node)
13年7月5⽇日星期五
Consumer Offset Tracking
• /consumers/[group_id]/offsets/[topic]/[broker_id-partition_id] -->
offset_counter_value ((persistent node)
13年7月5⽇日星期五
Partition Owner
• /consumers/[group_id]/owners/[topic]/[broker_id-partition_id] -->
consumer_node_id (ephemeral node)
13年7月5⽇日星期五
Why Kafka fast?
• Maximizing Performance
• Filesystem vs. Memory
• BTree?
• Zero-copy
• End-to-end Batch Compression
• Consumer state
• Message delivery semantics
• Consumer state
• Push vs. Pull
• Message
• Message format
• Disk structure
• Zookeeper
• Directory Structure
13年7月5⽇日星期五
Thank You!
13年7月5⽇日星期五

More Related Content

What's hot

How to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environmentHow to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environmentAnna Yen
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Etu Solution
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術Wei-Yu Chen
 
2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform SecurityJazz Yao-Tsung Wang
 
Hadoop-分布式数据平台
Hadoop-分布式数据平台Hadoop-分布式数据平台
Hadoop-分布式数据平台Jacky Chi
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念haiyuan ning
 
基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理Jacky Chi
 
ClickHouse北京Meetup ClickHouse Best Practice @Sina
ClickHouse北京Meetup ClickHouse Best Practice @SinaClickHouse北京Meetup ClickHouse Best Practice @Sina
ClickHouse北京Meetup ClickHouse Best Practice @SinaJack Gao
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseJack Gao
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Wei-Yu Chen
 
HDFS與MapReduce架構研討
HDFS與MapReduce架構研討HDFS與MapReduce架構研討
HDFS與MapReduce架構研討Billy Yang
 
給初學者的Spark教學
給初學者的Spark教學給初學者的Spark教學
給初學者的Spark教學Chen-en Lu
 
Distributed Data Analytics at Taobao
Distributed Data Analytics at TaobaoDistributed Data Analytics at Taobao
Distributed Data Analytics at TaobaoMin Zhou
 
Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Awei Hsu
 
淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践Min Zhou
 
Hadoop安裝 (1)
Hadoop安裝 (1)Hadoop安裝 (1)
Hadoop安裝 (1)銘鴻 陳
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 maclean liu
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introductionTianwei Liu
 

What's hot (20)

How to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environmentHow to plan a hadoop cluster for testing and production environment
How to plan a hadoop cluster for testing and production environment
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
 
2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security
 
Hadoop-分布式数据平台
Hadoop-分布式数据平台Hadoop-分布式数据平台
Hadoop-分布式数据平台
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念
 
基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理
 
ClickHouse北京Meetup ClickHouse Best Practice @Sina
ClickHouse北京Meetup ClickHouse Best Practice @SinaClickHouse北京Meetup ClickHouse Best Practice @Sina
ClickHouse北京Meetup ClickHouse Best Practice @Sina
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
 
HDFS與MapReduce架構研討
HDFS與MapReduce架構研討HDFS與MapReduce架構研討
HDFS與MapReduce架構研討
 
Tachyon 2015 08 China
Tachyon 2015 08 ChinaTachyon 2015 08 China
Tachyon 2015 08 China
 
給初學者的Spark教學
給初學者的Spark教學給初學者的Spark教學
給初學者的Spark教學
 
Distributed Data Analytics at Taobao
Distributed Data Analytics at TaobaoDistributed Data Analytics at Taobao
Distributed Data Analytics at Taobao
 
Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威
 
淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践
 
Hadoop安裝 (1)
Hadoop安裝 (1)Hadoop安裝 (1)
Hadoop安裝 (1)
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 

Similar to Something about Kafka - Why Kafka is so fast

寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事Chieh (Jack) Yu
 
Kmeans in-hadoop
Kmeans in-hadoopKmeans in-hadoop
Kmeans in-hadoopTianwei Liu
 
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)涛 吴
 
Big Java, Big Data
Big Java, Big DataBig Java, Big Data
Big Java, Big DataKuo-Chun Su
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)ykdsg
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Hanborq Inc.
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC
 
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Michael Zhang
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum锐 张
 
賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報Wales Chen
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多ITband
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍myzykj
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换mysqlops
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture introted-xu
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Schubert Zhang
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 

Similar to Something about Kafka - Why Kafka is so fast (20)

寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事
 
Kmeans in-hadoop
Kmeans in-hadoopKmeans in-hadoop
Kmeans in-hadoop
 
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)
 
Big Java, Big Data
Big Java, Big DataBig Java, Big Data
Big Java, Big Data
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
 
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]Q con shanghai2013-[刘海锋]-[京东文件系统简介]
Q con shanghai2013-[刘海锋]-[京东文件系统简介]
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum
 
賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報賽門鐵克 NetBackup 7.5 完整簡報
賽門鐵克 NetBackup 7.5 完整簡報
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍
 
Kafka in Depth
Kafka in DepthKafka in Depth
Kafka in Depth
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
MogileFS
MogileFSMogileFS
MogileFS
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 

Recently uploaded

函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptxNCU MCL
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptxNCU MCL
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_patternJamie (Taka) Wang
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptxNCU MCL
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxNCU MCL
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxNCU MCL
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLPJamie (Taka) Wang
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptxNCU MCL
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】黑客 接单【TG/微信qoqoqdqd】
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven designJamie (Taka) Wang
 

Recently uploaded (15)

函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
 
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_pattern
 
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
 
20161027 - edge part2
20161027 - edge part220161027 - edge part2
20161027 - edge part2
 
Entities in DCPS (DDS)
Entities in DCPS (DDS)Entities in DCPS (DDS)
Entities in DCPS (DDS)
 
20200226 - AI Overview
20200226 - AI Overview20200226 - AI Overview
20200226 - AI Overview
 
20151111 - IoT Sync Up
20151111 - IoT Sync Up20151111 - IoT Sync Up
20151111 - IoT Sync Up
 
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptxSymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
 
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
 
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven design
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
 

Something about Kafka - Why Kafka is so fast