RPC服务框架dubbo(一):简介和原理解析

Stella981
• 阅读 841

前置概念

在学习dubbo前,需要先了解SOA和RPC这两个概念。

SOA

1.英文名称(Service Oriented Ambiguity)

2.中文名称:面向服务架构

  2.1 有一个专门提供服务单元.

  2.2 其他所有单元都调用这个服务.

3.SOA定位:

  3.1 如何**设计项目,**让开发时更有效率.

  3.2 SOA是一种思想

4.之前项目架构设计

  4.1 在公司项目不允许所有项目都访问数据库.

  4.2 开发时,数据库访问层代码可能出现冗余

 RPC服务框架dubbo(一):简介和原理解析

5.使用SOA架构

  5.1 专门访问数据库服务(项目).

  5.2 开发时可以实现,数据访问控制和代码复用.

 RPC服务框架dubbo(一):简介和原理解析

6.实现SOA架构时,常用服务.

  6.1 Dubbo 做为服务.

  6.2 WebService 做为服务.

  6.3 Dubbox 做为服务.

  6.4 服务方就是web项目,调用web项目的控制器.

    6.4.1 使用HttpClient可以调用其他项目的控制器.

RPC

1.英文名称(Remote Procedure Call Protocol)

2.中文名称:远程过程调用协议

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

RPC服务框架dubbo(一):简介和原理解析

4.RPC最大优点:

    4.1 数据安全性.

Dubbo简介

1.Dubbo:一个分布式高性能透明化RPC服务框架

2.作用:提供服务自动注册、自动发现等高效服务治理方案.

3.Dubbo架构图

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

  3.2 Consumer:消费者, 调用服务方

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

  3.4 Registry: 注册中心.当Container启动时把所有可以提供的服务列表上Registry中进行注册.

    3.4.1 作用:告诉Consumer提供了什么服务和服务方在哪里.

  3.5 Monitor:监听器

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

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

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

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

 RPC服务框架dubbo(一):简介和原理解析

4.运行原理:

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

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

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

  4.3 当Provider有修改后,注册中心会把消息推送给Consummer

    4.3.1 使用了观察者设计模式(又叫发布/订阅设计模式)

  4.4 根据获取到的Provider地址,真实调用Provider中功能.

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

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天$20
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天$20
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠。国庆双重礼,仅限7天$200美元AWS服务抵
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这