`
kavy
  • 浏览: 888013 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Dubbo简介

 
阅读更多

[1]Dubbo是[2]阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输

Logo

  Logo

出和输入功能,可以和 [3]Spring框架无缝集成。

主要核心部件

  Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.  RPC: 一个远程过程调用的抽象,支持负载均衡容灾集群功能  Registry: 服务目录框架用于服务的注册和服务事件发布和订阅

编辑本段工作原理

  
原理图

  原理图

Provider  暴露服务方称之为“服务提供者”。  Consumer  调用远程服务方称之为“服务消费者”。  Registry  服务注册与发现的中心目录服务称之为“服务注册中心”。  Monitor  统计服务的调用次调和调用时间的日志服务称之为“服务监控中心”。  (1) 连通性:  注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小  监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示  服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销  服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销  注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外  注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者  注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表  注册中心和监控中心都是可选的,服务消费者可以直连服务提供者  (2) 健状性:  监控中心宕掉不影响使用,只是丢失部分采样数据  数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务  注册中心对等集群,任意一台宕掉后,将自动切换到另一台  注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯  服务提供者无状态,任意一台宕掉后,不影响使用  服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复  (3) 伸缩性:  注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心  服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者

编辑本段例子

服务端

  定义一个Service Interface:(HelloService.java  
package com.alibaba.hello.api; 
public interface HelloService 

String sayHello(String name); 
}
接口的实现类:(HelloServiceImpl.java  
package com.alibaba.hello.impl; 
import com.alibaba.hello.api.HelloService; 
public class HelloServiceImpl implements HelloService 

public String sayHello(String name) 

return "Hello " + name; 

}
Spring配置:(provider.xml  

<?xml version="1.0" encoding="UTF-8"?> 
<beans ......> 
<!-- Application name --> 
<dubbo:application name="hello-world-app" /> 
<!-- registry address, used for service to register itself --> 
<dubbo:registry address="multicast://224.5.6.7:1234" /> 
<!-- expose this service through dubbo protocol, through port 2 0 8 8 0 --> 
<dubbo:protocol name="dubbo" port="2 0 8 8 0" /> 
<!-- which service interface do we expose? --> 
<dubbo:service interface="com.alibaba.hello.api.HelloService" ref="helloService" /> 
<!-- designate implementation --> 
<bean id="helloService" class="com.alibaba.hello.impl.HelloServiceImpl" /> 
</beans>
测试代码:(Provider.java  
import org.springframework.context.support.ClassPathXmlApplicationContext; 
public class Provider { 
public static void main(String[] args) { 
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"}); //启动成功,监听端口为2 0 8 8 0 
System.in.read(); // 按任意键退出 

}

客户端

  Spring配置文件:(consumer.xml)  

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns=......> 
<!-- consumer application name --> 
<dubbo:application name="consumer-of-helloworld-app" /> 
<!-- registry address, used for consumer to discover services --> 
<dubbo:registry address="multicast://224.5.6.7:1234" /> 
<!-- which service to consume? --> 
<dubbo:reference id="helloService" interface="com.alibaba.hello.api.HelloService" /> 
</beans>
客户端测试代码:(Consumer.java  

import org.springframework.context.support.ClassPathXmlApplicationContext; 
import com.alibaba.hello.api.HelloService; 
public class Consumer { 
public static void main(String[] args) { 
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"consumer.xml"}); 
HelloService helloService = (HelloService)context.getBean("helloService"); // get service invocation proxy 
String hello = helloService.sayHello("world"); // do invoke! 
System.out.println( hello ); // cool, how are you~ 

}

分享到:
评论

相关推荐

    Apache Dubbo:ApacheDubbo简介与快速入门

    ### Apache Dubbo:Apache Dubbo简介与快速入门 #### 一、Apache Dubbo 简介 ##### 1.1 Dubbo 是什么? Dubbo 是一个高性能、轻量级的开源微服务框架,由阿里巴巴开发并维护。它主要用于构建分布式系统,通过提供...

    Dubbo简介.docx

    **Dubbo 简介** Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,由阿里巴巴开发并维护。它旨在提供一个高效、透明的远程服务调用解决方案,使得开发者可以像调用本地方法一样调用远程服务。Dubbo 的核心特性包括...

    dubbo——dubbo简介1

    Dubbo是一款由阿里巴巴开源的高性能Java RPC框架,它在分布式系统中扮演着服务提供者和服务消费者之间的桥梁角色,使得远程调用如同本地方法调用一般简单。以下将详细阐述Dubbo的主要特性: 1. **面向接口代理的高...

    dubbo简介、框架原理.docx

    Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,它是阿里巴巴集团贡献给 Apache 基金会的项目。Dubbo 的设计目标是提供面向服务的、高性能、稳定的分布式服务解决方案,以应对互联网行业中大规模应用面临的复杂性...

    阿里巴巴dubbo简介

    阿里巴巴的dubbo和淘宝的hsf,到底哪个更好用呢,看了你就知道了

    dubbo的简单小demo

    【Dubbo简介】 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心功能:服务注册与发现、远程调用、负载均衡。由阿里巴巴开源并在2011年成为Apache顶级项目,广泛应用于分布式系统开发。Dubbo的设计...

    Dubbo高级视频教程

    - **Dubbo简介**:Dubbo是一款高性能、轻量级的开源Java RPC框架,旨在为服务治理提供简单、全面的解决方案。 - **分布式系统概念**:分布式系统是由多台计算机组成的系统,这些计算机通过网络进行通信并协同完成...

    dubbo-dubbo-2.7.8.zip

    一、Dubbo简介 Dubbo由阿里巴巴开源,旨在解决大型分布式系统中服务治理的问题。它提供服务注册、服务发现、负载均衡、调用链跟踪、熔断和降级等核心功能,帮助开发者构建高可用、高性能的服务架构。 二、核心特性...

    dubbo 2.0官方文档pdf版本

    一、Dubbo简介 Dubbo是一个基于Java的RPC(Remote Procedure Call)框架,它设计的目标是透明化服务调用,使得服务消费者和提供者可以在无感知的情况下进行通信。Dubbo的核心组件包括服务接口、服务提供者、服务消费...

    dubbo 对外提供和使用接口方法

    #### 一、Dubbo简介 Dubbo是一个高性能、轻量级的开源服务框架,旨在提供高性能和透明化的RPC远程服务调用方案,是微服务架构的重要组成部分之一。它提供了面向接口代理的高性能RPC远程调用、智能容错和恢复、以及...

    dubbo最新全面深度解读 dubbo介绍.pdf

    在dubbo简介中,了解到它是一个分布式服务框架,其核心目标是提供高性能的RPC远程服务调用方案。这使得在分布式环境中,服务的调用可以如同本地调用一样透明化,无需关心底层网络通信的细节。dubbo还致力于成为SOA...

    dubbo的初级到高级,分布式系统架构视频

    #### 一、Dubbo简介与基本概念 - **Dubbo**是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:**面向接口的远程方法调用**、智能容错和负载均衡以及服务自动注册与发现。 - **RPC(Remote Procedure ...

    dubbo博客资源文件

    1. **Dubbo简介**:Dubbo是一个基于Java的RPC(远程过程调用)框架,它提供了服务注册与发现、动态配置、负载均衡、监控等功能。Dubbo的核心设计理念是让服务提供者和消费者解耦,使得服务可以独立开发、部署和扩展...

    dubbo精品课程-基础篇

    1. **Dubbo简介**:首先会介绍Dubbo的基本概念,包括它的诞生背景、设计理念以及在分布式系统中的角色。理解这些基础信息对于后续深入学习至关重要。 2. **安装与配置**:课程会详细讲解如何在开发环境中搭建Dubbo...

    dubbo最新全面深度解读

    1. **Dubbo简介** Dubbo是基于Java的RPC框架,旨在提高服务的透明性和可扩展性。它提供了一种服务化的解决方案,使开发者可以像调用本地方法一样调用远程服务,降低了分布式系统的复杂性。 2. **框架结构** Dubbo...

    dubbo本地测试服务

    一、Dubbo简介 Dubbo由阿里巴巴开源,其核心功能包括服务注册与发现、远程调用、负载均衡、容错处理等。它支持多种协议,如RPC、HTTP等,适用于微服务架构中的服务治理。 二、本地测试服务的重要性 本地测试服务...

    dubbo-用户指南

    一、Dubbo简介 Dubbo是一个基于Java的RPC(远程过程调用)框架,它使得服务提供者可以在一个独立的应用中发布服务,而服务消费者可以在自己的应用中调用这些服务,就像调用本地方法一样。Dubbo的核心特性包括服务...

    dubbo 教程 权威指南

    1. **Dubbo简介** Dubbo的核心功能包括服务注册与发现、远程调用、负载均衡、容错机制和集群管理。它提供了一种简单易用的API,使得开发人员能够轻松地实现服务间的通信。 2. **服务注册与发现** Dubbo通过...

    dubbo介绍和使用

    #### 一、Dubbo简介 Dubbo 是一款高性能、轻量级的开源服务框架,旨在为开发者提供一个全面的服务治理解决方案。它支持多种服务注册与发现机制,并且提供了丰富的服务治理功能,包括但不限于负载均衡、容错策略以及...

    Dubbo课程资源09240924

    1. **Dubbo简介** Dubbo是一个基于Java的RPC(远程过程调用)框架,它强调服务的注册与发现,使得微服务架构中的服务间通信变得简单。Dubbo提供了包括服务提供方、服务消费方、注册中心、监控中心等在内的关键组件...

Global site tag (gtag.js) - Google Analytics