Dubbo整合SpringBoot使用,入门

本文介绍了Dubbo的基础概念,如RPC协议及其在服务调用中的作用。Dubbo作为一个Java RPC框架,提供了服务治理、负载均衡等功能。文章详细讲解了如何使用SpringBoot搭建Dubbo服务,包括服务提供者和服务消费者的配置,以及Zookeeper作为注册中心的角色。通过实例展示了如何创建服务接口、实现服务提供者,并在服务消费者中调用远程接口。最后,验证了服务调用的成功,为深入理解Dubbo打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dubbo初探

几个问题

什么是RPC?为什么我要用RPC?什么是Dubbo?

RPC:(Remote Procedure Call) 该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

看到官方的解释,你可能并不明白RPC是什么东西,但是和传统的一个业务进行结合就变的很好了解了,比如我现在对外暴露了一个web服务,这个服务可以计算两个数字的和,这时候如果有相应的客户调用这个服务,就在我这台计算机上计算好两个数的和,然后反馈给客户端,但是我发现我这台服务器计算两个数字的和没有那么强的算力(当然可能这个例子并不恰当),但是我还是想在这台服务器上继续运行我的WEB服务,但是计算我想交给我的另外一台性能比较强的服务器,由他来进行计算,然后我只需要知道结果就可以,那么这样的方式就是一次RPC的请求与返回。

Dubbo的介绍:Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用智能容错和负载均衡,以及服务自动注册和发现

那么通过上面的官方介绍我们就知道了Dubbo是开源的RPC框架,当然他的功能并不止上面说的服务调用与返回,还具有智能容错负载均衡等强大功能。

更多Dubbo的相关知识,请参照Dubbo官方文档以及源码:

Dubbo 官方网张

Dubbo 官方源码

Dubbo结构图:

Dubbo组成部分

Dubbo结构图:

dubbo

我们可以看到实现RPC我们需要服务的提供者与服务的消费者以及注册中心监视器

调用关系说明:

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

  2. 服务提供者在启动时,向注册中心注册自己提供的服务。

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

  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

注册中心

我们可以看到注册中心在RPC调用中扮演着很重要的作用,他记录了哪些消费者提供了哪些接口可以被消费者调用,还有哪些服务发生了变更,是Dubbo框架中的重要组成部分。

那么我们就需要自己搭建一个注册中心,Dubbo官方提供了Multicast zookeeper Nacos Redis Simple 注册中心等注册中心,但是官方建议使用zookeeper作为dubbo的注册中心。我们可以使用zookeeper的docker镜像进行环境的搭建,减少一些配置的操作。docker地址:https://hub.docker.com/_/zookeeper 或者使用docker-compose进行搭建。

version: '3.1'

services:
  zoo1:
    image: zookeeper
    restart: always
    hostname: zoo1
    ports:
      - 2181:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值