dubbo服务接口如何mock_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 配置文件内容:

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

接口实现类:

public class HelloServiceImpl implements HelloService {

Dubbo消费端

消费端的配置:

spring 的配置最核心的配置:

消费端代码:

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参数启用,在中添加参数项mock=true。

作者:一滴水的坚持

链接:https://www.jianshu.com/p/ce8de35986cf

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

dubbo服务治理框架

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

dubbo服务治理中间件,zookeeper注册中心

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值