---
# System prepended metadata

title: Web Queue Worker Architecture
tags: [' architecture']

---

# Web Queue Worker Architecture

ref: https://www.youtube.com/watch?v=niAA3bprjNU

這架構主要會有幾個元件組成

http Api 負責處理 web request 到 queue

queue 負責暫存當下還沒被處理的 request

worker 負責從 queue 消化要處理的 request

## 架構圖
![image](https://hackmd.io/_uploads/BJW0Hm-G0.png)

## 適合場景

### 各自元件 scale out/in
![image](https://hackmd.io/_uploads/Hk9OP7Wf0.png)

所以每個元件可以獨立 scale out/scale down

### task scheduler

![image](https://hackmd.io/_uploads/SyrzdQbz0.png)

## 優缺點
### 優點

可以解隅 Worker 與 http api 之間的綁定

每個元件可以獨立佈署

### 缺點

因為元件分散

所以要驗證整合流程不容易

複雜度高(因為 input/output 流程很彈性)

如果 client 需要 worker 處理完的資訊需要額外做處理設計
