| |
| <!DOCTYPE HTML> |
| <html lang="" > |
| <head> |
| <meta charset="UTF-8"> |
| <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> |
| <title>14 性能测试报告 · GitBook</title> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| <meta name="description" content=""> |
| <meta name="generator" content="GitBook 3.2.2"> |
| |
| |
| |
| |
| <link rel="stylesheet" href="gitbook/style.css"> |
| |
| |
| |
| |
| <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css"> |
| |
| |
| |
| <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css"> |
| |
| |
| |
| <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <meta name="HandheldFriendly" content="true"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> |
| <meta name="apple-mobile-web-app-capable" content="yes"> |
| <meta name="apple-mobile-web-app-status-bar-style" content="black"> |
| <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png"> |
| <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon"> |
| |
| |
| <link rel="next" href="coveragence.html" /> |
| |
| |
| <link rel="prev" href="benchmark.html" /> |
| |
| |
| </head> |
| <body> |
| |
| <div class="book"> |
| <div class="book-summary"> |
| |
| |
| <div id="book-search-input" role="search"> |
| <input type="text" placeholder="Type to search" /> |
| </div> |
| |
| |
| <nav role="navigation"> |
| |
| |
| |
| <ul class="summary"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="chapter " data-level="1.1" data-path="./"> |
| |
| <a href="./"> |
| |
| |
| Introduction |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.2" > |
| |
| <span> |
| |
| |
| 1 入门 |
| |
| </span> |
| |
| |
| |
| <ul class="articles"> |
| |
| |
| <li class="chapter " data-level="1.2.1" data-path="preface/background.html"> |
| |
| <a href="preface/background.html"> |
| |
| |
| 1.1 背景 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.2.2" data-path="preface/requirements.html"> |
| |
| <a href="preface/requirements.html"> |
| |
| |
| 1.2 需求 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.2.3" data-path="preface/architacture.html"> |
| |
| <a href="preface/architacture.html"> |
| |
| |
| 1.3 架构 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.2.4" data-path="preface/usage.html"> |
| |
| <a href="preface/usage.html"> |
| |
| |
| 1.4 用法 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| </ul> |
| |
| </li> |
| |
| <li class="chapter " data-level="1.3" > |
| |
| <span> |
| |
| |
| 2 快速启动 |
| |
| </span> |
| |
| |
| |
| <ul class="articles"> |
| |
| |
| <li class="chapter " data-level="1.3.1" data-path="dependencies/dependencies.html"> |
| |
| <a href="dependencies/dependencies.html"> |
| |
| |
| 2.1 依赖 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.3.2" data-path="maturity/maturity.html"> |
| |
| <a href="maturity/maturity.html"> |
| |
| |
| 2.2 成熟度 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| </ul> |
| |
| </li> |
| |
| <li class="chapter " data-level="1.4" > |
| |
| <span> |
| |
| |
| 3 配置 |
| |
| </span> |
| |
| |
| |
| <ul class="articles"> |
| |
| |
| <li class="chapter " data-level="1.4.1" data-path="configuration/xml.html"> |
| |
| <a href="configuration/xml.html"> |
| |
| |
| 3.1 XML配置 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.4.2" data-path="configuration/properties.html"> |
| |
| <a href="configuration/properties.html"> |
| |
| |
| 3.2 属性配置 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.4.3" data-path="configuration/api.html"> |
| |
| <a href="configuration/api.html"> |
| |
| |
| 3.3 API配置 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.4.4" data-path="configuration/annotation.html"> |
| |
| <a href="configuration/annotation.html"> |
| |
| |
| 3.4 注解配置 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| </ul> |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5" > |
| |
| <span> |
| |
| |
| 4 示例 |
| |
| </span> |
| |
| |
| |
| <ul class="articles"> |
| |
| |
| <li class="chapter " data-level="1.5.1" data-path="demos/启动时检查.html"> |
| |
| <a href="demos/启动时检查.html"> |
| |
| |
| 4.1 启动时检查 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.2" data-path="demos/集群容错.html"> |
| |
| <a href="demos/集群容错.html"> |
| |
| |
| 4.2 集群容错 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.3" data-path="demos/负载均衡.html"> |
| |
| <a href="demos/负载均衡.html"> |
| |
| |
| 4.3 负载均衡 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.4" data-path="demos/线程模型.html"> |
| |
| <a href="demos/线程模型.html"> |
| |
| |
| 4.4 线程模型 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.5" data-path="demos/直连提供者.html"> |
| |
| <a href="demos/直连提供者.html"> |
| |
| |
| 4.5 直连提供者 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.6" data-path="demos/只订阅.html"> |
| |
| <a href="demos/只订阅.html"> |
| |
| |
| 4.6 只订阅 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.7" data-path="demos/只注册.html"> |
| |
| <a href="demos/只注册.html"> |
| |
| |
| 4.7 只注册 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.8" data-path="demos/静态服务.html"> |
| |
| <a href="demos/静态服务.html"> |
| |
| |
| 4.8 静态服务 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.9" data-path="demos/多协议.html"> |
| |
| <a href="demos/多协议.html"> |
| |
| |
| 4.9 多协议 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.10" data-path="demos/多注册中心.html"> |
| |
| <a href="demos/多注册中心.html"> |
| |
| |
| 4.10 多注册中心 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.11" data-path="demos/服务分组.html"> |
| |
| <a href="demos/服务分组.html"> |
| |
| |
| 4.11 服务分组 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.12" data-path="demos/多版本.html"> |
| |
| <a href="demos/多版本.html"> |
| |
| |
| 4.13 多版本 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.13" data-path="demos/分组聚合.html"> |
| |
| <a href="demos/分组聚合.html"> |
| |
| |
| 4.14 分组聚合 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.14" data-path="demos/参数验证.html"> |
| |
| <a href="demos/参数验证.html"> |
| |
| |
| 4.15 参数验证 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.15" data-path="demos/结果缓存.html"> |
| |
| <a href="demos/结果缓存.html"> |
| |
| |
| 4.16 结果缓存 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.16" data-path="demos/泛化引用.html"> |
| |
| <a href="demos/泛化引用.html"> |
| |
| |
| 4.17 泛化引用 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.17" data-path="demos/泛化实现.html"> |
| |
| <a href="demos/泛化实现.html"> |
| |
| |
| 4.18 泛化实现 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.18" data-path="demos/回声测试.html"> |
| |
| <a href="demos/回声测试.html"> |
| |
| |
| 4.19 回声测试 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.19" data-path="demos/上下文信息.html"> |
| |
| <a href="demos/上下文信息.html"> |
| |
| |
| 4.20 上下文信息 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.20" data-path="demos/隐式参数.md"> |
| |
| <span> |
| |
| |
| 4.21 隐式参数 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.21" data-path="demos/异步调用.html"> |
| |
| <a href="demos/异步调用.html"> |
| |
| |
| 4.22 异步调用 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.22" data-path="demos/本地调用.html"> |
| |
| <a href="demos/本地调用.html"> |
| |
| |
| 4.23 本地调用 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.23" data-path="demos/参数回调.html"> |
| |
| <a href="demos/参数回调.html"> |
| |
| |
| 4.24 参数回调 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.24" data-path="demos/事件通知.html"> |
| |
| <a href="demos/事件通知.html"> |
| |
| |
| 4.25 事件通知 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.25" data-path="demos/本地存根.html"> |
| |
| <a href="demos/本地存根.html"> |
| |
| |
| 4.26 本地存根 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.26" data-path="demos/本地伪装.html"> |
| |
| <a href="demos/本地伪装.html"> |
| |
| |
| 4.27 本地伪装 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.27" data-path="demos/延迟暴露.html"> |
| |
| <a href="demos/延迟暴露.html"> |
| |
| |
| 4.28 延迟暴露 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.28" data-path="demos/并发控制.html"> |
| |
| <a href="demos/并发控制.html"> |
| |
| |
| 4.29 并发控制 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.29" data-path="demos/连接控制.html"> |
| |
| <a href="demos/连接控制.html"> |
| |
| |
| 4.30 连接控制 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.30" data-path="demos/延迟连接.html"> |
| |
| <a href="demos/延迟连接.html"> |
| |
| |
| 4.31 延迟连接 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.31" data-path="demos/粘滞连接.html"> |
| |
| <a href="demos/粘滞连接.html"> |
| |
| |
| 4.32 粘滞连接 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.32" data-path="demos/令牌验证.html"> |
| |
| <a href="demos/令牌验证.html"> |
| |
| |
| 4.33 令牌验证 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.33" data-path="demos/路由规则.html"> |
| |
| <a href="demos/路由规则.html"> |
| |
| |
| 4.34 路由规则 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.34" data-path="demos/配置规则.html"> |
| |
| <a href="demos/配置规则.html"> |
| |
| |
| 4.35 配置规则 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.35" data-path="demos/服务降级.html"> |
| |
| <a href="demos/服务降级.html"> |
| |
| |
| 4.36 服务降级 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.36" data-path="demos/优雅停机.html"> |
| |
| <a href="demos/优雅停机.html"> |
| |
| |
| 4.37 优雅停机 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.37" data-path="demos/主机绑定.html"> |
| |
| <a href="demos/主机绑定.html"> |
| |
| |
| 4.38 主机绑定 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.38" data-path="demos/日志适配.html"> |
| |
| <a href="demos/日志适配.html"> |
| |
| |
| 4.39 日志适配 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.39" data-path="demos/访问日志.html"> |
| |
| <a href="demos/访问日志.html"> |
| |
| |
| 4.40 访问日志 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.40" data-path="demos/服务容器.html"> |
| |
| <a href="demos/服务容器.html"> |
| |
| |
| 4.41 服务容器 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.41" data-path="demos/ReferenceConfig缓存.html"> |
| |
| <a href="demos/ReferenceConfig缓存.html"> |
| |
| |
| 4.42 Reference Config缓存 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.42" data-path="demos/分布式事务.html"> |
| |
| <a href="demos/分布式事务.html"> |
| |
| |
| 4.43 分布式事务 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.5.43" data-path="reference-apiconf/api.html"> |
| |
| <a href="reference-apiconf/api.html"> |
| |
| |
| 5 API参考手册 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| </ul> |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6" data-path="reference-xmlconf/introduction.html"> |
| |
| <a href="reference-xmlconf/introduction.html"> |
| |
| |
| 5 schema配置参考手册 |
| |
| </a> |
| |
| |
| |
| <ul class="articles"> |
| |
| |
| <li class="chapter " data-level="1.6.1" data-path="reference-xmlconf/dubbo-service.html"> |
| |
| <a href="reference-xmlconf/dubbo-service.html"> |
| |
| |
| 5.1 dubbo:service |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.2" data-path="reference-xmlconf/dubbo-reference.html"> |
| |
| <a href="reference-xmlconf/dubbo-reference.html"> |
| |
| |
| 5.2 dubbo:reference |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.3" data-path="reference-xmlconf/dubbo-protocol.html"> |
| |
| <a href="reference-xmlconf/dubbo-protocol.html"> |
| |
| |
| 5.3 dubbo:protocol |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.4" data-path="reference-xmlconf/dubbo-registry.html"> |
| |
| <a href="reference-xmlconf/dubbo-registry.html"> |
| |
| |
| 5.4 dubbo:registry |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.5" data-path="reference-xmlconf/dubbo-monitor.html"> |
| |
| <a href="reference-xmlconf/dubbo-monitor.html"> |
| |
| |
| 5.5 dubbo:monitor |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.6" data-path="reference-xmlconf/dubbo-application.html"> |
| |
| <a href="reference-xmlconf/dubbo-application.html"> |
| |
| |
| 5.6 dubbo:application |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.7" data-path="reference-xmlconf/dubbo-module.html"> |
| |
| <a href="reference-xmlconf/dubbo-module.html"> |
| |
| |
| 5.7 dubbo:module |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.8" data-path="reference-xmlconf/dubbo-provider.html"> |
| |
| <a href="reference-xmlconf/dubbo-provider.html"> |
| |
| |
| 5.8 dubbo:provider |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.9" data-path="reference-xmlconf/dubbo-consumer.html"> |
| |
| <a href="reference-xmlconf/dubbo-consumer.html"> |
| |
| |
| 5.9 dubbo:consumer |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.10" data-path="reference-xmlconf/dubbo-method.html"> |
| |
| <a href="reference-xmlconf/dubbo-method.html"> |
| |
| |
| 5.10 dubbo:method |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.11" data-path="reference-xmlconf/dubbo-argument.html"> |
| |
| <a href="reference-xmlconf/dubbo-argument.html"> |
| |
| |
| 5.11 dubbo:argument |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.6.12" data-path="reference-xmlconf/dubbo-parameter.html"> |
| |
| <a href="reference-xmlconf/dubbo-parameter.html"> |
| |
| |
| 5.12 dubbo:parameter |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| </ul> |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7" data-path="reference-protocol/introduction.html"> |
| |
| <a href="reference-protocol/introduction.html"> |
| |
| |
| 6 协议参考手册 |
| |
| </a> |
| |
| |
| |
| <ul class="articles"> |
| |
| |
| <li class="chapter " data-level="1.7.1" data-path="reference-protocol/dubbo.html"> |
| |
| <a href="reference-protocol/dubbo.html"> |
| |
| |
| 6.1 dubbo:// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7.2" data-path="reference-protocol/rmi.html"> |
| |
| <a href="reference-protocol/rmi.html"> |
| |
| |
| 6.2 rmi// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7.3" data-path="reference-protocol/hessian.html"> |
| |
| <a href="reference-protocol/hessian.html"> |
| |
| |
| 6.3 hessian:// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7.4" data-path="reference-protocol/http.html"> |
| |
| <a href="reference-protocol/http.html"> |
| |
| |
| 6.4 http:// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7.5" data-path="reference-protocol/webservice.html"> |
| |
| <a href="reference-protocol/webservice.html"> |
| |
| |
| 6.5 webservice:// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7.6" data-path="reference-protocol/thrift.html"> |
| |
| <a href="reference-protocol/thrift.html"> |
| |
| |
| 6.6 thrift:// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7.7" data-path="reference-protocol/memcached.html"> |
| |
| <a href="reference-protocol/memcached.html"> |
| |
| |
| 6.7 memcached:// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.7.8" data-path="reference-protocol/redis.html"> |
| |
| <a href="reference-protocol/redis.html"> |
| |
| |
| 6.8 redis:// |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| </ul> |
| |
| </li> |
| |
| <li class="chapter " data-level="1.8" data-path="reference-registry/introduction.html"> |
| |
| <a href="reference-registry/introduction.html"> |
| |
| |
| 7 注册中心参考手册 |
| |
| </a> |
| |
| |
| |
| <ul class="articles"> |
| |
| |
| <li class="chapter " data-level="1.8.1" data-path="reference-registry/multicast.html"> |
| |
| <a href="reference-registry/multicast.html"> |
| |
| |
| 7.1 Multicast注册中心 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.8.2" data-path="reference-registry/zookeeper.html"> |
| |
| <a href="reference-registry/zookeeper.html"> |
| |
| |
| 7.2 Zookeeper注册中心 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.8.3" data-path="reference-registry/redis.html"> |
| |
| <a href="reference-registry/redis.html"> |
| |
| |
| 7.3 Redis注册中心 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.8.4" data-path="reference-registry/simple.html"> |
| |
| <a href="reference-registry/simple.html"> |
| |
| |
| 7.4 Simple注册中心 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| </ul> |
| |
| </li> |
| |
| <li class="chapter " data-level="1.9" data-path="reference-telnet/telnet.html"> |
| |
| <a href="reference-telnet/telnet.html"> |
| |
| |
| 8 telnet命令参考手册 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.10" data-path="reference-maven/maven.html"> |
| |
| <a href="reference-maven/maven.html"> |
| |
| |
| 9 maven插件参考手册 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.11" data-path="best-practice.html"> |
| |
| <a href="best-practice.html"> |
| |
| |
| 10 服务化最佳实践 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.12" data-path="recommend.html"> |
| |
| <a href="recommend.html"> |
| |
| |
| 11 推荐用法 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.13" data-path="capacity-plan.html"> |
| |
| <a href="capacity-plan.html"> |
| |
| |
| 12 容量规划 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.14" data-path="benchmark.html"> |
| |
| <a href="benchmark.html"> |
| |
| |
| 13 基准测试工具包 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter active" data-level="1.15" data-path="perf-test.html"> |
| |
| <a href="perf-test.html"> |
| |
| |
| 14 性能测试报告 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| <li class="chapter " data-level="1.16" data-path="coveragence.html"> |
| |
| <a href="coveragence.html"> |
| |
| |
| 15 测试覆盖率报告 |
| |
| </a> |
| |
| |
| |
| </li> |
| |
| |
| |
| |
| <li class="divider"></li> |
| |
| <li> |
| <a href="https://www.gitbook.com" target="blank" class="gitbook-link"> |
| Published with GitBook |
| </a> |
| </li> |
| </ul> |
| |
| |
| </nav> |
| |
| |
| </div> |
| |
| <div class="book-body"> |
| |
| <div class="body-inner"> |
| |
| |
| |
| <div class="book-header" role="navigation"> |
| |
| |
| <!-- Title --> |
| <h1> |
| <i class="fa fa-circle-o-notch fa-spin"></i> |
| <a href="." >14 性能测试报告</a> |
| </h1> |
| </div> |
| |
| |
| |
| |
| <div class="page-wrapper" tabindex="-1" role="main"> |
| <div class="page-inner"> |
| |
| <div id="book-search-results"> |
| <div class="search-noresults"> |
| |
| <section class="normal markdown-section"> |
| |
| <h4 id="测试说明">测试说明</h4> |
| <ol> |
| <li>本次性能测试,测试了dubbo2.0所有支持的协议在不同大小和数据类型下的表现,并与dubbo1.0进行了对比。</li> |
| <li>整体性能相比1.0有了提升,平均提升10%,使用dubbo2.0新增的dubbo序列化还能获得10%~50%的性能提升,详见下面的性能数据。</li> |
| <li>稳定性测试中由于将底层通信框架从mina换成netty,old区对象的增长大大减少,50小时运行,增长不到200m,无fullgc。(可以确认为mina在高并发下的设计缺陷)</li> |
| <li>存在的问题:在50k数据的时候2.0性能不如1.0,怀疑可能是缓冲区设置的问题,下版本会进一步确认。 </li> |
| </ol> |
| <h4 id="测试环境">测试环境</h4> |
| <h5 id="硬件部署与参数调整">硬件部署与参数调整</h5> |
| <table> |
| <thead> |
| <tr> |
| <th>机型</th> |
| <th>CPU</th> |
| <th>内存</th> |
| <th>网络</th> |
| <th>磁盘</th> |
| <th>内核</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>Tecal BH620</td> |
| <td>model name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz cache size : 8192 KB processor_count : 16</td> |
| <td>Total System Memory: 6G Hardware Memory Info: Size: 4096MB</td> |
| <td>eth0: Link is up at 1000 Mbps, full duplex. peth0: Link is up at 1000 Mbps, full duplex.</td> |
| <td>/dev/sda: 597.9 GB</td> |
| <td>2.6.18-128.el5xen x86_64</td> |
| </tr> |
| </tbody> |
| </table> |
| <h5 id="软件架构">软件架构</h5> |
| <table> |
| <thead> |
| <tr> |
| <th>软件名称及版本</th> |
| <th>关键参数</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)</td> |
| <td>-server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70</td> |
| </tr> |
| <tr> |
| <td>jboss-4.0.5.GA</td> |
| <td></td> |
| </tr> |
| <tr> |
| <td>httpd-2.0.61</td> |
| <td>KeepAlive On MaxKeepAliveRequests 100000 KeepAliveTimeout 180 MaxRequestsPerChild 1000000 <ifmodule worker.c=""> StartServers 5 MaxClients 1024 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 64 ThreadLimit 128 ServerLimit 16 </ifmodule></td> |
| </tr> |
| </tbody> |
| </table> |
| <h4 id="测试目的">测试目的</h4> |
| <h5 id="期望性能指标量化">期望性能指标(量化)</h5> |
| <table> |
| <thead> |
| <tr> |
| <th>场景名称</th> |
| <th>对应指标名称</th> |
| <th>期望值范围</th> |
| <th>实际值</th> |
| <th>是否满足期望(是/否)</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>1k数据</td> |
| <td>响应时间</td> |
| <td>0.9ms</td> |
| <td>0.79ms</td> |
| <td>是 </td> |
| </tr> |
| <tr> |
| <td>1k数据</td> |
| <td>TPS</td> |
| <td>10000</td> |
| <td>11994</td> |
| <td>是</td> |
| </tr> |
| </tbody> |
| </table> |
| <h5 id="期望运行状况非量化,可选">期望运行状况(非量化,可选)</h5> |
| <ul> |
| <li>2.0性能不低于1.0,2.0和1.0互调用的性能无明显下降。 除了50k string其余皆通过</li> |
| <li>JVM内存运行稳定,无OOM,堆内存中无不合理的大对象的占用。通过</li> |
| <li>CPU、内存、网络、磁盘、文件句柄占用平稳。通过</li> |
| <li>无频繁线程锁,线程数平稳。通过</li> |
| <li>业务线程负载均衡。通过</li> |
| </ul> |
| <h4 id="测试脚本">测试脚本</h4> |
| <ol> |
| <li><p>性能测试场景(10并发)</p> |
| <ul> |
| <li>传入1kString,不做任何处理,原样返回</li> |
| <li>传入50kString,不做任何处理,原样返回</li> |
| <li>传入200kString,不做任何处理,原样返回</li> |
| <li><p>传入1k pojo(嵌套的复杂person对象),不做任何处理,原样返回</p> |
| <p>上述场景在dubbo1.0\dubbo2.0(hessian2序列化)\dubbo2.0(dubbo序列化)\rmi\hessian3.2.0\http(json序列化)进行10分钟的性能测试。 主要考察序列化和网络IO的性能,因此服务端无任何业务逻辑。取10并发是考虑到http协议在高并发下对CPU的使用率较高可能会先打到瓶颈。 </p> |
| </li> |
| </ul> |
| </li> |
| <li>并发场景(20并发) |
| 传入1kString,在服务器段循环1w次,每次重新生成一个随机数然后进行拼装。考察业务线程是否能够分配到每个CPU上。 </li> |
| <li>稳定性场景(20并发) |
| 同时调用1个参数为String(5k)方法,1个参数为person对象的方法,1个参数为map(值为3个person)的方法,持续运行50小时。 </li> |
| <li>高压力场景(20并发) |
| 在稳定性场景的基础上,将提供者和消费者布置成均为2台(一台机器2个实例),且String的参数从20byte到200k,每隔10分钟随机变换。 </li> |
| </ol> |
| <h4 id="测试结果">测试结果</h4> |
| <h5 id="场景名称:pojo-场景">场景名称:POJO 场景</h5> |
| <table> |
| <thead> |
| <tr> |
| <th></th> |
| <th>TPS成功平均值</th> |
| <th>响应时间成功平均值(ms) </th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td> dubbo1 (hessian2序列化+mina)</td> |
| <td>10813.5</td> |
| <td>0.9 </td> |
| </tr> |
| <tr> |
| <td> dubbo2 (hessian2序列化+netty)</td> |
| <td>11994</td> |
| <td>0.79 </td> |
| </tr> |
| <tr> |
| <td> dubbo2 (dubbo序列化+netty)</td> |
| <td>13620</td> |
| <td>0.67 </td> |
| </tr> |
| <tr> |
| <td> rmi</td> |
| <td>2461.79</td> |
| <td>4 </td> |
| </tr> |
| <tr> |
| <td> hessian</td> |
| <td>2417.7</td> |
| <td>4.1 </td> |
| </tr> |
| <tr> |
| <td> http(json序列化)</td> |
| <td>8179.08</td> |
| <td>1.15 </td> |
| </tr> |
| <tr> |
| <td> 2.0和1.0默认对比百分比</td> |
| <td>10.92</td> |
| <td>-12.22 </td> |
| </tr> |
| <tr> |
| <td> dubbo序列化相比hessian2序列化百分比</td> |
| <td>13.56</td> |
| <td>-15.19 </td> |
| </tr> |
| </tbody> |
| </table> |
| <p><strong>POJO TPS</strong></p> |
| <p><img src="sources/images/pojotps.png" alt="/user-guide/images/pojotps.png"></p> |
| <p><strong>POJO Response</strong></p> |
| <p><img src="sources/images/pojores.png" alt="/user-guide/images/pojores.png"></p> |
| <h5 id="场景名称:1k-string-场景">场景名称:1k string 场景</h5> |
| <table> |
| <thead> |
| <tr> |
| <th></th> |
| <th>TPS成功平均值</th> |
| <th>响应时间成功平均值(ms) </th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>dubbo1(hessian2序列化+mina)</td> |
| <td>11940</td> |
| <td>0.8 </td> |
| </tr> |
| <tr> |
| <td>dubbo2 (hessian2序列化+netty)</td> |
| <td>14402</td> |
| <td>0.64 </td> |
| </tr> |
| <tr> |
| <td>dubbo2 (dubbo序列化+netty)</td> |
| <td>15096</td> |
| <td>0.6 </td> |
| </tr> |
| <tr> |
| <td>rmi</td> |
| <td>11136.02</td> |
| <td>0.81 </td> |
| </tr> |
| <tr> |
| <td>hessian</td> |
| <td>11426.83</td> |
| <td>0.79 </td> |
| </tr> |
| <tr> |
| <td>http(json序列化)</td> |
| <td>8919.27</td> |
| <td>1.04 </td> |
| </tr> |
| <tr> |
| <td>2.0和1.0默认对比百分比</td> |
| <td>20.62</td> |
| <td>-20.00 </td> |
| </tr> |
| <tr> |
| <td>dubbo序列化相比hessian2序列化百分比</td> |
| <td>4.82</td> |
| <td>-6.25 </td> |
| </tr> |
| </tbody> |
| </table> |
| <p><strong>1k TPS</strong></p> |
| <p><img src="sources/images/1ktps.png" alt="/user-guide/images/1ktps.png"></p> |
| <p><strong>1k Response</strong></p> |
| <p><img src="sources/images/1kres.png" alt="/user-guide/images/1kres.png"></p> |
| <h5 id="场景名称:50k-string场景">场景名称:50k string场景</h5> |
| <table> |
| <thead> |
| <tr> |
| <th></th> |
| <th>TPS成功平均值</th> |
| <th>响应时间成功平均值(ms) </th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td> dubbo1(hessian2序列化+mina</td> |
| <td>1962.7</td> |
| <td>5.1 </td> |
| </tr> |
| <tr> |
| <td> dubbo2 (hessian2序列化+netty)</td> |
| <td>1293</td> |
| <td>5.03 </td> |
| </tr> |
| <tr> |
| <td> dubbo2 (dubbo序列化+netty)</td> |
| <td>1966</td> |
| <td>7.68 </td> |
| </tr> |
| <tr> |
| <td> rmi</td> |
| <td>3349.88</td> |
| <td>2.9 </td> |
| </tr> |
| <tr> |
| <td> hessian</td> |
| <td>1925.33</td> |
| <td>5.13 </td> |
| </tr> |
| <tr> |
| <td> http(json序列化)</td> |
| <td>3247.1</td> |
| <td>3 </td> |
| </tr> |
| <tr> |
| <td> 2.0和1.0默认对比百分比</td> |
| <td>-34.12</td> |
| <td>-1.37 </td> |
| </tr> |
| <tr> |
| <td> dubbo序列化相比hessian2序列化百分比</td> |
| <td>52.05</td> |
| <td>52.68 </td> |
| </tr> |
| </tbody> |
| </table> |
| <p><strong>50K TPS</strong></p> |
| <p><img src="sources/images/50ktps.png" alt="/user-guide/images/50ktps.png"></p> |
| <p><strong>50K Response</strong></p> |
| <p><a href="sources/images/50kres.png">/user-guide/images/50kres.png</a></p> |
| <h5 id="场景名称:200k-string-场景">场景名称:200k string 场景</h5> |
| <table> |
| <thead> |
| <tr> |
| <th></th> |
| <th>TPS成功平均值</th> |
| <th>响应时间成功平均值(ms) </th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td> dubbo1(hessian2序列化+mina)</td> |
| <td>324.2</td> |
| <td>30.8 </td> |
| </tr> |
| <tr> |
| <td> dubbo2 (hessian2序列化+netty)</td> |
| <td>362.92</td> |
| <td>27.49 </td> |
| </tr> |
| <tr> |
| <td> dubbo2 (dubbo序列化+netty)</td> |
| <td>569.5</td> |
| <td>17.51 </td> |
| </tr> |
| <tr> |
| <td> rmi</td> |
| <td>1031.28</td> |
| <td>9.61</td> |
| </tr> |
| <tr> |
| <td> hessian</td> |
| <td>628.06</td> |
| <td>15.83 </td> |
| </tr> |
| <tr> |
| <td> http(json序列化)</td> |
| <td>1011.97</td> |
| <td>9.79 </td> |
| </tr> |
| <tr> |
| <td> 2.0和1.0默认对比百分比</td> |
| <td>11.94</td> |
| <td>-10.75 </td> |
| </tr> |
| <tr> |
| <td> dubbo序列化相比hessian2序列化百分比</td> |
| <td>56.92</td> |
| <td>-36.30 </td> |
| </tr> |
| </tbody> |
| </table> |
| <p><strong>200K TPS</strong></p> |
| <p><img src="sources/images/200ktps.png" alt="/user-guide/images/200ktps.png"></p> |
| <p><strong>200K Response</strong></p> |
| <p><img src="sources/images/200kres.png" alt="/user-guide/images/200kres.png"></p> |
| <h4 id="测试分析">测试分析</h4> |
| <h5 id="性能分析评估">性能分析评估</h5> |
| <p>Dubbo2.0的性能测试结论为通过,从性能、内存占用和稳定性上都有了提高和改进。由其是内存管理由于将mina换成netty,大大减少了1.0版本在高并发大数据下的内存大锯齿。如下图:</p> |
| <h5 id="性能对比分析新旧环境、不同数据量级等">性能对比分析(新旧环境、不同数据量级等)</h5> |
| <p>Dubbo2.0相比较Dubbo1.0(默认使用的都是hessian2序列化)性能均有提升(除了50k String),详见第五章的性能数据。</p> |
| <p>出于兼容性考虑默认的序列化方式和1.0保持一致使用hessian2,如对性能有更高要求可以使用dubbo序列化,由其是在处理复杂对象时,在大数据量下能获得50%的提升(但此时已不建议使用Dubbo协议)。</p> |
| <p>Dubbo的设计目的是为了满足高并发小数据量的rpc调用,在大数据量下的性能表现并不好,建议使用rmi或http协议。</p> |
| <h5 id="测试局限性分析(可选)">测试局限性分析(可选)</h5> |
| <p>本次性能测试考察的是dubbo本身的性能,实际使用过程中的性能有待应用来验证。</p> |
| <p>由于dubbo本身的性能占用都在毫秒级,占的基数很小,性能提升可能对应用整体的性能变化不大。</p> |
| <p>由于邮件篇幅所限没有列出所有的监控图,如需获得可在大力神平台上查询。</p> |
| |
| |
| </section> |
| |
| </div> |
| <div class="search-results"> |
| <div class="has-results"> |
| |
| <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1> |
| <ul class="search-results-list"></ul> |
| |
| </div> |
| <div class="no-results"> |
| |
| <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1> |
| |
| </div> |
| </div> |
| </div> |
| |
| </div> |
| </div> |
| |
| </div> |
| |
| |
| |
| <a href="benchmark.html" class="navigation navigation-prev " aria-label="Previous page: 13 基准测试工具包"> |
| <i class="fa fa-angle-left"></i> |
| </a> |
| |
| |
| <a href="coveragence.html" class="navigation navigation-next " aria-label="Next page: 15 测试覆盖率报告"> |
| <i class="fa fa-angle-right"></i> |
| </a> |
| |
| |
| |
| </div> |
| |
| <script> |
| var gitbook = gitbook || []; |
| gitbook.push(function() { |
| gitbook.page.hasChanged({"page":{"title":"14 性能测试报告","level":"1.15","depth":1,"next":{"title":"15 测试覆盖率报告","level":"1.16","depth":1,"path":"coveragence.md","ref":"coveragence.md","articles":[]},"previous":{"title":"13 基准测试工具包","level":"1.14","depth":1,"path":"benchmark.md","ref":"benchmark.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"perf-test.md","mtime":"2017-07-28T06:05:28.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2017-07-28T06:06:18.782Z"},"basePath":".","book":{"language":""}}); |
| }); |
| </script> |
| </div> |
| |
| |
| <script src="gitbook/gitbook.js"></script> |
| <script src="gitbook/theme.js"></script> |
| |
| |
| <script src="gitbook/gitbook-plugin-search/search-engine.js"></script> |
| |
| |
| |
| <script src="gitbook/gitbook-plugin-search/search.js"></script> |
| |
| |
| |
| <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script> |
| |
| |
| |
| <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script> |
| |
| |
| |
| <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script> |
| |
| |
| |
| <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script> |
| |
| |
| |
| </body> |
| </html> |
| |