SpringCloud从入门到进阶(八)——单点部署Zuul的压力测试与调优(一)

 内容

  作为微服务架构系统的入口,毫无疑问,Zuul的并发性能直接决定了整个系统的并发性能。本文结合前几篇文章的内容,在云服务器中部署了包含Eureka Server,Zuul等组件的1.0版本的微服务架构,并进行单点部署Zuul的压力测试,对其并发性能一探究竟。

版本

​   JVM监测工具:JVisualVM

​   压力测试工具:Apache Bench 2.3

​   JDK:1.8.0_171

  SpringBoot:1.5.9.RELEASE

  SpringCloud:Dalston.SR1

环境

image

  处理器具体型号为Intel xeon(skylake) platinum 8163,主频2.5GHz。

说明

  转载请说明出处:

[user@ServerA7 jars]$ java -Dspring.profiles.active=peer2  -Dcom.sun.management.jmxremote.port=7199 #供JMX客户端远程连接用的端口号  -Dcom.sun.management.jmxremote.ssl=false #关闭账号密码认证,不安全,仅在开发阶段使用 -Dcom.sun.management.jmxremote.authenticate=false #关闭SSL -Djava.rmi.server.hostname=106.117.142.x #指定本机供远程访问的IP地址,此处是本机的公网IP -Xms512m -Xmx512m -jar zuul-1.0-SNAPSHOT.jar &
复制代码

​   如果按照上述参数配置,仍然远程访问JVM,可以参考Linux入门实践笔记(七)——云服务器中配置Java项目的JMX连接失败问题解决记录

启动微服务实例

​  此处在SpringCloud从入门到进阶(六)——使用SpringBoot搭建微服务的基础之上,在DemoController中增加测试接口"/timeconsume/{length}",使用sayHello方法和timeConsuming方法分别模拟简单操作和耗时操作(由代码可知,接口处理与网络带宽、缓存、数据库、磁盘IO无关)。

复制代码
@PostMapping("/hello/{name}") public String sayHello(@PathVariable(value = "name") String name,                        @RequestParam(value = "from") String user){     String content="Hello "+name+",this is DemoTest.From "+user+"@:"+instanceID+".";     logger.log(Level.INFO,content);     return content; } ​ @GetMapping("/timeconsume/{length}") public String timeConsuming(@PathVariable(value = "length") int length){     try {         Thread.sleep(length);    }catch (Exception e){         e.printStackTrace();    }     String content="Successfully sleep "+length+" ms.";     logger.log(Level.INFO,content);     return content; }
复制代码

  参照下面指令启动ServiceA的实例,同样在本地的7199端口开启jmx监控,将jvm的栈空间设置为起始512MB,最大1024MB。

复制代码
[user@ServerA2 jars]$ java -Dspring.profiles.active=peer1 --Dcom.sun.management.jmxremote.port=7199 #供JMX客户端远程连接用的端口号  -Dcom.sun.management.jmxremote.ssl=false #关闭账号密码认证,不安全,仅在开发阶段使用 -Dcom.sun.management.jmxremote.authenticate=false #
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信