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

dubbo 教程

 
阅读更多

1.添加依赖jar

<dependency> 
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.8.4</version>
</dependency>

2.使用xml进行dubbo provider

<?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="account-interface2.0"/>-->
<dubbo:provider timeout="${dubbo.provider.timeout}" token="${dubbo.provider.token}" />
   <dubbo:registry protocol="${dubbo.registry.protocol}"
address="${dubbo.registry.address}" username="${dubbo.admin.username}" password="${dubbo.admin.password}"
group="${dubbo.registry.group}"  timeout="${dubbo.registry.timeout}"/>
    <dubbo:protocol name="${dubbo.protocol.name}"  port="${dubbo.protocol.port}" charset="${dubbo.protocol.charset}"
threadpool="${dubbo.protocol.threadpool}" threads="${dubbo.protocol.threads}" payload="${dubbo.protocol.payload}" />
<dubbo:service interface="com.customer.account.service.DepositService" ref="depositServiceImpl" />
</beans>
 

 3.配置consumer.xml

<?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-account-interface"/>
	<dubbo:consumer timeout="${dubbo.consumer.timeout}" check="${dubbo.consumer.check}" />
    <dubbo:registry protocol="${dubbo.registry.protocol}" address="${dubbo.registry.address}"  group="${dubbo.registry.group}"  timeout="${dubbo.registry.timeout}"/>

    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <!-- 经销商银行账户信息,包括代扣账户 -->
    <!--<dubbo:reference id="dealerBankAccountService" interface="com.shenma.channel.service.module.DealerBankAccountService" timeout="60000"/>-->
    <!-- 经销商法人 -->
    <!--<dubbo:reference id="dealerLegalPersonService" interface="com.shenma.channel.service.module.DealerLegalPersonService" timeout="60000"/>-->
    <!--<dubbo:reference id="dealerService" interface="com.shenma.channel.service.module.DealerService" timeout="60000"/>-->
    <!--<dubbo:reference id="dealerExtendService" interface="com.shenma.channel.service.module.DealerExtendService" timeout="60000"/>-->

    <dubbo:reference id="smartDataSyncService" interface="com.smjr.scf.api.SmartDataSyncService" timeout="60000" version="1.0.0"/>
    <dubbo:reference id="iDlegalPersonRpcService" interface="com.shenma.chnl.basic.rpc.dealer.IDlegalPersonRpcService" timeout="60000"/>
    <dubbo:reference id="iDealerRpcService" interface="com.shenma.chnl.basic.rpc.dealer.IDealerRpcService" timeout="60000"/>
    <dubbo:reference id="iDealerBankAccountRpcService" interface="com.shenma.chnl.basic.rpc.dealer.IDealerBankAccountRpcService" timeout="60000"/>
    <dubbo:reference id="iBankRpcService" interface="com.shenma.chnl.basic.rpc.basic.IBankRpcService" timeout="60000"/>
    <dubbo:reference id="iBranchRpcService" interface="com.shenma.chnl.basic.rpc.basic.IBranchRpcService" timeout="60000"/>
    <dubbo:reference id="iStoreRpcService" interface="com.shenma.chnl.basic.rpc.dealer.IStoreRpcService" timeout="60000"/>
</beans>

 4.配置属性

dubbo.registry.address=172.16.10.86:2181
dubbo.registry.protocol=zookeeper
dubbo.registry.check=false
dubbo.registry.subscribe=false
dubbo.registry.timeout=10000
dubbo.registry.group=dubbo
dubbo.consumer.timeout=60000
dubbo.consumer.check=false

#provider
dubbo.application.owner=account
dubbo.application.logger=slf4j

dubbo.monitor.protocol=registry
dubbo.protocol.name=dubbo
dubbo.protocol.port=28108
dubbo.protocol.threadpool=fixed
dubbo.protocol.payload=104857600

dubbo.provider.timeout=60000
dubbo.provider.check=false
dubbo.provider.token=true
dubbo.protocol.threads=500
dubbo.protocol.charset=UTF-8
dubbo.service.loadbalance=roundrobin
dubbo.admin.username=
dubbo.admin.password=

5. protocol dubbo常用有如下协议

   (1)dubbo协议 采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
   (2)RMI采用JDK标准的java.rmi.*实现,采用阻塞式短连接和JDK标准序列化方式。
   (3)Hessian协议用于集成Hessian的服务,Hessian底层采用Http通讯,采用Servlet暴露服务,Dubbo缺省内嵌Jetty作为服务器实现。
