Dubbo服务环境搭建说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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功能说明包括: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