dubbo框架

一、dubbo的简介

 Apache Dubbo 是一个高可用的,基于Java的开源RPC框架。

​ Dubbo框架不仅仅是具备RPC访问功能,还包含服务治理功能。

二、dubbo的架构

##### 3.2.1虚线

​ 虚线表示异步,实线表示同步。异步不阻塞线程性能高,同步阻塞线程必须等待响应结果才能继续执行,相对性能低。

##### 3.2.2Provider

​ 提供者。编写持久层和事务代码。

##### 3.2.3Container

​ 容器(Spring容器),Dubbo完全基于Spring实现的。

##### 3.2.4Registry

​ 注册中心。放置所有Provider对外提供的信息。包含Provider的IP,访问端口,访问遵守的协议,对外提供的接口,接口中有哪些方法等相关信息。

##### 3.2.5Consumer

​ 消费者(RPC调用者,SOA调用服务的项目)开发中也是一个项目,编写service和controller(还可以报页面等)。调用XXXXServiceImpl中的方法。

##### 3.2.6Monitor

​ 监控中心。监控Provider的压力情况等。每隔2分钟Consumer和Provider会把调用次数发送给Monitor,由Monitor进行统计。

#### 4.执行流程

0. start:启动Spring容器时会把Provider启动。
1. register:把Provider相关信息注册到Registry里
2. subscribe:Consumer从Registry中订阅Provider的信息
3. notify:通知给Consumer
4. invoke:Consumer根据Registry通知的信息进行调用Provider中方法。
5. count:Consumer和Provider把调用次数信息异步发送给Monitor进行统计。

三、dubbo协议的优点

 1.Dubbo协议(官方推荐协议)

​    优点:

​        采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)

​    缺点:

​        大文件上传时,可能出现问题(不使用Dubbo文件上传)

#### 2.RMI(Remote Method Invocation)协议

​    优点:

​        JDK自带的能力。

​    缺点:

​        偶尔连接失败.

四、dubbo的配置文件: 注意 客户端和服务端名字要区分,不可一致

dubbo:
  application:
    name: dubbo-provider
  registry:
    address: zookeeper://192.168.184.139:2181
    timeout: 100000
# 加载其他配置文件  , 加载其他的application-*.yml文件
# 多个名称之间使用逗号分隔
spring:
  profiles:
    active: mybatis

五、dubbo的使用心得总结:

定义dubbo调用方的api包中添加dubbo,在启动类上添加 @EnableDubbo注解。在注册dubbo的使用dubbo的Service。在调用方的时候,使用@Reference注解调用。

在zookper导包的时候,版本不可高于服务器的版本。

六、git项目路径:

https://gitee.com/wanghm718/study/tree/master/ParentTestDubbo 该项目是一个聚合项目,通过dept实现了对远程接口的调用,并查询了数据库。

 

posted @ 2022-05-18 22:16  Jerry&Ming  阅读(167)  评论(0)    收藏  举报