dubbo初识
1.什么是dubbo?
dubbo 是一个分布式服务框架 是一个高性能的RPC框架 它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
谈到了分布式服务框架 那必然有单一服务框架接下来就谈谈服务框架的演变过程
单一应用架构

当网站流量很小时 只需要一个应用 将所有的功能都部署在一个应用上
优点
- 节省带宽和成本
- 简单易用
缺点
- 由于把所有的功能部署在一个应用上 不方便扩展功能
- 不利于团队合作开发
- 不利于升级维护
垂直应用架构

有了缺点就会有改进于是 垂直应用架构就出现了 垂直应用框架将应用拆分成互不相关的应用
优点
- 通过切分应用来实现各个模块之间的相互独立 方便团队合作
- 由于模块之间的独立 使得维护成本和部署成本降低了
- 性能扩展更方便
缺点
- 由于模块不在同一个服务 使得公用模块之间的服务无法重复利用
分布式服务架构

当垂直应用越来越大 应用之间的交互不可避免 将核心业务抽取出来 作为独立的服务 逐渐形成稳定的服务中心 使前端应用能够适应多变的市场 此时 用于提供业务的复用及整合的分布式服务框架(RPC)是关键。
优点
- 模块之间可以相互调用 增加了重用率
缺点
- 当服务越来越多,容量的评估 小服务资源浪费的情况越来越显著
流动计算架构

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键。
什么叫RPC?
RPC【Remote Procedure Call】是指远程过程调用,说到远程过程调用 那就要谈到本地过程调用 本地过程中不同方法之间可以相互调用 但是它只适用于同一个服务中 当我们在多个服务中想调用不同服务中的方法这时候就需要RPC 它是一种进程间通信方式 适用于不同服务之间的通信
RPC两个核心模块:通讯,序列化。

2.为什么又要使用dubbo ?
1.透明化的远程方法调用,就像调用本地方法一样调用远程方法
2.支持负载均衡算法及容错机制
3.支持服务自动注册与发现

随着技术的发展 应用的发展也越来越快 项目的体积也越来越大 分布式服务框架也越来越常见 为了更加方便快捷的对应用进行开发、治理 于是dubbo就出现了
服务提供者(provider):暴露服务的服务提供方 服务提供者在启动的时候 就会向注册中心注册自己的服务
注册中心(Registry):注册中心返回服务提供者的地址列表给消费者 如果有变更 注册中心将基于长连接推送变更数据给消费者
服务消费者(Consumer):服务消费者在启动时 会向注册中心订阅自己所需的服务 服务消费者会从地址列表中 通过负载均衡算法 选一台提供者进行调用 如果调用失败 在选另外一台
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
调用关系说明
服务容器负责启动,加载 运行服务提供者
服务提供者在启动时 向注册中心注册自己提供的服务
注册中心返回提供者地址列表给消费者 如果有变更 注册中心将基于长连接推送变更数据给消费者
服务消费者在启动时 向注册中心订阅自己所需的服务
服务消费者 从地址提供列表中 基于负载均衡算法 选一台提供者进行调用 如果调用失败 再选另一台进行调用
dubbo初识的更多相关文章
- dubbo初识(一)Dubbo架构设计详解
参见http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合( ...
- dubbo 初识(1)
参考dubbo 中文官方文档:http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html 分布式架构的发展过程 1.初始小型的项 ...
- Dubbo 初识SPI-Version2.7.5
1简介 SPI 全称为 Service Provider Interface,是一种服务发现机制.SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类.这样可以在 ...
- Dubbo+Zookeeper(一)Zookeeper初识
前面花了一段时间去学习SpringCloud的相关知识,主要是理解微服务的概念并使用SpringCloud的一系列组件实现微服务落地.学习这些组件本身是简单的,跟着操作一遍基本就会了,这也得益于Spr ...
- 初识Dubbo 系列之4-Dubbo 依赖
依赖 必需依赖 JDK1.5+ 理论上Dubbo能够仅仅依赖JDK,不依赖于不论什么三方库执行,仅仅需配置使用JDK相关实现策略. 缺省依赖 通过mvn dependency:tree > de ...
- 初识Dubbo+Zookeeprt搭建SOA项目
由于工作中天天和Dubbo打交道,天天写对外服务,所以有必要自己动手搭建一个Dubbo+zookeeper项目来更更深层次的认识Dubbo 首先了解一下SOA: 英文名称(Service Orient ...
- 初识dubbo
1. 为什么需要 Dubbo(摘自http://dubbo.apache.org/zh-cn/docs/user/quick-start.html) 随着互联网的发展,网站应用的规模不断扩大,常规的垂 ...
- Dubbo(1)--初识Dubbo
1. 为什么需要 Dubbo 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当 ...
- 初识Dubbo 系列之6-Dubbo 配置
配置 Xml配置 配置项说明 具体配置项,请參见:配置參考手冊 (+) API使用说明 假设不想使用Spring配置.而希望通过API的方式进行调用,请參见:API配置 (+) 配置使用说明 想知道怎 ...
随机推荐
- 第二阶段冲刺个人任务——one
今日任务: 修改注册界面.
- 【java面试】数据库篇
1.SQL语句分为哪几种? SQL语句主要可以划分为以下几类: DDL(Data Definition Language):数据定义语言,定义对数据库对象(库.表.列.索引)的操作. 包括:CREAT ...
- thinkphp快速入门(学习php框架及代码审计)
之前想学习php代码审计,但是没有坚持下去,记得当时看到了很多CMS框架采用MVC架构,就嘎然而止了. 为了深入学习下框架,一边看着thinkphp官方文档,一边写个简单的登陆注册页面以加深理解. 官 ...
- selenium等待方式之显示等待
有时候,页面元素并未及时加载出来导致后面的步骤无法执行 这里就需要在加载前添加等待时间,让目标元素有足够的时间加载出来 第一种方法:使用time.sleep() 这种方法过于强制,无论元素是否加载出来 ...
- [集训]FWT基础练习题
题意 给出n个长度为20的二进制数和数字k,每次询问给出一个二进制数,问从n个数中挑k个数(不能重复)的按位或能包含询问的组合有多少个.数字均小于等于5E5,1s. 思考 强行算出2^20个答案,再O ...
- IIS 32位/64位 全局模式切换
IIS7以上可以对单个应用程序池进行设置. IIS6需要用命令. 一.32位模式1.cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set ...
- 运行MapReduce任务
1:运行MapReduce任务 1:原始数据准备 统计用户的登录次数: 源数据login_log.txt如下: 7whygb5m@linshiyouxiang.net nuahvuhuoia@qq.c ...
- Arduino系列之中断函数
今天我将简单记录中断函数 函数分为外部中断和定时中断 外部中断的定义:一般由外设发出中断请求,如:键盘中断.打印机中断.外部中断需外部中断源发出中断请求才能发中断. 定时中断的定义:是指主程序在运行一 ...
- QQ IP 地址查询相关
1.QQwry.dat格式分析和查询IP位置的PHP程序 以前的追捕数据库太大,而且很久没有更新了. 所以我想到利用QQwry.dat这个文件查询IP所在位置,QQwry.dat 在很多地方都能找到, ...
- python3调用哈工大ltp
运行环境ubuntu+python3 安装pyltp sudo pip3 install pyltp 下载ltp_data_v3.4.0模型 http://ltp.ai/ 分句 from pyltp ...