soul从入门到进阶06——运行soul-examples-dubbo

2024-01-22 12:18

本文主要是介绍soul从入门到进阶06——运行soul-examples-dubbo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前面我们初步尝试了soul网关的http协议相关的功能。这篇我们来看一下 dubbo协议的功能。

1. 启动soul-admin 和 soul-bootstrap

省略 可参考 soul从入门到进阶01——soul网关初体验

2. 启动 soul-example-dubbo
  1. 打开命令行
  2. cd soul-examples
  3. cd soul-examples-dubbo

可以看到分别是apache dubboe的example和 alibaba dubbo的example

  1. 进入 soul-examples-apache-dubbo-service 这个模块
  2. 运行 TestApacheDubboApplication
  3. 发现报错了,显示zookeeper 没有连接
  4. 下载一个zookeeper ,注意 如果是初次使用,需要将conf文件夹下的zoo_sample.cfg 复制为名为zoo.cfg的文件,否则会报以下错误。
pache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg: No such file or directory
  1. 此时再次启动 TestApacheDubboApplication
3 查看soul-admin
  1. 如下图所示,dubbo这个插件里多了一个选择器。选择器里面有很多规则。

在这里插入图片描述

4. 通过http访问dubbo
  1. 在 postman 请求http://localhost:9195/dubbo/findAll
{"code": 200,"message": "Access to success!","data": {"name": "hello world Soul Apache, findAll","id": "-275502741"}
}
  1. 发现bootstrap 打印了如下日志
2021-01-21 00:13:35.517  INFO 23633 --- [-work-threads-1] o.d.soul.plugin.base.AbstractSoulPlugin  : dubbo selector success match , selector name :/dubbo
2021-01-21 00:13:35.518  INFO 23633 --- [-work-threads-1] o.d.soul.plugin.base.AbstractSoulPlugin  : dubbo selector success match , selector name :/dubbo/findAll
5. 修改规则
  1. 在soul-admin 将 【dubbo插件】——【dubbo选择器】——【/dubbo/findAll 规则】关闭。
  2. 再次请求 http://localhost:9195/dubbo/findAll
  3. 响应结果如下 ,没有这条规则,就不能访问
{"code": -102,"message": "Rule not found!","data": null
}
6. 压测一下
wrk -t16 -c200 -d30s  http://localhost:9195/dubbo/findAll
Running 30s test @ http://localhost:9195/dubbo/findAll16 threads and 200 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    17.82ms   24.68ms 498.22ms   93.66%Req/Sec   829.79    268.27     1.51k    69.90%379644 requests in 30.09s, 66.61MB readSocket errors: connect 0, read 157, write 0, timeout 0
Requests/sec:  12616.85
Transfer/sec:      2.21MB
Running 30s test @ http://localhost:9195/dubbo/findAll16 threads and 200 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    13.00ms   11.01ms 121.05ms   74.91%Req/Sec     1.05k   142.75     1.52k    74.88%500028 requests in 30.03s, 87.73MB readSocket errors: connect 0, read 34, write 0, timeout 0
Requests/sec:  16653.62
Transfer/sec:      2.92MB
Running 30s test @ http://localhost:9195/dubbo/findAll16 threads and 200 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    29.02ms   38.88ms 245.86ms   87.01%Req/Sec   710.10    181.88     1.43k    72.27%339633 requests in 30.06s, 59.59MB readSocket errors: connect 0, read 44, write 0, timeout 0
Requests/sec:  11298.65
Transfer/sec:      1.98MB

发现qps在1.2w左右。
采用 压测soul网关 中的办法 将soul-bootstrap 的日志级别调整为warn再次压测

结果如下

Running 30s test @ http://localhost:9195/dubbo/findAll16 threads and 200 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    15.63ms   21.21ms 391.96ms   91.58%Req/Sec     0.96k   275.19     1.86k    72.45%453131 requests in 30.04s, 79.51MB readSocket errors: connect 0, read 167, write 0, timeout 0
Requests/sec:  15082.54
Transfer/sec:      2.65MB
Running 30s test @ http://localhost:9195/dubbo/findAll16 threads and 200 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    13.16ms   14.72ms  81.69ms   84.26%Req/Sec     1.34k   185.92     2.12k    69.48%641716 requests in 30.02s, 112.59MB readSocket errors: connect 0, read 53, write 0, timeout 0
Requests/sec:  21376.63
Transfer/sec:      3.75MB
Running 30s test @ http://localhost:9195/dubbo/findAll16 threads and 200 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    20.25ms   27.69ms 136.29ms   83.67%Req/Sec     1.32k   263.94     2.43k    69.90%630119 requests in 30.02s, 110.56MB readSocket errors: connect 0, read 51, write 0, timeout 0
Requests/sec:  20987.25
Transfer/sec:      3.68MB

性能明显提升了,可以达到2w的qps

这篇关于soul从入门到进阶06——运行soul-examples-dubbo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/632937

相关文章

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

Spring Boot项目打包和运行的操作方法

《SpringBoot项目打包和运行的操作方法》SpringBoot应用内嵌了Web服务器,所以基于SpringBoot开发的web应用也可以独立运行,无须部署到其他Web服务器中,下面以打包dem... 目录一、打包为JAR包并运行1.打包为可执行的 JAR 包2.运行 JAR 包二、打包为WAR包并运行

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性