博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Dubbo】一、入门概念
阅读量:3915 次
发布时间:2019-05-23

本文共 2156 字,大约阅读时间需要 7 分钟。

文章目录

分布式RPC框架 Apache Dubbo

1. 软件架构的演变

1. 单体架构

当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。

此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。

缺点:

  • 性能扩展比较难
  • 协同开发问题
  • 不利于升级维护

在这里插入图片描述

2. 垂直架构

当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。

通过切分业务来实现各个模块独立部署,降低了维护和部署的难度,团队各司其职更易管理,性能扩展也更方便,更有针对性。

缺点:

  • 公用模块无法重复利用,开发性的浪费

在这里插入图片描述

3. SOA架构

SOA全称为 Service-Oriented Architecture,即面向服务的架构。它可以根据需求通过网络对松散耦合的粗粒度应用组件(服务)进行分布式部署、组合和使用。一个服务通常以独立的形式存在于操作系统进程中。

站在功能的角度,把业务逻辑抽象成可复用的服务,通过服务的编排实现业务的快速再生,目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用。

架构说明:

将重复功能或模块抽取成组件的形式,对外提供服务,在项目与服务之间使用ESB (企业服务总线)的形式作为通信的桥梁。

架构优点:

  • 重复功能或模块抽取为服务,提高开发效率。
  • 可重用性高。
  • 可维护性高。

架构缺点:

  • 各系统之间业务不同,很难确认功能或模块是重复的。
  • 抽取服务的粒度大。
  • 系统和服务之间耦合度高。

在这里插入图片描述

4. 微服务架构

将系统的服务层完全独立处理,抽取为一个个的微服务。

抽取的粒度更细,遵循单一原则。
采用轻量级框架协议传输。

优点:

  • 服务拆分粒度更细,提高开发效率
  • 可以针对不同服务定制对应的方案
  • 适用于互联网,产品的迭代周期更短

缺点:

  • 粒度太细导致服务太多,维护成本高
  • 分布式技术开发成本高

在这里插入图片描述

2. Dubbo简介

1. 什么是RPC

RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

2. 什么是Dubbo

Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

官网:

3. Dubbo架构

在这里插入图片描述

服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。

服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者

监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数调用时间,定时每分钟发送一次统计数据到监控中心

▶调用关系说明

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

3. zookeeper

1. 简介

Zookeeper是Apache Hadoop的子项目,是一个树型的目录服务 , 支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高 ,可用于生产环境,并推荐使用。

在这里插入图片描述

流程说明:

  • 服务提供者(Provider) 启动时:向 / dubbo/ com. foo. BarServi ce/providers目录下写入自己的URL地址
  • 服务消费者(Consumer) 启动时: 订阅/dubbo/ com. foo. Bar Service/providers目录下的提供者URL地址。并向/dubbo/com. foo. BarService/ consumers目录下写入自己的URL地址
  • 监控中心 (Monitor)启动时: 订阅 /dubbo/com. foo. BarService 目录下的所有提供者和消费者URL地址

2. 下载配置

首先下载压缩包,解压后得到如下的文件夹。

在这里插入图片描述
查看zk的配置文件,理解含义。
在这里插入图片描述

双击服务端,开启zookeeper的服务,才能进行后续操作。

这里的服务就是本机的2181端口。
在这里插入图片描述

转载地址:http://uosrn.baihongyu.com/

你可能感兴趣的文章
ASP.NET Core 中基于工厂的中间件激活
查看>>
跟我一起学Redis之Redis事务简单了解一下
查看>>
微软发布VS Code Jupyter插件!不止Python!多语言的Jupyter Notebook支持来了!
查看>>
64岁Python之父加入微软 | 谁说大龄程序员无出路
查看>>
说说 C# 9 新特性的实际运用
查看>>
System.Text.Json中时间格式化
查看>>
怎么将SVG转成PNG(.NET工具包编写)
查看>>
.NET Core3.1升级.NET5,坑还真不少...
查看>>
为什么曾经优秀的人突然变得平庸?
查看>>
.NET 5 中的隐藏特性
查看>>
客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码
查看>>
.NET5都来了,你还不知道怎么部署到linux?最全部署方案,总有一款适合你
查看>>
我画着图,FluentAPI 她自己就生成了
查看>>
BenchmarkDotNet v0.12x新增功能
查看>>
使用 .NET 5 体验大数据和机器学习
查看>>
C# 中的数字分隔符 _
查看>>
持续交付一:从开发到上线的环境
查看>>
使用 docker 构建分布式调用链跟踪框架skywalking
查看>>
深度探秘.NET 5.0
查看>>
Github Actions 中 Service Container 的使用
查看>>