6.dubbo provider 负责均衡策略。
  (1).roundrobin 轮询,按公约后的权重设置轮循比率,存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。

  (2 ) .leastActive 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。

   ( 3 ) .consistentHash 一致性Hash,相同参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
7. dubbo consumer 关键配置

  (1). timeout consumer 超时时间

   (2). retries 当consumer超时时 重试次数

8.注意事项
  (1).注册中心要配置缓存文件位置,即file项要指定

  (2).dubbo consumer的retries次数建议设置为0,如果consumer系统已经做了幂等配置,也可以自行安排。

  (3).如果遇到no provider的错误,可以去dubbo admin上查找dubbo服务是否存在

 

分享到:
评论

相关推荐

    dubbo教程代码案例

    《Dubbo教程代码案例详解》 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,已经成为分布式系统开发中的重要工具。本教程将以"Dubbo教程代码demo"为线索,深入剖析Dubbo的核心概念、关键配置以及...

    dubbo 教程 权威指南

    《Dubbo 教程 权威指南》是一个全面且深入的资源,旨在帮助开发者和IT专业人士理解并有效地使用Apache Dubbo这一高性能、轻量级的服务治理框架。Dubbo是阿里巴巴开源的一款分布式服务框架,它专注于服务调用、监控和...

    dubbo教程demo代码

    Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样...

    dubbo教程视频源码

    根据提供的链接,我们可以推测这是一份包含了 Dubbo 教程视频、文档和源码的学习资料。这类资源对于初学者来说是非常宝贵的,因为它不仅覆盖了 Dubbo 的基础知识,还深入讲解了高级特性和系统架构等内容,并且通过...

    2018尚硅谷最新dubbo教程

    本套视频从分布式系统的基本概念出发,由浅入深,讲解了RPC原理,Dubbo基本使用,Dubbo高可用场景以及Dubbo原理,涉及了分布式系统中服务注册、服务发现、负载均衡、灰度发布、集群容错、服务降级等核心概念的讲解及...

    百知教育dubbo教程

    根据提供的文件信息,本次将围绕“百知教育dubbo教程”这一主题展开详细的IT知识点解析。主要内容包括Dubbo的基本概念、Dubbo的核心组件及其功能、Dubbo的工作原理以及Dubbo在实际项目中的应用等。 ### Dubbo基本...

    尚硅谷的dubbo教程

    最新尚硅谷的dubbo教程,欢迎下载,免去分享的烦恼

    尚硅谷最新Dubbo教程-百度网盘

    尚硅谷Dubbo教程2018年8月27日最新发布! 业界超火爆的分布式框架之一!

    dubbo教程pdf

    【Dubbo教程PDF】是一个供IT专业人士学习和掌握Apache Dubbo框架的重要资源。Dubbo,由阿里巴巴开源,是一个高性能、轻量级的Java服务治理框架,专注于远程调用、服务治理和服务监控。这个教程旨在帮助开发者更好地...

    dubbo教程,项目教程+源代码,全教程

    dubbo全教程,Dubbo的总体架构,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色

    最新Dubbo的分布式架构视频教程

    最新Dubbo的分布式架构视频教程最新Dubbo的分布式架构视频教程

    尚硅谷 Dubbo教程2018-8-27.txt

    尚硅谷 Dubbo教程

    阿里微服务框架dubbo教程.zip

    阿里微服务框架dubbo教程.zip 1.dubbo的作用 2.安装 3.监控中心dubbo-admin 4.SpringMVC项目中使用Dubbo 各节点的功能 SPI Service Provider Interface服务发现机制 dubbo+zookeeper搭建HA集群 ...

    Dubbo视频教程--高级篇--第24节--简易版支付系统介绍

    ### Dubbo视频教程--高级篇--第24节--简易版支付系统介绍知识点 #### 1. Dubbo框架与分布式系统架构 Dubbo是一款高性能、轻量级的Java RPC框架,由阿里巴巴开源。它提供了高可用的服务治理能力,在分布式系统中尤为...

    2018最新Dubbo视频教程

    根据提供的文件信息,本篇文章将围绕“2018最新Dubbo视频教程”这一主题进行深入探讨,并结合其描述及部分标签内容展开详细介绍。 ### Dubbo简介 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了一整套...

    尚硅谷 Dubbo教程2018-8-27

    DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员...

    java高级技术Dubbo视频教程

    java高级技术Dubbo视频教程,需要学习Dubbo高级技术的朋友可以下载看看,绝对物超所值

    尚硅谷dubbo教程

    尚硅谷dubbo教程链接,dubbo 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。

Global site tag (gtag.js) - Google Analytics