最近写了一个简单的客户端,用来模拟服务化框架的客户端调用,功能如下:

  • 随机调用服务

  • 打印服务结果

  • 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
        
		

网友评论