Dubbo(十二)dubbo的服务版本配置以及本地存根使用介绍

一、接口服务多版本管理

在实际项目场景中在发布生产之前会存在一个过渡的灰度版本环境,dubbo也一样在接口服务升级时,可以实现两个版本的服务接口,指定不同的版本号。当少量的消费端调用引用高版本后使用无问题时,则可以将消费端调用全部切换到新版本的服务上。

1,服务提供方相同接口不同版本配置注解方式实现和使用xml方式实现

使用注解方式主要在服务提供者项目接口实现类注解@Service上添加 version 信息对类中所有方法进行版本设置。在xml中在其<dubbo:service >标签上进行配置版本信息。

xml配置方式

2,服务消费方使用配置版本信息进行路由不同接口

服务消费端可以在接口引用上进行配置版本信息。使用注解时在接口实现类中接口属性引用处@Reference注解上添加配置版本信息。在使用xml方式时,在<dubbo:reference > 标签上添加version信息。当消费端想随机的调用不同的接口时,可以配置version信息为version="*"。

xml方式配置

二、dubbo本地存根使用介绍

本地存根Stub为服务消费端中实现了远程依赖接口的并有一个有远程接口类构造参数的实现类(在提供端也可以实现,不过命名位置等都有要求,消费端较容易实现)。在消费端调用执行远程接口方法前回先执行本地存根类的对应方法。我们在该存根类中可以先进行参数校验等操作在执行真实的远程方法,在执行远程方法之后我们还可以对返回数据做逻辑处理。或者远程方法报错时我们可以通过try{}chache(){}返回一个一些模拟数据等自定义操作。存根的使用方式类似于一种远程接口方法的切面编程。

/user-guide/images/stub.jpg

实现步骤

1,添加本地存根类对象

package com.xiaohui.service.impl;

import com.xiaohui.domain.UserAddress;
import com.xiaohui.service.UserService;

import java.util.Arrays;
import java.util.List;

/**
 * 代理对象
 */
public class UserServiceStub implements UserService {

    private UserService userService;

    /**
     *
     * @param userService
     */
    public UserServiceStub(UserService userService) {
        this.userService = userService;
    }

    @Override
    public List<UserAddress> queryAllUserAddress(String userId) {
        try {
            System.out.println("========调用前执行,可检查参数等========");
            List<UserAddress> userAddresses = userService.queryAllUserAddress(userId);
            System.out.println("========调用后执行========");
            return userAddresses;
        } catch (Exception e) {
            e.printStackTrace();
            //可以模拟一些失败返回参数
            return Arrays.asList(new UserAddress(10001, "default address", "10001"));
        }
    }
}

2,使用注解或者xml方式在接口依赖处进行配置存根类

注解方式:在@Reference处进行配置

xml方式:

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件介绍:   dubboadmin的控制台插件最新版本,提供本地下载,可以可视化的监控dubbo服务注册和消费情况。  运行dubbo admin server  dubbo admin server是一个标准的spring boot项目, 可以在任何java IDE中运行它运行dubbo admin ui  dubbo admin ui由npm管理和构建,在开发环境中,可以单独运行: npm run dev为了方便开发,我们提供了这种前后端分离的部署模式,主要的好处是支持前端热部署,在这种模式下,前端会通过8080端口访问后端的restful api接口,获取数据, 这将导致跨域访问的问题。  Dubbo Admin后端配置  当前版本的的Dubbo Admin支持Dubbo2.7的新特性(元数据展示,应用级别的配置),同时也兼容Dubbo2.6的用法,两个版本配置不同,具体介绍如下:  application.properties配置  dubbo.config.center: 2.7的配置,推荐用法,填写配置中心的地址,并且在配置中心的相应目录下配置注册中心和元数据中心的地址,Dubbo Admin会根据相应的协议,初始化对应的客户端,实现对配置中心,元数据中心的访问    dubbo.registry.address: 2.6的配置,只配置注册中心的地址。采用此配置Dubbo Admin会把配置,元数据相关的内容也写入注册中心的不同目录下    两种配置,都可以兼容Dubbo2.6和2.7的版本,即使配置dubbo.config.center,对于2.6版本的客户端,也会收到对应版本的路由,动态配置规则,并且按照规则内容生效

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值