分佈式緩存-數據映射設計

在平常開發中,經常用到不少相似的數據及相同結構的表數據,在架構設計中,咱們能夠將這些數據可變或者不變的固定結構數據放到一張通用表中,作成相似數據字典形式,這樣,開發中,直接使用這類數據,經過主要關鍵詞或者鍵獲取具體的valuespring

1:各類下拉框,各類選擇器數據庫

2:錯誤碼,返回碼,映射數據緩存

3:通用key value結構的數據架構

1:數據庫設計數據庫設計

-- 建立數據映射表
create table T_DATA
(
  t_data_id         VARCHAR2(100) not null,--數據主鍵
  t_data_name       VARCHAR2(100) not null,--數據名稱
  t_create_time     VARCHAR2(17)  not null,--建立時間
  t_creater         VARCHAR2(17) not null,--建立人
  t_memo            VARCHAR2(100)--備註
)
alter table T_DICT add primary key (t_data_id)
 
-- 建立數據字典映射表
create table T_DATA_DETEAL
(
  t_data_id         VARCHAR2(100) not null,
  t_deteal_id       VARCHAR2(100) not null,
  t_deteal_value    VARCHAR2(100) not null,
  t_xh              NUMBER(3),
  t_create_time     VARCHAR2(17)  not null,--建立時間
  t_memo            VARCHAR2(100)--備註
)
alter table T_DATA_DETEAL add constraint FKT_DATA_DETEAL foreign key (t_data_id) references T_DATA (t_data_id);

將此表作成功能,對這兩張表進行增刪查改的操做。便可保持對數據的約束與管理分佈式

2:如何管理並作成分佈式應用spa

2.1 作成功能性,增刪查改操做 架構設計

2.2 對這兩張表用二級緩存存儲,並創建分佈式緩存,讓數據字典的信息存儲到二級緩存中,當咱們查詢的時候,如何獲取數據映射?設計

    將數據映射等基礎服務的類作成公共jar包,每一個應用並作成接口等形式,在spring初始化的時候,讓其自動初始化,咱們調用,之間經過spring的IOC調用數據映射,各個應用同時鏈接公共緩存code

    這樣,這樣就能夠同時獲取緩存的信息。

    如若:各個應用配置了不一樣的緩存前綴,也能夠設計成每一個應用單獨的數據映射緩存,當應用取緩存的時候,首先從本地取,取不到,再去調用管理平臺的數據應用查詢數據庫。

   image

2.3若是各個系統之間使用的key定義規則都不同的緩存,那各個數據映射是如何保持一致性?或者說 分佈式是如何管理緩存的

使用消息推送或者訂閱來管理緩存

1:當管理系統更改新增管理系統,那麼就要觸發推送服務,觸發更新已經訂閱或者註冊的應用,通知這些應用,清理數據映射緩存

  其實這個推送,咱們能夠作成公共的,能夠推送任意的內容,如推送短信,推送提醒,等等,這其中涉及到客戶端和服務端

2:修改推送 

當系統發生修改,系統觸發推送,查詢註冊該事件的 數據庫表,獲取應用列表,Q名爲動態Q名,經過註冊的進行組織,變成真實的Q,輪詢的推送到各個服務

3:啓動訂閱

當應用啓動,應用自動調用管理系統,並寫入註冊事件

具體代碼實現…

相關文章
相關標籤/搜索