『互联网架构』软件架构-掌握dubbo常规应用(下)

382 阅读2分钟

上一节说的dubbo的架构,流程的说明,设计的意义,其实就是dubbo的helloword。下面重点说说【Dubbo常规配置】。源码:github.com/limingios/n…

配置分布图

红色是cosumber 和 proivder 都需要用到的,cosumber是应用程序,proivder 也是应用程序。不管是提供方和消费方都要提供application告诉我们程序的名字,registry就是连接到我们的注册中心,monitor连接到监控中,把提供者和消费者的实时状态告诉我们的监控中心,调用了多少次,每次花费的时间。

  • 提供者provider

首先要提供协议protocol,才可以供消费者调用。一个RPC框架一定要存在两部分:通信和序列化,dubbo默认的通信采用的是dubbo,序列化hession2。service就是为了暴露服务的,provider和service都会配置超时时间,最终采用service的超时时间,provider属于公共的。

reference 就是注册到注册中心,告诉注册中心我需要这些服务的提供者,跟服务的提供者进行一个匹配。匹配成功获得服务,进行创建服务,变成一个远程调用的对象。

获取方法和参数通过服务方法级别的配置,看这个大图这样更方便理解dubbo。

  • provider

dubbo.apache.org/zh-cn/docs/…

  • 定位属性

定位属性是指消费者匹配提供者的全部标识,总共有如下属性 interface: 接口名称 group: 接口分组 version: 接口版本

1.dubbo中唯一确定一个服务的是接口+服务分组+版本号

在实际开发中,尽量不使用接口版本号,而是使用分组的方式,分为测试组,开发组,生产组,这样就区别开发了。如果嫌版本号麻烦可以通过 version="*"

2.xml配置

dubbo.apache.org/zh-cn/docs/…

3.为什么服务端也可以设置超时时间,重试次数,这个不应该客户端设置吗?

官方的介绍:

PS:学习dubbo最好的方式,就是观看api,肯定有老铁说dubbo有注释的方式,为啥还停留到xml,太low了吧,非也,你要暴露服务,用xml是不是更容易管理,你不是restful那种,好些服务类的最好使用xml。