Dubbo 服务配置简介
前言
大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 服务配置。那么怎么理解服务配置呢?我们在前面的《Dubbo 服务注册与发现》章节中讨论了服务注册与发现,其中当我们需要对外暴露一个 Dubbo 服务时需要指定:应用名称、端口、协议、注册中心地址、延迟暴露等配置属性,那么这些配置属性就是我们所说的服务配置。通过服务配置我们可以改变一些特性,例如:使用不同的通讯协议、切换序列化方式、是否延长暴露服务、调用服务超时时间等等。这里会主要介绍下相关的配置方式具体的详细配置属性可以参考:配置参考手册。
1. Dubbo 服务 XML 配置
下面我们来使用 XML 方式来暴露和引用 Dubbo 服务。
java源码目录结构:
|–serviceconfig
|–api 暴露服务的接口定义
|–consumer 消费者服务
|–provider 服务提供者
resources目录结构:
|–serviceconfig
|–consumer 消费者配置文件
|–spring
|–provider 服务提供者配置文件
| --spring
消费者配置文件dubbo-consumer-xml.xml
如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!--配置Dubbo应用名称-->
<dubbo:application name="demo-consumer" logger="log4j" />
<!--配置Dubbo zookeeper注册中心地址-->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--配置引用Dubbo服务名称-->
<dubbo:reference id="bookFacade" check="false" interface="com.muke.dubbocourse.serviceconfig.api.BookFacade"></dubbo:reference>
</beans>
消费者启动类:com.muke.dubbocourse.serviceconfig.consumer.XmlApplication
服务提供者配置文件dubbo-provider-xml.xml
如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!--配置Dubbo应用名称-->
<dubbo:application name="demo-provider" metadata-type="remote"/>
<!--配置Dubbo zookeeper注册中心地址-->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--配置Spring容器Bean-->
<bean id="bookFacade" class="com.muke.dubbocourse.serviceconfig.provicer.BookFacadeImpl"