栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

分布式RPC框架Apache Dubbo

分布式RPC框架Apache Dubbo

分布式RPC框架Apache Dubbo

文章目录
  • 分布式RPC框架Apache Dubbo
  • 1.Dubbo是什么?
  • 2.Dubbo架构
  • 3.服务注册中心Zookeeper
  • 4.Dubbo快速入门
    • **服务提供方开发**
  • 总结


1.Dubbo是什么?

Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架,可以和Spring框架无缝集成。

什么是RPC?

RPC全称为remote procedure call,即远程过程调用。比如两台服务器A和B,A服务器上部署一个应用,B服务器上部署一个应用,A服务器上的应用想调用B服务器上的应用提供的方法,由于两个应用不在一个内存空间,不能直接调用,所以需要通过网络来表达调用的语义和传达调用的数据。

需要注意的是RPC并不是一个具体的技术,而是指整个网络远程调用过程。

RPC是一个泛化的概念,严格来说一切远程过程调用手段都属于RPC范畴。各种开发语言都有自己的RPC框架。Java中的RPC框架比较多,广泛使用的有RMI、Hessian、Dubbo等。

Dubbo官网地址:http://dubbo.apache.org

Dubbo提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

2.Dubbo架构

Dubbo架构图(Dubbo官方提供)如下:

节点角色说明:
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

3.服务注册中心Zookeeper

通过前面的Dubbo架构图可以看到,Registry(服务注册中心)在其中起着至关重要的作用。Dubbo官方推荐使用Zookeeper作为服务注册中心。

Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 。

4.Dubbo快速入门 服务提供方开发

开发步骤:

(1)创建maven工程(打包方式为war)dubbodemo_provider,在pom.xml文件中导入如下坐标

```java

  UTF-8
  1.8
  1.8
  5.0.5.RELEASE


  
    org.springframework
    spring-context
    ${spring.version}
  
  
    org.springframework
    spring-beans
    ${spring.version}
  
  
    org.springframework
    spring-webmvc
    ${spring.version}
  
  
    org.springframework
    spring-jdbc
    ${spring.version}
  
  
    org.springframework
    spring-aspects
    ${spring.version}
  
  
    org.springframework
    spring-jms
    ${spring.version}
  
  
    org.springframework
    spring-context-support
    ${spring.version}
  
  
  
    com.alibaba
    dubbo
    2.6.0
  
  
    org.apache.zookeeper
    zookeeper
    3.4.7
  
  
    com.github.sgroschupf
    zkclient
    0.1
  
  
    javassist
    javassist
    3.12.1.GA
  
  
    com.alibaba
    fastjson
    1.2.47
  


  
    
      org.apache.maven.plugins
      maven-compiler-plugin
      2.3.2
      
        1.8
        1.8
      
    
    
      org.apache.tomcat.maven
      tomcat7-maven-plugin
      
        
        8081
        
        /
      
    
  

(2)配置web.xml文件



  Archetype Created Web Application
  
    contextConfigLocation
    classpath:applicationContext*.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  

(3)创建服务接口

package com.itheima.service;
public interface HelloService {
    public String sayHello(String name);
}

(4)创建服务实现类

package com.itheima.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.itheima.service.HelloService;

@Service
public class HelloServiceImpl implements HelloService {
    public String sayHello(String name) {
        return "hello " + name;
    }
}

注意:服务实现类上使用的Service注解是Dubbo提供的,用于对外发布服务

(5)在src/main/resources下创建applicationContext-service.xml



	
	
	
	
	
	
	
	

(6)启动服务

tomcat7:run

总结

本文对 Dubbo的理解来自多方,感谢知识提供者。

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

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

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