Idempotency Key 簡介

首先,idempotency 的意思就是一個動作做一次跟做很多次的結果是一樣的,譬如 HTTP POST & PUT 的比較,PUT 是 idempotent 的,POST 不是,因為它每次都會產生新東西。

Idempotency Key 據說是 Stripe 發明的詞,為了要讓一些操作可以避免重複執行,以 HTTP request 為例,會讓 client 產生一個 unique 的 key, 並在 HTTP header 帶上這個 key, server 端會 maintain idempotency key 和 result 的對應,如果發現已經有了,就直接回傳結果不處理,如果沒有,代表還沒做過,就執行操作並把 key & result 存起來。

Idempotency Key 也可以由 server 產生,不過必須要是這個操作是由 server 發起的。簡單來說,是由操作的發起者產生這個 key。

參考:Idempotency Key:原理與實測

Digest of Consistent Hashing

簡介

這是分散式系統中很常用到的技巧,譬如你有個 redis cluster for caching, 就可以用 consistent hashing 來決定資料要放到哪個 redis instance, 優點是當增加或減少 redis node 時,可以最大化的減少資料的搬移

Web Server 與 Application Server 的差別


圖片來源: https://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_web_01.pdf

看到 AWS 關於 web application 的 architecture 這張圖之後,不太懂為何 server 要分為兩層,於是就google 了一下,找到一篇不錯的文章

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×