Dubbo 服务治理-mock实例

作者: 老生住长亭 | 来源:发表于2017-02-28 10:56 被阅读615次

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";

}

}

Dubbo的服务端

Spring 配置文件内容:

spring xml 配置 截图,不能粘贴代码了

接口实现类:

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.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实例

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

  • Dubbo配置参数详解-mock

    Dubbo配置参数详解-mock Dubbo是一个由阿里开源的服务治理框架,笔者的公司重度使用Dubbo。Dubb...

  • Dubbo 服务治理

    Dubbo 服务治理 前言 大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 服务治理。在前一个章节...

  • dubbo常见的一些面试题

    什么是Dubbo? Duubbo是一个RPC远程调用框架, 分布式服务治理框架 什么是Dubbo服务治理? 服务与...

  • Dubbo优雅服务降级之Stub和回声服务

    上篇Dubbo优雅服务降级之mock描述了关于mock的细节。此篇就详述一下关于Stub的实现。 在dubbo的官...

  • Dubbo优雅服务降级之mock

    [Dubbo优雅服务降级之Stub][Dubbo_Stub] dubbo作为国内互联网最常用的Java开源服务治理...

  • Dubbo及XML式开发

    Dubbo 是一个分布式服务治理框架,提供高性能的RPC远程服务调用及服务治理。 Dubbo是阿里巴巴开源的产品...

  • Dubbo服务治理

    dubbo源于电商系统,是由传统应用一步步演变而来,下面我们先了解下演变过程 系统演变过程 单一应用当网站流量很小...

  • Dubbo服务治理

    准确来说这里所说的集群主要是指Dubbo对于集群内容的支持,主要涉及:集群容错,负载均衡,路由逻辑三块。下面对于这...

  • Dubbo简介

    Dubbo是阿里巴巴开源的服务治理框架

网友评论

  • 4848ad9440b8:楼主,服务停掉,客户端能够走到mock中吗?mock需要服务端配置吗
    老生住长亭:@QQ好的 这个是服务端出现异常,会走mock,不能停掉服务
    4848ad9440b8:@老生住长亭 你的服务端是几个节点
    4848ad9440b8:我停掉服务端,然后客户端调用出现com.alibaba.dubbo.rpc.RpcException: Forbid consumer

本文标题:Dubbo 服务治理-mock实例

本文链接:https://www.haomeiwen.com/subject/kvcxgttx.html