iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
自我挑戰組

淺入淺出分散式儲存系列 第 17

Day17 Middleware - Kafka & Redis

Kafka

簡單來說,我們可以稱後端和後端之間溝通的橋樑稱為Middleware,就如我們的Lab,API層與Data層溝通的橋樑,我們使用的是Kafka這種單向Queue的生產者消費者模型,而不是HTTP restful協議

https://ithelp.ithome.com.tw/upload/images/20210917/20130271wIo5eQNUe5.png

上圖架構圖取自維基百科,但是很好的說明了Kafka的整體架構,其中

Kafka Cluster:一個cluster有多個kafka server,Topic可以理解為是Kafka的一個table,是被多個server共享的,裡面的每個partition包含著有序資料,多個partition可以保證資料備份

Producer: 資料生產者,可以發送資料到指定的Topci,然後會把相同的資料發送到不同的Kafka server的partition中,也可以指定key,相同的key會在相同的partition裡

Consumer:資料消費者,指定一個Topic就可以監聽他並且消費,每一個Partition都是有順序的消費的,所以在同個partition下保證有順序,但是如果從更高角度的Kafka cluster就不保證了

看起來有點類似HTTP中的UDP,資料送出去就不管了

Redis

Redis是一種NoSQL的key-value資料庫,與其他資料庫不同的地方是,他是存在記憶體的,所以他每秒讀寫的次數非常快,適合用來存放需要經常讀寫的小數據,在應用上,經常拿來當作Cache的伺服器,他甚至還支持Cluster、分散式、主從同步,可以無限擴增

在我們的Lab中,Redis主要用來存放Object的Metadata,裡面存放的資料例如size、name、version等經常會被用到

由於Redis為了追求高性能,雖然他是用類似json的key-value去存放資料,但他不能無限巢狀式的在json的value再指定一個json


上一篇
Day16 Object storage的meta data
下一篇
Day18 Lab 2 - Object storage metadata
系列文
淺入淺出分散式儲存30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言