dubbo的学习总结

1.什么是dubbo

dubbo是一个分布式服务架构,致力于提供高性能和透明化的RPC远程服务调用方案,是SOA服务化治理方案的核心框架。

分布式服务架构RPC:应用之间产生交互,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能够快速的响应多变的市场需求。

流动计算架构:当服务越来越多,容量的评估,资源的浪费等问题显现,此时增加一个调度中心基于访问压力实时管理集群容量,提高集群的利用率,即资源调度和治理中心SOA

dubbo就是资源调度和治理中心的管理工具。

dubbo是系统之间通信的框架,可以统计和管理服务之间的调用情况。包括服务被谁调用了,调用的次数,以及服务的使用情况。

此外:dubbo还可以实现软负载均衡。


2.dubbo的架构

角色节点说明

  Provider:暴露服务的服务提供方

 Consumer:调用远程服务的服务消费方

 Register:注册中心    --这里就是zookeeper

 Monitor:监控中心

 Container:服务运行容器

调用关系说明

0.服务运行容器,负责启动,加载,运行服务提供者。

1.服务提供者向注册中心注册自己提供的服务

2.服务消费者在启动时,向注册中心订阅自己所需的服务

3.注册中心返回服务提供者地址列表给消费者,若有变更,推送变更

4.******服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用

   invoke

5.服务者和消费者,定时发送数据到监控中心

在实际调用过程中,Provider的位置对于Consumer来说是透明的,上一次调用服务的位置(IP地址)和下一次调用服务的位置,是不确定的。这个地方就是实现了软负载。

 

3.dubbo的使用

采用全spring配置方式

对比:

(1)单一工程中spring的配置
     <bean id="xxxService" class="com.xxx.XxxServiceImpl" />
     <bean id="xxxAction" class="com.xxx.XxxAction">
         <property name="xxxService" ref="xxxService" />
     </bean>

action层直接引入service

(2)远程服务

将服务定义部分放在服务提供方 provide.xml

将服务引用部分放在服务消费方consumer.xml

在提供方增加暴露服务配置,在消费方增加引用服务配置

服务层发布服务:(提供者)
<!-- 和本地服务一样实现远程服务 -->
<bean id="xxxService" class="com.xxx.XxxServiceImpl" />
<!-- 增加暴露远程服务配置 -->
<dubbo:service interface="com.xxx.XxxService" ref="xxxService" />

表现层调用服务:(消费者)
<!-- 增加引用远程服务配置 -->
<dubbo:reference id="xxxService" interface="com.xxx.XxxService" />
<!-- 和本地服务一样使用远程服务 -->
<bean id="xxxAction" class="com.xxx.XxxAction">
    <property name="xxxService" ref="xxxService" />
</bean>

理解为二者通过标绿部分找到。

逻辑关系仔细理清一下!!!


提供者

    <!-- 使用dubbo发布服务 -->
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="taotao-manager" />
    <dubbo:registry protocol="zookeeper" address="192.168.25.128:2181" />
    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />
    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.taotao.service.TestService" ref="testServiceImpl" />

消费者

     <!-- 引用dubbo服务 -->
    <dubbo:application name="taotao-manager-web"/>
    <dubbo:registry protocol="zookeeper" address="192.168.25.128:2181"/>    
    <dubbo:reference interface="com.taotao.service.TestService" id="testService" />  

思考:为什么ref="testServiceImpl"可以没有指明呢?

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值