dubbo学习

什么叫rpc:

rpc(remote procedure call)是指远程过程调用,是一种进程间的通信方式,它是一种技术的思想,而不是规范,它允许程序调用另一个地址空间(通常是共享网略的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

rpc基本原理

rpc两个核心模块:通信,序列化

rpc框架:dubbo、gRPC、Thrift、HSF

dubbo核心概念:

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

官网地址:https://dubbo.apache.org/

dubbo架构设计思想

Registy:注册中心(服务调用者、服务提供者集合)

consumer:服务调用端

provider:服务提供端

monitor:监控中心(服务提供者、调用者的监控信息)

container:容器中心

dubbo运行流程:

dubbo框架启动, container(容器)启动,服务提供者向注册中心注册服务信息,注册中心管理服务提供者服务信息,当服务消费者启动时,会从注册中心订阅自己需要的服务信息,当注册中心发现服务提供者的服务信息有变动时,也会及时的将变动同步给服务消费者,服务消费者拿到自己需要的所有的服务信息时,会同步的调用服务提供者服务信息,如果同一个服务有多个提供者(类似集群),服务消费者也会按照负载均衡算法调用其中的一个服务。服务消费者调用服务提供者的调用信息通常会在一定的时间(一般60s)内异步的发送给监控中心,监控者就能近似的实时监控服务者消费者和提供者的调用信息。

用zookeeper作为注册中心:

从官网下载zookeeper压缩包,根据系统版本下载对应的版本http://www.apache.org/dyn/closer.cgi/zookeeper/

window下启动zookeeper,在cmd中进入zookeeper的bin目录下,运行zkServer.cmd启动,报错 ERROR [main:QuorumPeerMain@88] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing E:\tools\zookeeper-3.4.11\bin\..\conf\zoo.cfg,从报错信息发现是没有获取到zoo.cif文件

解决方式:

将conf文件下的zoo_sample.cfg文件复制一份,修改文件名为zoo.cfg,然后在zookeeper目录下创建一个data目录,用来存放日志信息,修改zoo.cfg文件中的日志存放路径为data目录

重新启动zookeeper,出现如下界面说明启动成功。

可以通过zkCli.cmd查看节点信息和创建一个临时节点

安装dubbo监控中心

从官网下载dubbo incubator-dubbo-ops-master项目,修改admin项目application.properties文件,配置监控地址为本地2181端口,并且通过maven构建成一个jar包。

在admin的pom目录下通过cmd使用mvn  clean package 进行打包,等打包成功,通过java -jar dubbo-admin-0.0.1-SNAPSHOT.jar 运行jar包

启动之后通过访问localhost:7001,通过root,root登录查看dubbo信息

登录成功进入下面页面证明管理控制台配置成功

配置监控中心配置,dubbo-monitor-simple-2.0.0,进入assembly.bin目录下,运行start.bat出现以下界面证明监控中心配置成功

springboot项目集成dubbo

1、引入依赖

 <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
</dependency>

2、配置dubbo相关信息

//服务提供者
dubbo:
  application:
    name: user-service-provider
  registry:
    address: 127.0.0.1:2181
    protocol: zookeeper
  protocol:
    name: dubbo
    port: 20880
  monitor:
    protocol: registry


//服务消费者
dubbo:
  application:
    name: order-service-consumer
  registry:
    address: zookeeper://127.0.0.1:2181
  monitor:
    protocol: registry

3、添加对应的注解

提供者和消费者启动类中都添加@EnableDubbo

服务提供者接口添加 @Service,注意是dubbo包下,通过次注解暴露接口

服务消费者添加@Reference,注意是dubbo包下,通过此注解获取调用接口信息,远程引用

dubbo接口调用配置生效原则:

1、精确优先(方法级优先,接口级次之,全局配置再次之)

2、消费者设置优先(如果级别一样,则消费方优先,提供方次之)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值