Dubbo 服务治理-mock实例

时间:2022-09-02 14:19:54

转:

Dubbo 服务治理-mock实例

2017.02.28 10:56* 字数 514 阅读 2552评论 10喜欢 2

Dubbo的mock自己折腾的实例,配置信息有点简陋,有点粗鄙,如果是处女座的程序员,就建议看看就行哈。

其实Dubbo的mock的实例原理简单而言就是调用真实的接口实现类不通,就会调用你的mock类(mock类和真实实现类都Implements 同一个接口,自己mock的名字要是:接口类名+mock)。

我这个人直接来例子,不太喜欢讲太多文绉绉的字。处女座的程序员就是这样的哈,比较直接。

接口定义和mock定义(可单独在一个maven module)

接口类:

package cn.nest.facde;

public interface HelloService {

String sayHello(String content);

}
mock类(mock类和接口类要在同一个项目中,其他项目方便maven依赖):
package cn.nest.facde;

@SuppressWarnings("unused")

public class HelloServiceMock implements HelloService {

    public HelloServiceMock() {
} @Override public String sayHello(String content) { System.out.println("dubbo mock sample...."); return "say hello fail"; } }
 
接口实现类:
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String s) {
System.out.println("dubbo customer param value: " + s);// mock verify try { Thread.sleep(10 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } boolean isCustomer = RpcContext.getContext().isProviderSide();
System.out.println("provider iscustomer :" + isCustomer);return "say hello :" + s; }
}

Dubbo的服务端

Spring 配置文件内容:

Dubbo 服务治理-mock实例
spring xml 配置 截图,不能粘贴代码了

接口实现类:

public class HelloServiceImpl implements HelloService {

Dubbo消费端

消费端的配置:

spring 的配置最核心的配置:

<dubbo.reference id="helloService" interface="cn.nest.facde.HelloService" mock="true" timeout="1000" check="false">

消费端代码:

package cn.nest;

import cn.nest.facde.HelloService;

import cn.nest.facde.HelloSomeOneService;

import com.alibaba.dubbo.rpc.RpcContext;

import org.springframework.boot.CommandLineRunner;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

@SpringBootApplication

public class DubboConsumerApplication implements CommandLineRunner {

    ApplicationContext factory = new ClassPathXmlApplicationContext("classpath:spring-dubbo-consumer.xml");

