栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Dubbo:版本号、监控中心

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dubbo:版本号、监控中心

一个接口可以有多个实现类,,在第一个版本的时候,接口的实现方式是这种方式,再换第二个版本的时候,在第一个基础之上做了优化,但是第一个版本服务也不能给人家去掉,因为还有很多老用户还是用的第一种方式,这样纪要保留第一个,有要开发第二个,通过版本号去完成

 

 

4.4 版本号

每个接口都应定义版本号,为后续不兼容升级提供可能。当一个接口有不同的实现,项目早 期使用的一个实现类, 之后创建接口的新的实现类。区分不同的接口实现使用 version。 特别是项目需要把早期接口的实现全部换位新的实现类,也需要使用 version.

可以用版本号从早期的接口实现过渡到新的接口实现,版本号不同的服务相互间不引用。 可以按照以下的步骤进行版本迁移:

     在低压力时间段,先升级一半提供者为新版本

     再将所有消费者升级为新版本

     然后将剩下的一半提供者升级为新版本

还使用006-zk-interface:

 User类:

package com.bjpowernode.dubbo.model;

import java.io.Serializable;

public class User implements Serializable {
    private Integer id;
    private String username;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

接口UserService:

package com.bjpowernode.dubbo.service;


import com.bjpowernode.dubbo.model.User;

public interface UserService {
    //根据用户标识获取用户信息
    User queryUserById(Integer id,String username);


}

创建服务提供者: 

一个接口的两个实现类 

userServiceImpl实现类:

package com.bjpowernode.dubbo.service.impl;

import com.bjpowernode.dubbo.model.User;
import com.bjpowernode.dubbo.service.UserService;

public class UserServiceImpl implements UserService {
    @Override
    public User queryUserById(Integer id, String username) {
        User user = new User();
        user.setId(id);
        user.setUsername(username+"--1");
        return user;
    }

}

UserServiceImpl2实现类:

package com.bjpowernode.dubbo.service.impl;


import com.bjpowernode.dubbo.model.User;
import com.bjpowernode.dubbo.service.UserService;

public class UserServiceImpl2 implements UserService {
    @Override
    public User queryUserById(Integer id, String username) {
        User user = new User();
        user.setId(id);
        user.setUsername(username+"---2");
        return user;
    }

}

dubbo核心配置文件:dubbo-userservice-multi-provider.xml




    
    

    
    
    

    
    

    


    
    
    
    

    
    
    

web.xml:





    
    
        contextConfigLocation
        classpath:dubbo-userservice-multi-provider.xml
    

    
    
        org.springframework.web.context.ContextLoaderListener
    

配置tomcat:

 

服务的消费者:

dubbo核心配置文件:dubbo-multi-consumer.xml 




    
    

    
    

    
    
    

spring配置文件:application.xml:




    
    

    
    

    
    
        
        
    

web.xml:



    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:application.xml,classpath:dubbo-multi-consumer.xml
        
    

    
        dispatcherServlet
        
        /
    

控制器UserController:

package com.bjpowernode.dubbo.web;


import com.bjpowernode.dubbo.model.User;
import com.bjpowernode.dubbo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @Autowired
    private UserService userService2;

    @RequestMapping(value = "/user")
    public String userDetil(Model model,Integer id, String username){
        //根据用户标识获取用户详情
        User user=userService.queryUserById(id,username);

        User user2 = userService2.queryUserById(id, username);

        model.addAttribute("user",user);
        model.addAttribute("user2",user2);

        return "userDetail";
    }
}

接收参数页面userDetail.jap:

<%--
  Created by IntelliJ IDEA.
  User: DELL
  Date: 2022/7/14
  Time: 13:29
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>


    Title
    


用户1
用户编号:${user.id}
用户姓名:${user.username}

用户2
用户编号:${user2.id}
用户姓名:${user2.username}



配置tomcat:

 

 

 

 

 

 

下载完之后:

在此目录留下输入cmd:输入命令

 

 

输入root 密码root进行登录:

 

可以看到上面项目的服务

提供者:

 

 

消费者:

 

 等等信息,可以进行监控

 

 

 

 

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016542.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号