Dubbo学习笔记-入门

文章内容输出来源:拉勾教育Java高薪训练营

一、介绍

Dubbo是一款高性能轻量级的Java RPC框架(官网地址
提供了三大核心能力

  • 面向接口的远程方法调用
  • 智能容错和负载均衡
  • 服务自动注册和发现
二、处理流程

在这里插入图片描述

2.1 节点说明
  • Provider:服务提供方,暴露服务
  • Consumer:服务消费者,调用远程服务
  • Registry:注册中心,服务注册与发现

服务注册中心在整个流程中扮演了至关重要的角色。Dubbo推荐使用ZooKeeper

  • Monitor:监控中心,统计服务的调用次数和调用时间
  • Container:服务运行容器,启动、加载、运行服务提供者
2.2 调用关系说明
  • 实线是同步调用
  • 虚线是异步调用
  • 蓝色虚线是在程序执行中的功能
  • 紫色虚线是在启动时完成的功能
2.3 流程步骤

1.Provider部署在一个Container,启动后向Registry注册自己提供的服务
2. Consumer启动后,向Registry订阅自己所需要的服务
3. Registry返回Provider的地址列表给Consumer
4. Consumer从地址列表中,基于负载均衡算法,选择一个Provider进行调用
5. Provider和Consumer将运行情况(调用次数、时间)定时发送给Monitor进行统计

如果Provider的地址信息变更,Registry会基于长连接推送变更数据给Consumer
Consumer调用Provider的服务失败,则会重新选择一个Provider进行调用

三、管理控制台

dubbo-admin,可以对服务管理、路由规则、服务降级、负载均衡等这些功能进行监控

  1. 下载项目
    git地址:https://github.com/apache/dubbo-admin

  2. 修改项目中的dubbo.properties文件

dubbo.registry.address=zookeeper://zk所在机器ip:zk端口 
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
  1. 项目打包,运行jar包
四、配置参数
4.1 dubbo:application

对应dubbo中的ApplicationConfig,代表当前应用的信息

  • dubbo.application.name: 应用名称
  • dubbo.application.owner: 应用的负责人
  • dubbo.application.qosEnable: 是否启动QoS,默认是true
  • dubbo.application.qosPort:启动QoS绑定的端口,默认为22222
  • dubbo.application.qosAcceptForeignIp:是否允许远程访问,默认是false

QoS是Quanlity of Service,通过一些命令来动态对服务进行查询和控制,如对服务的上下线

4.2 dubbo:registry

对应dubbo中的RegistryConfig,代表模块使用的注册中心

  • dubbo.registry.id:注册中心标识ID,有多个注册中心通过此字段进行区别
  • dubbo.registry.address:注册中心的访问地址
  • dubbo.registry.protocol:注册中心使用的协议是什么
  • dubbo.registry.timeout:超时限制,当与注册中心不在同一个机房,会将此参数延长
4.3 dubbo:protocol

对应dubbo中的ProtocolConfig,指定服务进行数据传输时所使用的协议

  • dubbo.protocol.id:协议的标识ID,有多个协议使用时可以区别
  • dubbo.protocol.name:指定协议名称,默认是dubbo
4.4 dubbo:service

对应dubbo中的ServiceConfig,用于指定当前需要对外暴露的服务信息

  • dubbo.service.interface:指定当前需要对外暴露的接口是什么
  • dubbo.service.ref:具体实现对应的引用。一般是在Spring的容器中进行托管,所以一般这里也指的是Spring的Bean ID
  • dubbo.service.version:对外暴露的版本号。消费者在消费的时候只会根据固定的版本号进行消费。
4.5 dubbo:reference

对应dubbo中的ReferenceConfig,做为消费者的配置

  • dubbo.reference.id:服务对应的BeanId
  • dubbo.reference.interface:服务接口名
  • dubbo.reference.version:指定当前服务的版本,与服务提供者的版本一致
  • dubbo.reference.registry:指定使用的注册中心地址的标识ID
4.6 dubbo:method

对应dubbo的MethodConfig,指定具体方法级别在RPC操作时的配置

  • dubbo.method.name:指定方法名称
  • dubbo.method.async:
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值