項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【Cloud】stateful / stateless, global queue/ seperate queue 差別 & 使用

前言

在雲端服務設計的過程中,
我們會碰到使用 stateful / stateless 的差別

  • stateful:狀態會被保存,也就代表這是持續的任務,不會短時間結束。
  • stateless:(無狀態) 狀態不會被保存,也就代表每一次都是一個獨立任務,結束就結束。

  • 可以先思考一個經典的排隊問題:

    旁邊櫃檯沒人排隊(比喻:此主機忙碌、別的主機空閒),你可以去隔壁櫃臺要求提供服務嗎?
    想想在郵局的情況、再想想在大賣場的情形

global queue 才有機會將這個櫃台的人分配給其他櫃員處理,
否則,他只能夠排隊在該櫃台、一直等待服務。

  • 以上面的排隊問題,換到真實的情境:

開了兩台主機 一台CPU爆強、一台GPU爆強
結果在拿task的時候,一個狂吃CPU的 task,使用了 GPU爆強的機器
這樣是不是浪費了GPU爆強的機器使用成本?

說明 & 比喻

有一個很妙的比喻拿來形容 global / seperate queue 的差別非常合適:

seperate queue

  • 使用情境:不想要堵塞,客戶為尊,客戶到馬上就處理,一般來說會使用許多的 service,讓服務馬上到馬上進行

    就像「全聯排隊」,一個收銀台排隊一排,能不能先結帳要看運氣,
    有時運氣不好,前面排隊的結帳很久,後來才來結帳的人反而先完成。

  • seperate queue, multiqueue, multi service

global queue

  • 使用情境:可能會有堵塞的情況,而為了求公平,讓先到的客戶先進行處理,而服務成本一般較高(像主機、櫃員),讓想使用的客戶自行排隊等待服務時間。

就像「郵局排隊」,先到的客戶先進行處理,一個接著一個

  • global queue, single queue, multi service

一般情況使用

一般情況下 global queue 優於 seperate queue,
但設計上 seperate queue 相對 global queue 容易設計,
不用考慮太多整體的事情。

程式設計

程式設計:seperate queue 設計可以較隨意 (每一個櫃位要擺哪,要怎麼排隊隨便啦),
global queue 的設計須以 global queue 為主軸,讓每一個系統能夠去提取 task 來做 (排隊動線為尊,櫃檯配合排隊動線設計)。

Reference

⭐Linux 指令 相關文章整理 (此表最後手動整理時間:2022/10/5) ⭐:
⭐Linux 終端機 (terminal) 操作、shell 篇⭐:
1.(terminal指令 常用總整理)【Linux】linux/ubuntu/mac 基礎終端機 (terminal) 指令 & 基礎知識總整理,初學者/新手 必須知道的基礎指令 & 基礎知識大全(持續更新)
2.(terminal快速鍵 常用總整理)【Linux】linux/ubuntu/mac 基礎終端機 (terminal) 快速鍵/小技巧,初學者/新手 必須知道的一些實用功能!(持續更新)
3.【Linux】好用的終端機管理工具 – tmux (類似 screen 的進階版)
4.【Linux】終端機小技巧 – default start screen treminal,無縫接軌任何電腦,繼續使用同一個 terminal 殘留下來的訊息
5.【Linux】z,zim 套件中最快搜尋指定資料夾的套件,以後不用 cd 之後再慢慢 tab 尋找路徑了!
6.【Linux】zim (+zsh) – 也許是目前最快也最實用的 linux terminal 與套件,直接把終端機開發效率飆升到最高
7.【Linux】終端機小技巧 – sudo 補上快速完成 (終端機指令小祕技)
8.【Windows】也許是 windows 上最貼近 linux 的 terminal,安裝 fluent terminal,在 windows 上使用 zsh (oh-my-zsh)
9.【Linux】透過 screen 讓 terminal 內的工作內容可以無縫接軌到任何電腦 (儲存當下 terminal 內容),並可以繼續操作
⭐Linux 基礎指令篇⭐:
1.【嗡嗡精選】ubuntu 個人自用小抄 (last update: 2022/6/24)
2.【Linux】(作業系統基礎知識) 簡單理解「相對路徑」與「絕對路徑」,程式設計 初學者/新手 必須知道的路徑知識總整理
3.【Linux】linux ubuntu 中利用 mkdir 建立資料夾 相關參數總整理 (必定建立資料夾、修改資料夾權限 777)
4.【Linux】linux ubuntu 使用 terminal (終端機) 關機 shutdown、重新開機 reboot 的方法
5.【Linux】小知識 source 與 bash 執行 script 的差別
6.【Linux】在 ubuntu terminal 中 執行關機、重新開機指令 (shutdown, reboot)
7.【Linux】在 terminal 中 設定 ssh alias (bashrc, zshrc 中使用 alias)
8.【Linux】Ubuntu 上安裝軟體的方式筆記 apt, apt-get, dpkg 總整理
9.【Linux】在 Linux 中查看 cpu, gpu 資訊
⭐Linux 搜尋相關⭐:
1.【Linux 搜尋相關 #1】在 terminal 的各種搜尋大全, ack, grep, find 個人經常使用情境整理
2.【Linux 搜尋相關 #2】linux ubuntu 使用 grep, awk, xargs 尋找需要的資料,快速濾出/篩選 結果欄位 所需要的資訊 (內附圖文說明) filter column
3.【Linux 搜尋相關 #3】linux, ubuntu 使用 ps, grep, pgrep 找到 執行中程式的相關資訊 與 pid (ps aux, ps -ef)
4.【Linux 搜尋相關 #4】linux ubuntu 中利用 grep 蒐集 log 或任何文件內的訊息 (grep -A -B -C