8-26接口压力测试-1Dubbo接口测试
1. Dubbo
Dubbo是一个分布式服务框架,提供了高性能和透明化的RPC(Remote Procedure Call Protocol)远程服务调用方案和服务治理方案。
SOA:面向服务的架构
Dubbo协议特点:
- 远程调用:提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。一旦发布这个服务,客户端不需关心内部细节和如何实现,Dubbo已封装好,直接调用接口即可
- 集群管理:内置多种负载均衡策略,提高系统吞吐量,并支持灵活扩展。
- 自动发现:支持多种注册中心服务,服务实力上下线实施感知。对于SOA的系统,其服务都需要自动的去发现,不然会有一个问题:服务提供者很多,服务的地址是没有办法进行管理的,它需要有一个注册中心,去进行管理这些服务。当服务发布之后,自动去注册中心注册;对服务的上下线也能自动的感知。当服务下线,自动从注册中心踢掉。
2. Dubbo基本原理
架构

节点角色说明
| 节点 | 角色说明 |
| Provider | 暴露服务的服务提供方 |
| Consumer | 调用远程服务的服务消费方 |
| Registry | 服务注册与发现的注册中心 |
| Monitor | 统计服务的调用次数和调用时间的监控中心 |
| Container | 服务运行容器 |
调用关系说明
- 0 服务容器负责启动,加载,运行服务提供者。
- 1 服务提供者在启动时,向注册中心注册自己提供的服务。
- 2 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 3 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 4 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。同步的
- 5 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
2.1 Dubbo与整体的服务有什么不同?
假设tomcat有一个服务(包含A、B2部分),通过http去调用。
引发的问题:发布的时候,其实是一整套,各个服务是拆分不开的。假设修改了A,但发布时要把B一起带上去,因为他是一个整体。
而对于SOA来说,改A就是改A
2.2 Dubbo provider管理
Consumer调用的时候先去注册中心,不需要给一个明确的地址。假设有100个服务,就需要100个URL。对于Dubbo来说,只需告诉Consumer服务名字,它自己回去注册中心找可用的provider,不要URL地址。
2.3 Dubbo负载均衡
我们去银行办理业务,大厅工作人员会给我们号码,分散到不同的柜台。

Dubbo也是一样的,不过它是通过注册中心实现的。
我们去消费的时候,一个消费者有非常多的provider提供者。当有大量的请求进来的时候,它会均匀的分配到不同的provider,避免只调一台,否则那台压力会非常大。
2.4 入门知识
8-26接口压力测试-1Dubbo接口测试的更多相关文章
- 使用Loadrunner进行http接口压力测试
业务描述: 在业务系统里进行查询操作,查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回. 本文就讲述使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据: ...
- Python开发【笔记】:接口压力测试
接口压力测试脚本 1.单进程多线程模式 # #!/usr/bin/env python # # -*- coding:utf-8 -*- import time import logging impo ...
- 学习总结——JMeter做http接口压力测试
JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...
- 一次接口压力测试qps极低原因分析及解决过程
一次接口压力测试qps极低原因分析及解决过程 9-2日在做内部的性能测试相关培训时,发现注册接口压力测试qps极低(20左右),这个性能指标远不能达到上线标准 ,经过一系列调试,最后定位 98%的时间 ...
- JMeter接口压力测试课程入门到高级实战
章节一压力测试课程介绍 1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介: 讲解课程安排,使用的Jmeter版本 讲课风格:涉及的组件,操作配置多,不会一次性讲解,会先讲部分 ...
- Jmeter压力测试和接口测试
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...
- Jmeter对Websocket进行接口压力测试
压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求 ...
- JMeter做http接口压力测试
测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做压力测试的时候就是混合场景,需要多个 ...
- Postman接口&压力测试
Postman接口与压力测试实例 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.它提供功能强大的 Web API & HTTP 请求调试. 1.环境变量和全局 ...
随机推荐
- JAVA基础学习-多态 对象转型 final
一.多态的产生条件 1:继承 存在继承的类之间 2:方法重装 3:父类继承子类重装的方法 子类的对象 也是属于父类的 二:对象的转型 1:向上转型:当子类转型成父类时 例如:Animal a = n ...
- netstat 指令
netstat 指令将所有的网络端口监听情况进行罗列 语法 netstat -tuln 几个常见的服务端口 例 通过grep 查看端口来获得上面的服务是否开启,并给予提示 1 #!/bin/bas ...
- 热修复框架Tinker的从0到集成之路(转)
转自:http://blog.csdn.net/lisdye2/article/details/54411727 热修复框架Tinker的从0到集成之路 转载请标明出处: http://blog.cs ...
- 使用Git实现Laravel项目的自动化部署
简介 不知道大家一开始是怎么使用 git 进行开发的,反正我个人是先将代码提交到 github 仓库,然后用 SSH 登录到服务器,然后进行克隆或者版本更新.听起来就很麻烦,当然实际操作中也很麻烦,那 ...
- HTML标签分类总结
块级元素和行内元素块级元素address - 地址blockquote - 块引用center - 举中对齐块dir - 目录列表div - 常用块级容易,也是css layout的主要标签dl - ...
- Dart编程实例 - 第一个Dart程序
Dart编程实例 - 第一个Dart程序 main() { print("Hello World!"); } 本文转自:http://codingdict.com/article/ ...
- 【命令】GETBIT/SETBIT
我们在登陆某些博客网站或者视频网站的时候,网站往往会记录我们是否阅读了某篇文章,或者是观看了某个视频. 如果用传统的mysql数据库实现,如果用户数量多,文章和视频也多的情况下,那么则会给数据库带来很 ...
- PHP ftp_nb_fget() 函数
定义和用法 ftp_nb_fget() 函数从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中.(无阻塞) 该函数返回下列值之一: FTP_FAILED(发送/获取失败) FTP_FIN ...
- undefined reference to `mysql_init'解决办法
命令行后面加入 -l mysqlclient 例如: 对mysqlQuery.c编译,使用gcc mysqlQuery.c -o mysqlQuery -l mysqlclient,即可编译成功.
- Python 工匠
https://github.com/piglei/one-python-craftsman/blob/master/zh_CN/7-two-tips-on-loop-writing.md