dubbo/dubbox

1.概念

1.1  SOA

面向服务架构,SOA是一种思想

1.2 SOA的服务的实现RPC(远程过程调用协议,客户端(A)通过互联网调用远程服务器,不知道远程服务器具体实现,只知道远程服务器提供了什么功能.)

Dubbo 做为服务,WebService 做为服务,Dubbox 做为服务

1.3 Dubbo(12年停止维护,17后又在维护)

一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案.

1.4 Dubbo架构图

Provider :提供者,服务发布方.

Consumer:消费者, 调用服务方

Container:Dubbo容器.依赖于Spring容器.

Registry: 注册中心.当Container启动时把所有可以提供的服务列表上Registry中进行注册.作用:告诉Consumer提供了什么服务和服务方在哪里.

Monitor:监听器

虚线都是异步访问,实线都是同步访问

蓝色虚线:在启动时完成的功能

红色虚线(实线)都是程序运行过程中执行的功能

所有的角色都是可以在单独的服务器上.所以必须遵守特定的协议.

运行原理:

启动容器,相当于在启动Dubbo的Provider

启动后会去注册中心进行注册.注册所有可以提供的服务列表

在Consumer启动后会去Registry中获取服务列表和Provider的地址.进行订阅.

当Provider有修改后,注册中心会把消息推送给Consumme, 使用了观察者设计模式(又叫发布/订阅设计模式)

根据获取到的Provider地址,真实调用Provider中功能.在Consumer方使用了代理设计模式.创建一个Provider方类的一个代理对象.通过代理对象获取Provider中真实功能,起到保护Provider真实功能的作用.

Consumer和Provider每隔1分钟向Monitor发送统计信息,统计信息包含,访问次数,频率等.

 备注:invoke 最耗时,register是自动运行的,

注册中心

Zookeper:优点:支持网络集群,缺点:稳定性受限于Zookeeper

Redis:优点:性能高,缺点:对服务器环境要求较高

Multicast: 优点:面中心化,不需要额外安装软件,缺点:建议同机房(局域网)内使用

Simple:适用于测试环境.不支持集群.

猜你喜欢

转载自www.cnblogs.com/gg128/p/9859195.html