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


<<:  [履历]准备履历不只是为了面试!

>>:  Day 12:Python基本介绍05 | 流程控制、回圈

Day 24:一起来建构Min-Heap吧

在实作之前我们先来认识Heap 堆积 (Heap),是一种特殊的完全(complete)二元树,也就...

电脑维修常见问题

电脑维修常见问题 一、电脑问题如何检查? 电脑故障或电脑维修问题可以分为二大类:软件或硬件。 软件故...

【Day 18】jQuery DOM

何谓DOM? DOM = Document Object Model(文件物件模型) 根据MDN表示...

Mysql执行成本-Part2(连接查询的成本、调节成本常数)

方便後续解释概念,我们在创建一个跟原先single_table一样的表,叫single_table2...

JavaScript Day 12. 每个元素都做运算的 map()

这一篇要来讨论另一个跟 filter 很相似的方法 map,在我们讨论 map 的同时,也可能会觉得...