最近写了一个简单的客户端,用来模拟服务化框架的客户端调用,功能如下:
随机调用服务
打印服务结果
10%的几率较少访问量(假设1个并发),10%几率高访问量(假设100个并发),80%几率正常访问量(假设10个并发)
打印各个访问量情况下的服务调用总时间
分别尝试了Java和Clojure实现,在实现过程中,两者的思路完全不同!
面向对象/面向过程语言思路
逻辑很简单,基本不涉及面向对象概念,主要还是面向过程语言的思路!
如果使用Java来实现,那么大致的思路是这样的:
首先需要一个随机数生成器,基于这个随机数生成器来构建随机调用逻辑
随机调用服务就是判断随机数大小,例如:0~1的随机数范围,大于0.5访问服务A,否则访问服务B
并发量判定则可以依据0~10的随机数范围,小于等于1时并发为1,大于等于9时并发为100,否则并发为10
在每个服务调用完成后,统计执行时间,然后汇总就可以了
下面是Java实现的代码:
public class RandomCall { private static Execu
