`
kavy
  • 浏览: 873149 次
  • 性别: 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~ 

}

分享到:
评论

相关推荐

    dubbo——dubbo简介1

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

    Dubbo简介.docx

    dubbo : 单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调用, 以及消费者远大于提供者。传输协议 TCP,异步, Hessian 序列化; . rmi : 采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要实现 ...

    阿里巴巴dubbo简介

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

    dubbo的简单小demo

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

    dubbo简介、框架原理.docx

    单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的...

    dubbo 2.0官方文档pdf版本

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

    dubbo博客资源文件

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

    dubbo精品课程-基础篇

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

    dubbo最新全面深度解读

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

    dubbo-dubbo-2.7.8.zip

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

    dubbo-用户指南

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

    dubbo 教程 权威指南

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

    dubbo本地测试服务

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

    Dubbo课程资源09240924

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

    dubbo消费者的web应用实例

    一、Dubbo简介 Dubbo是一个高性能、轻量级的服务框架,它提供了服务注册、服务发现、负载均衡、容错处理等功能。它基于RPC(Remote Procedure Call)协议,使得服务提供者和消费者之间可以透明地进行通信。Dubbo的...

    Dubbo_Demo_HelloWorld

    1. **Dubbo简介** Dubbo是阿里巴巴开源的一款高性能、轻量级的Java RPC框架,它提供了服务注册、服务发现、负载均衡、流量控制等核心功能,广泛应用于微服务架构中。Dubbo的目标是让分布式服务开发变得简单、透明,...

    dubbo教程pdf

    1. **Dubbo简介**:了解Dubbo的基本概念,包括其设计理念、核心特性以及在分布式系统中的作用。 2. **安装与配置**:如何在项目中引入Dubbo,配置服务提供者和服务消费者,以及相关的环境搭建步骤。 3. **服务接口与...

    dubbo-用户指南.pdf

    1. **Dubbo简介**:Dubbo是一个基于Java的RPC(远程过程调用)框架,它通过提供服务发现、调用、负载均衡、容错和性能统计等功能,简化了分布式系统的设计与开发。Dubbo的核心理念是“面向接口的编程”,使得服务...

    dubbo实例+培训

    1. Dubbo简介:介绍Dubbo的起源、特点、架构以及适用场景。 2. 快速入门:讲解如何搭建一个简单的Dubbo项目,包括服务提供者和服务消费者的创建。 3. 配置详解:深入解析Dubbo的各种配置项,如服务接口、服务实现、...

    dubbo实例—自测好用

    1. **Dubbo简介** Dubbo的核心功能包括服务注册与发现、远程调用、负载均衡、容错与隔离等。它通过提供API让开发者可以方便地暴露和引用服务,实现了服务的解耦和模块化。Dubbo不仅适用于微服务架构,也对传统的SOA...

Global site tag (gtag.js) - Google Analytics