介面伺服器(inte***ce server)和訊息分發伺服器(dispatcher server)在分發請求的策略上有所不同.
輔助函式和變數:
public string gettargetserverips();//目標伺服器的ip,如193.243.15.45:8080
public int gettargetserverids();//目標伺服器id,與上述伺服器ip一一對應,可以自由配置
public boolean isserverworking(index);//判斷目標伺服器的狀態
int currenttargetserverindex=0;//當前的目標伺服器在targetserverids中的index
介面伺服器(inte***ce server)採用輪詢演算法:
public string gettargetserverip()
currenttargetserverindex=index;
return targetserverips[index];
}訊息分發伺服器(dispatcher server)分發請求採用的hash演算法
// hash algrithm from jdk's string,來自於jdk的hash演算法
public int hash(byte bs)
return hash;
}public int gettargetservergroupindexbyhash(string hashparam) throws btirexception
public string gettargetserveripingriuo(int groupindex){//根據輪詢演算法,計算伺服器群組中的最優伺服器
string targetserverips=gettargetserverips();//組內的輪詢演算法,**略
int targetserverids=gettargetserverids();
int index=gettargetserverindexingroup(groupindex);//輪詢演算法**略
return targetserverips[index];
分布式事務(二)分布式事務方案
首先這是普通事務 下面是分布式事務 在微服務系統中,每個微服務應用都可能會有自己的資料庫,它們首先需要控制自己的本地事務。一項業務操作可能會呼叫執行多個微服務。如何保證多個服務執行的多個資料庫的操作整體成功或整體失敗?這就是分布式事務要解決的問題。cap 和 base 是對大規模網際網路系統分布式實...
分布式 2分布式事務
分布式 1概述cap和base 分布式 2分布式事務 分布式 3分布式一致性演算法 分布式 4集群 分布式 5服務限流演算法 分布式 6分布式id 分布式 7效能壓測 分布式 8日誌鏈路跟蹤 分布式 9分布式鎖 redis鎖的幾種實現 參考 分布式系統間各種問題 宕機 網路不穩定 本地事務無法滿足需...
分布式隨筆1 分布式概述
分布式,好寬泛的話題,來來咱扯兩句。你乙個人再強壯,也扛不了100袋大公尺,單機的資源也很有限,大 的大資料量 高併發以及各種業務需求 童鞋們的web應用,伺服器 rdb mq 服務 快取以及各類基礎設施,更別說還有安全 大資料方面的需求 於是,我們常見的面向服務的dubbo springcloud...