最近寫了一個簡單的客戶端,用來模擬服務(wù)化框架的客戶端調(diào)用,功能如下:

  • 隨機調(diào)用服務(wù)

  • 打印服務(wù)結(jié)果

  • 10%的幾率較少訪問量(假設(shè)1個并發(fā)),10%幾率高訪問量(假設(shè)100個并發(fā)),80%幾率正常訪問量(假設(shè)10個并發(fā))

  • 打印各個訪問量情況下的服務(wù)調(diào)用總時間

分別嘗試了Java和Clojure實現(xiàn),在實現(xiàn)過程中,兩者的思路完全不同!

面向?qū)ο?面向過程語言思路

邏輯很簡單,基本不涉及面向?qū)ο蟾拍?,主要還是面向過程語言的思路!

如果使用Java來實現(xiàn),那么大致的思路是這樣的:

  • 首先需要一個隨機數(shù)生成器,基于這個隨機數(shù)生成器來構(gòu)建隨機調(diào)用邏輯

  • 隨機調(diào)用服務(wù)就是判斷隨機數(shù)大小,例如:0~1的隨機數(shù)范圍,大于0.5訪問服務(wù)A,否則訪問服務(wù)B

  • 并發(fā)量判定則可以依據(jù)0~10的隨機數(shù)范圍,小于等于1時并發(fā)為1,大于等于9時并發(fā)為100,否則并發(fā)為10

  • 在每個服務(wù)調(diào)用完成后,統(tǒng)計執(zhí)行時間,然后匯總就可以了

下面是Java實現(xiàn)的代碼:

public class RandomCall {    private static Execu
        
		

網(wǎng)友評論