Dubbo服务环境搭建说明

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

dubbo服务环境搭建说明

简介:

dubbo是alibaba开源的分布式服务框架,它包含服务调用者、服务提供者、负载均衡和服务治理等。负载均衡和服务治理dubbo做了高度封装,开发者只需要关心服务的调用和提供就行。

项目架构:

dubbo的项目开发架构主要包括:dubbo API、domain POJO、dubbo provider、dubbo customer(dubbo customer一般通过xml配置在调用端就可以,不需要单独创建为一个项目)。

搭建一个独立dubbo服务的时候,最少需要创建三个项目

1、api接口项目:

用于声明dubbo服务提供的接口。

2、domain 项目:

用于创建dubbo远程传输的Java POJO。

每一个POJO都必须实现Serializable序列化接口

3、provider项目:

dubbo的服务提供server,是api中声明的接口的实现。

如果项目太大或者模块化分得更细,可以把provider拆分出service和dao等。

项目搭建说明:

1、项目统一命名规则:

egolm-<项目名称>-<模块名称>

2、项目包名规则:

com.egolm.<项目名称>.<模块名称>.<功能名称>.<自定义扩展...>

3、api和domain是普通的Java项目,消费者和生产者都需要依赖api和domain,api 和domain是普通项目,不需要进行任何配置,每一个provider中,需要有api接口的实现

api项目结构:

src/main/java

Domain项目结构:

src/main/java

4、provider项目结构(provider和其拆分模块适用):

src/main/java

src/main/resources

src/test/java

src/test/resources

src/main/resources下的spring-xml文件命名规则包括

<项目名称>-<模块名称>--<自定义扩展>.xml

xml功能说明包括:dataSource、import、context、configuration等

5、引入dubbox支持,分为两步:

1、provider引入一个支持dubbo的xml声明,模板在

10.10.0.4:9001/templates/dubbo-provider-template下、以下是对其中局部配置的说明:应用名称等声明,每一个服务只需要改应用名称就行:

organization="" />

声明负载均衡策略,统一使用zookeeper,address是zookeeper集群的地址:

address="139.196.177.110:2181?backup=139.196.177.110:2182,139.196.177.110:2183" />

需要配置本地host,因为虚拟机获得的可能不是该虚拟机的IP:

声明全局使用的协议和端口号:

服务端注册接口声明:

ref="helloService" protocol="webservice" />

dubbo有多种协议风格可以配置,在模板中都有相应的说明。

2、customer引入一个支持dubbo的xml声明,模板在

10.10.0.4:9001/templates/dubbo-customer-template下、消费端如果需要调用某个已注册的服务,只需要在这个xml中添加所要调用的服务接口即可,以下是对其中

局部配置的说明:

应用名称等声明,每一个服务只需要改应用名称就行:

organization=""/>

声明负载均衡策略,统一使用zookeeper,address是zookeeper集群的地址:

file="${user.home}/dubbo_cache/${APP_NAME}"/>

dubbo的缺省超时时间是1秒,缺省重试为2次,check表示启动时检查提供者是否存在,true报错,false忽略

生成远程对象的本地存根,每个接口的超时时间需要根据该接口的复杂情况来设置,默认为dubbo:consumer 的timeout:

万店易购Java项目架构:

万店易购的项目名为:egolm,开发者可以登录gerrit通过ssh协议克隆项目到本地。

目前,项目总结构如下,后续会慢慢开发每个服务模块:

egolm-common:该项目全局通用,提供通用的工具类,异常,枚举等

egolm-domain:该项目是普通POJO,项目中的数据传输对象

egolm-idc:该项目用于向IDC服务器请求的网关,统一向所有服务提供IDC数据接口。

egolm-ops:万店易购运营管理系统

egolm-oss:统一向所有服务提供阿里云图片服务器接口

附录:

dubbo文档:

http://dubbo.io/User+Guide-zh.htm

dubbox文档

http://dangdangdotcom.github.io/dubbox/rest.html

相关文档
最新文档