dubbo配置入门

简介: dubbo的机理这里不说了,dubbo的官方文档对于原理讲得很透彻了。说说使用。 使用dubbo包含服务端和客户端,还需要注册中心(一般用zookeeper)。dubbo是集成spring特性的,所以服务端和客户端都需要配置各自的xml文件。

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>

 

目录
相关文章
|
XML Dubbo 架构师
由浅入深Dubbo核心源码剖析高阶配置运用1
由浅入深Dubbo核心源码剖析高阶配置运用
82 0
|
19天前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
2月前
|
Dubbo Java 应用服务中间件
分布式-dubbo的入门
分布式-dubbo的入门
|
5月前
|
XML 监控 Dubbo
Dubbo怎么配置监控中心
**摘要:** 本文介绍了如何配置Dubbo的简单监控中心。首先,通过添加`&lt;dubbo:monitor protocol=&quot;registry&quot; /&gt;`到配置文件启用监控。接着,修改`dubbo.properties`设置Zookeeper地址。启动监控中心,服务提供者和消费者需添加`monitorEnabled=&quot;true&quot;`以开启监控功能。配置完成后,监控中心的Web界面能展示服务状态和性能指标,助力开发者和运维人员实时监控服务健康。
|
6月前
|
Dubbo Cloud Native 应用服务中间件
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
185 1
|
负载均衡 Dubbo 算法
由浅入深Dubbo核心源码剖析高阶配置运用2
由浅入深Dubbo核心源码剖析高阶配置运用2
80 0
|
6月前
|
Docker 容器
在docker中安装dubbo-admin,并且阿里云服务器配置
在docker中安装dubbo-admin,并且阿里云服务器配置
291 1
|
6月前
|
XML 负载均衡 Dubbo
了解Dubbo配置:优先级、重试和容错机制的秘密【五】
了解Dubbo配置:优先级、重试和容错机制的秘密【五】
309 0
|
6月前
|
监控 负载均衡 Dubbo
分布式架构与Dubbo基础入门与实践
分布式架构与Dubbo基础入门与实践
58 1
|
6月前
|
Dubbo Java 应用服务中间件
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
169 1