duubo入门

原创 2016年05月31日 17:00:51

什么是dubbo

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

其核心部分包含:

  • 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
  • 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
  • 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器


入门demo

服务端

public interface DubboTestAble {

    public Integer add(int num1,int num2);

}

public class DubboTest implements DubboTestAble {
    @Override
    public Integer add(int num1, int num2) {
        return num1 + num2 ;
    }
}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd
            http://code.alibabatech.com/schema/dubbo
           http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="hello-world-app"  />

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <!--<dubbo:registry address="multicast://224.5.6.7:1234" />-->

    <dubbo:registry address="zookeeper://192.168.1.162:2181" />

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />

    <bean id="dubbo1" class="cn.zw.dubbo.DubboTest"/>
    <dubbo:service interface="cn.zw.dubbo.provider.DubboTestAble" ref="dubbo1"/>

</beans>

提示:在启动之前需要首先配置zookeeper

消费者

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://code.alibabatech.com/schema/dubbo        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="consumer-of-helloworld-app"  />

    <!-- 使用multicast广播注册中心暴露发现服务地址 -->
    <!--<dubbo:registry address="multicast://224.5.6.7:1234" />-->

    <dubbo:registry address="zookeeper://192.168.1.162:2181" />

    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="demoService" interface="cn.zw.dubbo.provider.DubboTestAble" />

</beans>

java 代码

public class DubboClient {

    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("consumer.xml");
        context.start();
        DubboTestAble demoService = (DubboTestAble)context.getBean("demoService"); // 获取远程服务代理
        for(int i = 0 ; i < 10 ; i++){
            long  start = System.currentTimeMillis();
            int result = demoService.add(1,1); // 执行远程方法
            System.out.println("  server return : " +  result  +" ; times: " +  (System.currentTimeMillis() - start)); // 显示调用结果

        }
    }
}
console:

  server return : 2 ; times: 240
  server return : 2 ; times: 3
  server return : 2 ; times: 3
  server return : 2 ; times: 2
  server return : 2 ; times: 2
  server return : 2 ; times: 2
  server return : 2 ; times: 3
  server return : 2 ; times: 2
  server return : 2 ; times: 3
  server return : 2 ; times: 3


监控页面(dubbo-admin)

yyyy


至此结束








常见HTTP响应状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 1xx:指示信息--表示请求已接收,继续处理 2xx:成功--表示请求已被成功接收、理解、接受 3xx:重定向--信息不完整需...
  • GarfieldEr007
  • GarfieldEr007
  • 2017年09月14日 19:04
  • 321

Dubbo入门---搭建一个最简单的Demo框架

Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 ...
  • noaman_wgs
  • noaman_wgs
  • 2017年04月17日 19:10
  • 106529

dubbo的底层原理

一、Duboo基本概念解释 Dubbo是一种分布式服务框架。 Webservice也是一种服务框架,但是webservice并不是分布式的服务框架,他需要结合F5实现负载均衡。因此,dubbo除了可...
  • qq_33101675
  • qq_33101675
  • 2017年12月03日 14:01
  • 3837

RPC入门总结(九)Dubbo框架实现细节

转载: 转载: 转载: 转载: 转载: 转载: 转载: 一、Dubbo的注册中心 服务注册中心是Dubbo中的重要组成部分,服务的提供者将服务发布到注册中心,服务的使用着到注册中引用服务。D...
  • KingCat666
  • KingCat666
  • 2017年11月27日 23:15
  • 709

dubbo使用

dubbo使用
  • duxiaomeng1986_2008
  • duxiaomeng1986_2008
  • 2015年12月03日 20:03
  • 1291

dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3.2整合(一)Dubbo的使用

Dubbo简介DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问...
  • u010046908
  • u010046908
  • 2016年12月25日 11:00
  • 4605

duubo入门

什么是dubbo Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封...
  • a1211529911
  • a1211529911
  • 2016年05月31日 17:00
  • 1471

Dubbo分布式服务框架入门(附工程)

本文介绍了dubbo的一些概念,并对zookeeper、dubbo-admin、提供者、消费者的搭建进行了详细的讲解,且附有工程源码...
  • u013142781
  • u013142781
  • 2015年12月23日 15:49
  • 27252

分布式架构学习之:018--Dubbo集群

dubbo服务集群常用配置  服务提供者  Xml代码   dubbo:application name="pay-service-trade" />          ...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2017年05月12日 16:02
  • 258

搭建maven项目,并实现Dubbo分布式服务管理

Dubbo(开源分布式服务框架) Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 zooke...
  • viktoria
  • viktoria
  • 2018年01月08日 15:42
  • 57
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:duubo入门
举报原因:
原因补充:

(最多只允许输入30个字)