Dubbo 框架

一、简介

dubbo是什么?

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

简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用,说白了就是个远程服务调用的分布式框架。

在实际用途中dubbo就是服务提供者服务消费者以及注册中心三者的使用。

 

二、dubbo框架协议

1、dubbo使用的协议

RPC协议(远程调用协议),更多见博客:https://blog.csdn.net/qq_41055045/article/details/89599237

在dubbo框架使用 <dubbo:protocol name="dubbo" port="20880"/>

2、协议特点

dubbo协议采用单一长连接和异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。

3、网络通信

dubbo协议底层网络通信默认使用的是netty,性能非常优秀,推荐使用

附加知识:

dubbo协议不适合的地方:Dubbo协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低

长连接------服务器和服务器,建立管道,一直打开着,适合小数据传输,就不需要等待

短连接------用户和服务器,建立管道,每次都要建立新的连接

 

三、dubbo框架常用标签

公用标签、服务提供者标签、服务消费者标签(下面的是主要的标签)
1、公用标签:在服务、消费者都要使用

配置应用信息:<dubbo:application name="服务的名称"/>(必用)服务的名称给dubbo框架内部使用,用来识别是消费者或者是提供者

配置注册中心:<dubbo:registry address="ip:port" protocol="协议" />

2、服务提供者标签

配置访问服务提供者的协议信息:<dubbo:protocol name="dubbo" port="20880"/>

配置暴露的服务:<dubbo:service interface="服务接口名" ref="服务实现对象 bean" />(必用)

3、服务消费者标签

配置服务消费者引用远程服务:<dubbo:reference id="服务引用bean的id" interface="服务接口名"/> (必用)

dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,防止spring初始化完成,以便上线时,能及早发现问题,默认check="true"。通过check="false"关闭检查,比如,测试时,有些服务不关心,或者出现循环依赖,必须有一方先启动。

4、其它配置项,不是标签

关闭检查check:关闭某个服务启动时检查:<dubbo:registry check="false" />  关闭注册中心启动时检查:<dubbo:reference interface="" check="false" />

请求重试次数retries:远程服务调用次数,不包括第一次调用,默认是2次。加上第一次共3次:<dubbo:reference retries="5" />

 

四、dubbo框架注册中心

注册中心zookeeper

可以动态管理dubbo服务,有心跳机制,每几秒会向服务发送信息,当服务宕机了,注册中心会把记录删除,添加新的服务地址,会自动把新的服务地址等给消费者,自动管理

自动管理过程:

1、提供服务者会交给注册中心管理(dubbo服务向注册中心提供自己的服务地址)

  • 服务提供者把dubbo服务1(名称)交给注册中心登记(ip:port 接口名 记录一行信息)
  • 服务2....
  • 服务3....

2、消费者从注册中心订阅服务(app向注册中心获取可用的dubbo服务的地址)

  • 注册中心把消费者订阅的服务1(名称)的ip:port等发送给消费者
  • 服务2....
  • 服务3....

dubbo框架使用注册中心:

        <!-- 声明注册中心 -->
        <dubbo:registry address="zookeeper://localhost:2181"/>

使用了zookeeper,实现由zookeeper自动管理服务,提高项目效率

windows安装zookeeper的过程,单机模式,见博客:https://blog.csdn.net/qq_41055045/article/details/82945597

 

五、dubbo框架负载均衡

负载均衡是以集群为前提的。其意思是将负载工作任务进行平衡、分摊到多个操作单元上进行执行

负载均衡方式

  1. 随机数:从全部服务器中随机选中一个服务器进行工作,服务器多的时候用随机数好(默认)
  2. 轮循:各个服务器轮着工作,有序,服务器性能差不多的时候用轮循
  3. 最少活跃数:服务器性能差异比较大的时候用
  4. 一致性hash:怕服务器宕机时使用,通过虚拟节点,如果有一服务器宕掉,则把虚拟节点重新分配。

 

六、dubbo项目

入门教程项目参考我的其它博客

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值