2.1.1 邏輯隔離
邏輯隔離是通過在數據實體中置入壓測特征來區分真實數據和壓測數據的。壓測特征可以表示為以下形式:
● 數據實體中的某個特定字段;
● 數據的特殊ID(如ID中帶有特定的前綴或后綴);
● 數據的特殊內容(如含有“壓測”字段的數據)。
舉一個例子,如下面代碼所示,針對用戶這個數據實體,我們可以設置一個UserType(用戶類型)字段,其中,枚舉值為0代表普通用戶,枚舉值為1代表壓測用戶。應用服務可以根據這個字段來識別壓測用戶,決定是否執行相應的隔離工作。
enum UserType {
NORMAL = 0, //普通用戶
PERF = 1, //壓測用戶
}
邏輯隔離實現簡單、容易理解,無須改造中間件,但是它對業務代碼的“侵入性”比較強,而且需要變更數據結構或數據內容。當然,它最大的風險在于壓測數據和真實數據是寫入同一張數據表的,一旦我們遺漏了某些壓測數據的邏輯隔離,就會導致極大的數據污染風險,修復數據也比較麻煩。