dubbox分布式案例

一:SOA描述:

SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。

二:Dubbox简介:

Dubbox提供高性能和透明化的RPC远程服务调用方案,一种SOA服务治理方案,也就是个远程服务调用的分布式框架。

 

节点角色说明:

  • Provider: 暴露服务的服务提供方。
  • Consumer: 调用远程服务的服务消费方。
  • Registry: 服务注册与发现的注册中心。
  • Monitor: 统计服务的调用次调和调用时间的监控中心。
  • Container: 服务运行容器。

调用关系说明:

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计

数据到监控中心。

三:dubbox提供者

1)启动192.168.25.128的zookeeper服务

2)引入dubbox的jar或者maven坐标(注意maven中央仓库无法下载dubbox的jar)

<!-- dubbo相关 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.8.4</version>

</dependency>

<dependency>

<groupId>org.apache.zookeeper</groupId>

<artifactId>zookeeper</artifactId>

<version>3.4.6</version>

</dependency>

<dependency>

<groupId>com.github.sgroschupf</groupId>

<artifactId>zkclient</artifactId>

<version>0.1</version>

</dependency>

3)创建pyg_sellergoods_service工程,在resources下创建dubbox的配置文件,内容如下

<!--指定dubbo协议和端口-->

<dubbo:protocol name="dubbo" port="20881"></dubbo:protocol>

<!--指定应用名称-->

<dubbo:application name="pyg_sellergoods_service"/>

<!--连接zookeeper注册中心,暴露服务-->

<dubbo:registry address="zookeeper://192.168.25.128:2181"/>

<!--扫描包注解-->

<dubbo:annotation package="com.pyg.sellergoods"/>

<!--非注解方式提供服务

<dubbo:service interface="com.pyg.sellergoods.service.BrandService" ref="brandService"></dubbo:service>-->

4)创建一个品牌服务类BrandService

5).pyg_sellergoods_service工程在maven的packaging标明为一个war,放置到tomcat中启动

四:dubbox的消费者

1)启动192.168.25.128的zookeeper服务

2)引入dubbox的jar或者maven坐标到项目中(注意maven中央仓库无法下载dubbox的jar)

<!-- dubbo相关 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.8.4</version>

</dependency>

<dependency>

<groupId>org.apache.zookeeper</groupId>

<artifactId>zookeeper</artifactId>

<version>3.4.6</version>

</dependency>

<dependency>

<groupId>com.github.sgroschupf</groupId>

<artifactId>zkclient</artifactId>

<version>0.1</version>

</dependency>

3)创建pyg_manager_web工程,且在resources下增加dubbox配置文件,内容如下:

<!-- 引用dubbo 服务 -->

<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->

<dubbo:application name="dubboxdemo-web"/>

<!-- 消费方超时设置30s -->

<dubbo:consumer retries="0" timeout="30000"></dubbo:consumer>

<!-- 使用zookeeper注册中心暴服务地址 -->

<!-- 注册中心地址 -->

<dubbo:registry protocol="zookeeper" address="zookeeper://192.168.25.128:2181"/>

<!--非注解方式:使用@Autowired注入

<dubbo:reference interface="com.pyg.sellergoods.service.BrandService" id="brandService" check="false"></dubbo:reference>-->

<!--注解方式:扫描包,使用@Reference注入-->

<dubbo:annotation package="com.pyg.controller"/>

4)创建品牌的controller类BrandController

5)注意服务的提供者和消费者都共同依赖同一个Interface工程

五:dubbo监控

将下载的dubbox带有的dubbo-admin.war放置到tomcat运行,用户名和密码:root/root

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值