    public static void main(String[] args) {

        new SpringApplicationBuilder().sources(DubboConsumerApplication.class).web(false).run(args);

        while (true) {

            try {

                System.in.read();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

    }

    public void run(String... strings) throws Exception {

        HelloService iHelloService = (HelloService) factory.getBean("helloService");

        System.out.println(iHelloService.sayHello("botter"));

    }

}

==============

相关其他知识:

在开发自测,联调过程中,经常碰到一些下游服务调用不通的场景,这个时候我们如何不依赖于下游系统,就业务系统独立完成自测?
dubbo自身是支持mock服务的,在reference标签里,有一个参数mock,该参数有四个值,false,default,true,或者Mock类的类名。分别代表如下含义:

  • false,不调用mock服务。
  • true,当服务调用失败时,使用mock服务。
  • default,当服务调用失败时,使用mock服务。
  • force,强制使用Mock服务(不管服务能否调用成功)。(使用xml配置不生效,使用ReferenceConfigAPI可以生效)

使用方法:

  • 将mock参数启用,在<dubbo:reference>中添加参数项mock=true。

作者:一滴水的坚持
链接:https://www.jianshu.com/p/ce8de35986cf
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Dubbo 服务治理-mock实例的更多相关文章

  1. dubbo服务治理框架

    Dubbo的概述 1.1. Dubbo的背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. ...

  2. dubbo服务治理中间件&comma;zookeeper注册中心

    对传统项目架构进行拆分: 集群概念: 面向服务分布式架构: 服务层提供被注册的对象需要实现序列化接口Serializable: 配置表现层和服务层: 依赖包: 服务层: <!-- 定义dubbo ...

  3. dubbo服务治理中间件&comma;zookeeper注册中心 安装配置

    对传统项目架构进行拆分: 集群概念: 面向服务分布式架构: 服务层提供被注册的对象需要实现序列化接口Serializable: 配置表现层和服务层: 依赖包: 服务层: <!-- 定义dubbo ...

  4. dubbo服务治理框架设计

    dubbo.JSF作为使用最广泛的服务端框治理架,其设计和实现思想值得进行学习研究. 整个服务管理框架核心的原理基于反射以及socket调用实现,服务管理框架包含服务的注册管理 服务的索引管理以及服务 ...

  5. Dubbo框架中的应用(两)--服务治理

    Dubbo服务治理了看法 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlzaGVoZQ==/font/5a6L5L2T/fontsize/400/fi ...

  6. Dubbo框架应用之(二)--服务治理

    Dubbo服务治理全貌图 当我们现有ITOO平台系统的业务随着用户的逐渐增大,设计的业务越来越广,系统会异常的复杂,在大规模服务之前,我们可以采用的是RMI或Hessian等工具,暴露和引用远程服务, ...

  7. 微服务浅谈&amp&semi;服务治理的演变过程

    这两天对互联网的架构演变进行了简单了解,并对微服务的出现很感兴趣,所以对相关知识进行了简单的整理与总结. 本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后介绍了微服务及最新的服务网格(Se ...

  8. 5&period;如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?

    作者:中华石杉 面试题 如何基于 dubbo 进行服务治理.服务降级.失败重试以及超时重试? 面试官心理分析 服务治理,这个问题如果问你,其实就是看看你有没有服务治理的思想,因为这个是做过复杂微服务的 ...

  9. 面试系列26 如何基于dubbo进行服务治理、服务降级、失败重试以及超时重试

    (1)服务治理 1)调用链路自动生成 一个大型的分布式系统,或者说是用现在流行的微服务架构来说吧,分布式系统由大量的服务组成.那么这些服务之间互相是如何调用的?调用链路是啥?说实话,几乎到后面没人搞的 ...

随机推荐

  1. PHP面向对象 三大特性

    1.封装 目的:就是为了让类更加安全 做法: 1 要将成员做成私有的 2 在类里面做方法来间接访问成员变量 3 在方法里面加控制 简单的: 第一个魔术方法:给变量赋值的        __set fu ...

  2. HDU Machine scheduling

    Machine scheduling Time Limit : 5000/2000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) ...

  3. DOM系列---DOM操作表格

    DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本篇章主要了解一下DOM操作表格. 一.操作表格 <table>标签是H ...

  4. JAVA7遍历文件夹

    在JAVA7中提供了新的遍历文件的方法,比原有File类的递归遍历效率要好大约30%左右. 测试结果: 测试用的File类的递归,是经过对比测试几种方法,找出相对效率较好的来和JAVA7进行测试. 1 ...

  5. &lbrack;Angular2 Router&rsqb; Understand the Angular 2 Base href Requirement

    The <base href=”/”/> you define will determine how all other assets you plan on loading treat ...

  6. 剑指offer-面试题18&period;树的子结构

    题目:输入两棵二叉树A和B,判断B是不是A的子结构. 二叉树节点定义如下: struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; ...

  7. android开发获取网络状态,wifi&comma;wap&comma;2g&comma;3g&period;工具类&lpar;一&rpar;

    android开发获取网络状态整理: package com.gzcivil.utils; import android.content.Context; import android.net.Con ...

  8. python&lowbar;爬百度百科词条

    如何爬取? 明确目标:爬取百度百科,定初始百度词条:python,初始URL:http://baike.baidu.com/item/Python,爬取数据量为1000条,值爬取简介,标题,和简介中u ...

  9. 匿名内部类使用外面的类为什么要用final型

    从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的 为 ...

  10. Gradle 1&period;12用户指南翻译——第三十一章&period; FindBugs 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...