A. 常見的網路多路徑負載均衡演算法包括 LACP 源IP地址 虛擬機ID 源MAC地址
這是其中一種,不管哪個廠家哪個型號哪個版本,大致思路都是一樣的,先建立聚合組,然後埠加入聚合組。
指定負載均衡演算法的命令也大同小異,比如華為93系列交換機是進入Eth-trunk介面用load-balance src-mac,還有的設備是在全局下用link-aggregation load-sharing mode來指定,在設備里找一下就能找到,實在不行就打廠家電話咨詢一下。
B. 如何用貪心演算法解決磁碟文件最優存儲問題
dp??
方程為
a(fi,fj)=min{(a(fi,fk)+a(fk,fj)),a(fi,fj)}(k=i+1,i+2...j-1);
C. 無向圖中求兩定點之間所有路徑。圖用二維數組存儲。最好用c語言、給我解題思路也行。謝謝
/*
深度優先搜索演算法。
*/
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
// 圖中最多的點數
#define MAX_NODES_NUM 10
// 圖中兩點最多的路徑數
#define MAX_PATHS_BETWEEN_TWO_NODES_NUM (1<<(MAX_NODES_NUM-2))
// 標記無窮遠的路徑長度
#define INFINTITY (1<<30)
// 標記可以到達的路徑長度
#define REACHABLE 1
#define TRUE 1
#define FALSE 0
struct Path
{
int size;
int nodes[MAX_NODES_NUM];
};
/*
獲取地圖 map 中 點 start 到 點 end 的所有路徑
map : 地圖
n : 地圖的點數
start : 起點
end : 終點
paths : 保存找到的所有從 start 到 end 路徑
paths : 保存找到的所有從 start 到 end 路徑數目
*/
void getPaths(int map[][MAX_NODES_NUM],int n ,int start,int end,int isNodeUsed[],struct Path paths[],int * pathsNum)
{
int i,j;
struct Path tempPaths[MAX_PATHS_BETWEEN_TWO_NODES_NUM];
int tempPathsNum ;
// 標記當前起點不可用
isNodeUsed[start] = TRUE;
for(i=0;i<n;i++)
{
// 節點不在路徑中,且可以到達
if(isNodeUsed[i] == FALSE && map[start][i]== REACHABLE)
{
// 當前起點能直接到達終點
if(i == end)
{
paths[(*pathsNum)].size = 2;
paths[(*pathsNum)].nodes[0] = end;
paths[(*pathsNum)].nodes[1] = start;
(*pathsNum)++;
}
// 當前起點能不能直接到達終點,嘗試當前節點通過其他節點達到終點
else
{
// 遞歸計算從當前起點到達終點的所有路徑
tempPathsNum = 0;
getPaths(map,n,i,end,isNodeUsed,tempPaths,&tempPathsNum);
// 處理找到的,從當前起點到達終點的所有路徑
for(j=0;j<tempPathsNum;j++)
{
// 在當前起點到達終點的所有路徑中,添加當前起點
tempPaths[j].nodes[tempPaths[j].size] = start;
tempPaths[j].size ++;
// 合並到最終的路徑中
paths[(*pathsNum)] = tempPaths[j];
(*pathsNum)++;
}
}
}
}
isNodeUsed[start] = FALSE;
}
int main(int argc, char *argv[])
{
int map[MAX_NODES_NUM][MAX_NODES_NUM];
int isNodeUsed[MAX_NODES_NUM];
struct Path paths[MAX_PATHS_BETWEEN_TWO_NODES_NUM];
int pathsNum;
int i,j;
int start,end;
int a,b;
int n,m;
// 讀取點數,路徑數
while(scanf("%d%d",&n,&m)!=EOF)
{
// 初始化圖
for(i=0;i<n;i++)
{
isNodeUsed[i] = FALSE;
for(j=0;j<n;j++)
{
map[i][j] = INFINTITY;
}
}
// 讀入路徑
for(i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
// 標記 a b 間有路徑,注意是無向圖,標記兩次
map[a][b] = REACHABLE;
map[b][a] = REACHABLE;
}
// 要連接的兩個點
scanf("%d%d",&start,&end);
// 查找點 start 到點 end 的所有路徑
pathsNum = 0;
getPaths(map,n,start,end,isNodeUsed,paths,&pathsNum);
// 列印點 start 到點 end 的所有路徑
for(i=0;i<pathsNum;i++)
{
for(j=paths[i].size-1;j>=1;j--)
{
printf("%d -> ",paths[i].nodes[j]);
}
printf("%d\n",paths[i].nodes[j]);
}
}
return 0;
}
/*
測試用數據:
1)首先輸入點數 n,路徑條數 m,
2)接下來輸入 m 對點的編號,每對點 a,b 表示點 a 和 點 b 之間有一條路
點的編號從 0 開始到 n-1.
3)最後輸入要連接的兩個點
輸入:
6 14
0 1
0 2
1 0
1 3
2 0
2 4
2 5
3 1
3 5
4 2
4 5
5 2
5 3
5 4
0 5
輸出:
0 -> 1 -> 3 -> 5
0 -> 2 -> 4 -> 5
0 -> 2 -> 5
*/
D. 分布式存儲技術有哪些
中央存儲技術現已發展非常成熟。但是同時,新的問題也出現了,中心化的網路很容易擁擠,數據很容易被濫用。傳統的數據傳輸方式是由客戶端向雲伺服器傳輸,由伺服器向客戶端下載。而分布式存儲系統QKFile是從客戶端傳送到 N個節點,然後從這些節點就近下載到客戶端內部,因此傳輸速度非常快。對比中心協議的特點是上傳、下載速度快,能夠有效地聚集空閑存儲資源,並能大大降低存儲成本。
在節點數量不斷增加的情況下,QKFile市場趨勢開始突出,未來用戶數量將呈指數增長。分布式存儲在未來會有很多應用場景,如數據存儲,文件傳輸,網路視頻,社會媒體和去中心化交易等。網際網路的控制權越來越集中在少數幾個大型技術公司的手中,它的網路被去中心化,就像分布式存儲一樣,總是以社區為中心,面向用戶,而分布式存儲就是實現信息技術和未來網際網路功能的遠景。有了分布式存儲,我們可以創造出更加自由、創新和民主的網路體驗。是時候把網際網路推向新階段了。
作為今年非常受歡迎的明星項目,關於QKFile的未來發展會推動互聯網的進步,給整個市場帶來巨大好處。分布式存儲是基於網際網路的基礎結構產生的,區塊鏈分布式存儲與人工智慧、大數據等有疊加作用。對今天的中心存儲是一個巨大的補充,分布式時代的到來並不是要取代現在的中心互聯網,而是要使未來的數據存儲發展得更好,給整個市場生態帶來不可想像的活力。先看共識,後看應用,QKFile創建了一個基礎設施平台,就像阿里雲,阿里雲上面是做游戲的做電商的視頻網站,這就叫應用層,現階段,在性能上,坦白說,與傳統的雲存儲相比,沒有什麼競爭力。不過另一方面來說,一個新型的去中心化存儲的信任環境式非常重要的,在此環境下,自然可以衍生出許多相關應用,市場潛力非常大。
雖然QKFile離真正的商用還有很大的距離,首先QKFile的經濟模型還沒有定論,其次QKFile需要集中精力發展分布式存儲、商業邏輯和 web3.0,只有打通分布式存儲賽道,才有實力引領整個行業發展,人們認識到了中心化存儲的弊端,還有許多企業開始接受分布式存儲模式,即分布式存儲 DAPP應用觸達用戶。所以QKFile將來肯定會有更多的商業應用。創建超本地高效存儲方式的能力。當用戶希望將數據存儲在QKFile網路上時,他們就可以擺脫巨大的集中存儲和地理位置的限制,用戶可以看到在線存儲的礦工及其市場價格,礦工之間相互競爭以贏得存儲合約。使用者挑選有競爭力的礦工,交易完成,用戶發送數據,然後礦工存儲數據,礦工必須證明數據的正確存儲才能得到QKFile獎勵。在網路中,通過密碼證明來驗證數據的存儲安全性。采礦者通過新區塊鏈向網路提交其儲存證明。通過網路發布的新區塊鏈驗證,只有正確的區塊鏈才能被接受,經過一段時間,礦工們就可以獲得交易存儲費用,並有機會得到區塊鏈獎勵。數據就在更需要它的地方傳播了,旋轉數據就在地球范圍內流動了,數據的獲取就不斷優化了,從小的礦機到大的數據中心,所有人都可以通過共同努力,為人類信息社會的建設奠定新的基礎,並從中獲益。