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

dubbo直连案例(提供者+消费者,不推荐使用)

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

dubbo直连案例(提供者+消费者,不推荐使用)

dubbo直连案例
  • 1.dubbo是什么?
  • 2.dubbo框架结构图
  • 3.为什么说dubbo性能高
  • 4. dubbo支持的协议
  • 5. dubbo直连案例(没有注册中心)

1.dubbo是什么?

dubbo是由阿里基于java开发的一个rpc(远程调用过程)框架,它提供了三大核心功能:面向接口的远程方法调用,智能容错和负载均衡,服务自动注册与发现。

2.dubbo框架结构图


1.服务提供者(Provider)
暴漏服务的服务提供方,服务提供者在启动的时候,向注册中心注册自己提供的服务。
2.服务消费者(Consumer)
调用远程服务的消费方,服务消费者在启动的时候,向注册中心订阅自己所需的服务,服务消费者,从服务提供者地址列表中,基于软负载均衡算法,选一台服务提供者进行调用,如果调用失败,再选另一台调用。
3.注册中心(Registry)
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4.监控中心(Monitor)
用于监控提供者和消费者的数据,统计在内存中服务注册或者服务调用的次数和调用时间,定时一分钟,将这些统计到的数据发送到监控中心。

3.为什么说dubbo性能高

1.序列化
我们知道在java网络中,一个对象想要在网络中进行传输,必须要实现Serializable接口。序列化的方式有很多比如xml,json,二进制流等,二进制流效率是最高的,因为计算机底层各种操作实际上都是操作二进制的数据,dubbo就是采用二进制流的方式。

2.网络通信
我们知道Http需要分七步走(三次握手四次挥手),而dubbo采用socket通信机制,只需要知道对方的主机和端口号即可建立连接,一步到位,提升了通信效率,不用反复连接,直接传输数据

4. dubbo支持的协议

dubbo支持的协议有dubbo,hessian,rmi,http,webservice,thrift,redis等,但是官方推荐使用的是dubbo协议!

5. dubbo直连案例(没有注册中心)

一.提供者
1.pom.xml






  4.0.0
  war

  link-provider
  com.yl
  link-provider
  1.0-SNAPSHOT

  
    
    
      com.alibaba
      dubbo
      2.6.0
    
    
      org.springframework
      spring-context
      4.3.16.RELEASE
    
    
      org.springframework
      spring-webmvc
      4.3.16.RELEASE
    
  



2.测试接口以及实现类

package com.yl.service;

public interface HelloService {

    String hello();
}

package com.yl.service.impl;

import com.yl.service.HelloService;

public class HelloServiceImpl implements HelloService {
    @Override
    public String hello() {
        return "Hello Dubbo";
    }
}

3.提供者dubbo配置文件




    
    

    
    

    
    

    
    


4.web.xml




  
  
    contextConfigLocation
    classpath:dubbo-provider.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  



二.消费者
1.先install提供者到本地仓库
2.pom.xml






  4.0.0
  war

  link-consumer
  com.yl
  link-consumer
  1.0-SNAPSHOT
  
    
    
      com.alibaba
      dubbo
      2.6.0
    
    
      org.springframework
      spring-context
      4.3.16.RELEASE
    
    
      org.springframework
      spring-webmvc
      4.3.16.RELEASE
    
    
    
      com.yl
      link-provider
      1.0-SNAPSHOT
    
  



3.controller

package com.yl.controller;

import com.yl.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @Autowired
    private HelloService helloService;

    @GetMapping("/hello")
    public String hello(Model model) {
        String str = helloService.hello();
        //调用远程服务接口
        model.addAttribute("hello",str);
        return "hello";
    }
}

4.消费者dubbo的配置




    
    

    
    


5.springmvc的配置




    
    
    
    
    
    
        
        
    


6.web.xml




  
  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:dubbo-consumer.xml,classpath:springmvc.xml
    
    1
  
  
  dispatcherServlet
  /
  


7.jsp文件

<%--
  Created by IntelliJ IDEA.
  User: mirror
  Date: 2022/5/1
  Time: 22:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


${hello}

三.测试
1.配置两个tomcat服务器,启动提供着和消费者
2.访问消费者的hello接口

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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