dubbo笔记

前言

大家在项目中或许已经开始接触分布式的服务了,我在这里总结一下自己用到的一个分布式服务框架,Dubbo.

Dubbo简单概述

1. 是什么?

这里写图片描述

划重点:高性能和透明化的RPC远程服务调用方案.

2. 有什么用

这里写图片描述

上面提到了RPC,那么我们来看看什么是RPC.
这里写图片描述

简单来说:RPC就是让你的程序像调用自己项目中方法一样去远程调用其它程序中的方法。

这边顺便总结一下我们平时都会接触的远程通行方式:
1. 浏览器直接访问: 通过ajax或者jsonp方式请求.发送的是http请求,使用http协议.
2. HttpClient 方式:系统和系统之间通过httpClient发起http来交互数据.也是http请求.
总结:无论是无论是Ajax请求,还是HttpClient都是通过 Http请求来访问服务端,使用的都是Http协议,而http协议是短连接。RPC的底层协议,大部分都是使用长连接,减少了建立和销毁连接的次数,大大提高了程序的访问效率,但是会导致连接长期被占用。

3. 为什么要用Dubbo

在用户量很大,请求频繁的场景下,例如用户访问我们的网站服务,请求数量很大,请求连接数有限,使用短连接比较合适。此时使用长连接就不太合适。

当请求连接数不多,但是请求非常频繁的时候,例如系统间访问,此时使用长连接,在一次连接中完成尽可能多的数据交互,效率更高。

而系统的调用在分布式系统中,十分的常见。这种场景下,使用RPC会非常合适。而Dubbo就是一款非常优秀的RPC服务架构.

附件:
Httpclient -> Restful

dubbo -> RPC

SpringCloud 微服务 ,底层采用Restful风格,只能用httpclient(类似的http客户端)

Dubbo架构

这一节,我们聊一下dubbo的架构,自然要提一下系统架构的演变过程.

1.集中式架构

有耦合性高,无法水平扩展(集群)的问题,并发能力差
这里写图片描述

2. 功能垂直拆分

虽然解决集中式架构存在的问题,但是多个系统间,会有一些相同的功能逻辑,重复编码。
如下图,两个系统都需要实现根据商品id查询商品的功能

这里写图片描述

3. 分布式架构服务

形成分布式架构,把 核心业务 抽取成服务,形成服务中心
这里写图片描述

问题:当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。 此时,用于提高机器利用率的资源调度和治理中心

这里写图片描述

4.服务治理

这里写图片描述

5. Dubbo架构

这里写图片描述

调用关系说明:

  • 服务容器负责启动,加载,运行服务提供者。
  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

总结

以上是Dubbo的一些概述,这边我就不去写一些案例代码了,如果有朋友感兴趣的话,可以留言~ 以上.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值