dubbo的机理这里不说了,dubbo的官方文档对于原理讲得很透彻了。说说使用。
使用dubbo包含服务端和客户端,还需要注册中心(一般用zookeeper)。dubbo是集成spring特性的,所以服务端和客户端都需要配置各自的xml文件。
客户端和服务端还需要依赖一个公共的接口包。这个接口包(一般是jar)是由服务端开发的,里面只定义了要暴露的接口,以及这些接口用到的实体和异常。为了同步和更新方便,这个包通常会上传到maven库里。这里假设起坐标是
<groupId>com.sth.system</groupId> <artifactId>sth-api</artifactId> <version>xxx</version>
并且包含两个接口:
interface A{ String a(); } interface B{ int b(int arg); }
服务端自身自然要依赖sth-api,并对AB接口进行实现:
class AI implements A{ String a(){ return "ok"; } } class BI implements B{ int b(int i){ return i; } }
在spring的配置文件中配置接口的实现bean:
<bean id="ai" class="AI"> <bean id="bi" class="BI">
引入dubbo空间、 配置dubbo信息并引用实现bean:
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd”
<dubbo:application name="dubbo" /> <dubbo:registry address="${dubbo.registry.address}" /> <dubbo:protocol name="dubbo" port="20880" /> <dubbo:service interface="A" ref="ai" protocol="dubbo" group=""/> <dubbo:service interface="B" ref="bi" protocol="dubbo" group=""/>
这样应用启动后接口就暴露了。其中registry的address是zk的地址,以zookeeper://开头,比如zookeeper://127.0.0.1:2181。多台zk可以用逗号隔开。protocol的port默认是20880,这个属性建议配成一个负数,因为可能多个应用部署在一起会端口冲突导致启动不了。负数的话比如-1,dubbo会自动寻找空闲端口(从20880开始)。
客户端也要依赖sth-api,然后只要配置dubbo就可以了:
<dubbo:application name="hahaha" /> <dubbo:consumer check="false" /> <dubbo:registry address="${dubbo.registry.address}" /> <dubbo:protocol name="dubbo" /> <dubbo:reference group="" id="serviceA" interface="A" /> <dubbo:reference group="" id="serviceB" interface="B" />
consumer的check是检查依赖服务是否存在,如果不写,dubbo启动的时候会去zk上寻找依赖的服务,找不到就启动失败,建议写上。
和服务端写service不同的是,客户端写的是reference。注意到他们都有group属性,这个属性是用来服务隔离的,客户端只能调用该值相等的服务端。
客户端可以这样调用服务:
String s = serviceA.a(); int i = serviceB.b(1);
大家用的多的其实是当当网的dubbox:
<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.9</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.8.4</version> </dependency>
相关推荐
dubbo入门demo,简单实用,方便理解。idea可直接导入运行,eclipse需要作相应的配置
dubbo官方配置指南,初学者,入门人士必看。
https://blog.csdn.net/qq_29914837/article/details/103720188 Dubbo(四)------Dubbo入门示例(基于属性配置)
Maven+SpringMVC+Dubbo 简单的入门demo配置
上述demo按照快速开发文档编写,并且修改了读取配置文件的方式,新增log4j和zookeeper
https://blog.csdn.net/qq_29914837/article/details/103724067 Dubbo(五)------Dubbo入门示例(基于api配置)
该demo是基于maven搭建的,项目架构基于SpringMVC,这里忽略Spring的基本配置,着重介绍下dubbo部分的配置,以及dubbo后台管理系统
dubbo-api+dubbo-consumer+dubbo-provider+dubbo-admin+zookeeper-3.4.12 有搭建dubbo示例的所有环境 生产者与消费者示例配置已配置好
此源码是基于maven模块架构,SpringMVC,以及dubbo应用系统
极简配置的入门dubbo源码,基于dubbo源码的demo模块。内含一个父demo、demo-api、demo-consumer和demo-provider;可使用multicast或zookeeper注册中心(后者要先安装zookeeper)。
一个服务提供者web工程、一个消费者web工程,两个工程都需扔到tomcat下,启动tomcat,在浏览器地址输入:http://localhost:8080/dubbo-service-consumer/text.do,可测试消费者远程调用了提供者的服务。没有涉及注册...
一个用spring配置的dubbo的小例子,适合初学者学习
分布式RPC框架Apache Dubbo的使用步骤,服务注册中心Zookeeper安装使用,Dubbo管理控制台配置使用说明文档,还有dubbo入门案例
dubbo的快速启动demo,学习dubbo的入门程序,还有dubbo.xsd配置文件避免配置文件报错。赶快下载学习吧。
分布式服务框架 dubbo/dubbox 入门示例 1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。 2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少...
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。 通过图解的形式对Dubbo原理讲解,据绝枯燥的理论,通过图文代码和...
Dubbo入门讲义,包含背景、需求、架构、用法、依赖、Xml配置、属性配置、注解配置、API配置、示例、协议、注册中心、Telnet、服务化、推荐用法、监控中心等
使用spring配置文件配置dubbo服务,ioc注入。不是其他入门实例的api启动。 每一步可能犯的错误都在下面的地址里有详细描述 详细介绍参见blog http://blog.csdn.net/fangxiaoji/article/details/41845955
入门 背景 需求 架构 用法 快速启动 服务提供者 服务消费者 依赖 必需依赖 缺省依赖 可选依赖 成熟度 功能成熟度 策略成熟度 配置 Xml配置 属性配置 注解配置 API配置 示例 启动时检查 集群容错 负载均衡 线程模型 ...