Dubbo【概述】

一、概念

1.Dubbo介绍

Dubbo是阿里巴巴的一个开源的高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo框架,是基于容器运行的。容器是Spring。

    官网:http://dubbo.apache.org/
    阿里巴巴已经将dubbo框架捐献给了Apache软件基金会

2.单体架构

    单体架构也称之为单体系统或者是单体应用。就是一种吧系统中所有的功能,模块耦合在一个应用中的架构方式。
其优点为:
    项目易于管理,部署简单
缺点:
    测试成本高,可伸缩性差,可靠性差,迭代困难,跨语言程度差,团队协作难

3.SOA架构

    面向服务的架构(SOA-Service-Oriented Architecture)是一个组件模型,它将应用程序拆分成不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台,操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

4.RPC远程过程调用

    远程过程调用协议(Remote Procedure Call Protocol),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式的程序在内的应用程序更加容易。

二、Dubbo框架结构图

1.Dubbo角色介绍

在这里插入图片描述

1.1registry

    注册中心. 是用于发布和订阅服务的一个平台.用于替代 SOA 结构体系框架中的 ESB 服务总线的。

1.1.1发布

    开发服务端代码完毕后, 将服务信息发布出去. 实现一个服务的公开.

1.1.2订阅

    客户端程序,从注册中心下载服务内容 这个过程是订阅.
    订阅服务的时候, 会将发布的服务所有信息,一次性下载到客户端.客户端也可以自定义, 修改部分服务配置信息. 如: 超时的时长, 调用的重试次数等.

1.2consumer

    服务的消费者, 就是服务的客户端.
    消费者必须使用 Dubbo 技术开发部分代码. 基本上都是配置文件定义.

1.3provider

    服务的提供者, 就是服务端.
    服务端必须使用 Dubbo 技术开发部分代码. 以配置文件为主.

1.4container

    容器. Dubbo 技术的服务端(Provider), 在启动执行的时候, 必须依赖容器才能正常启动.
    默认依赖的就是 spring 容器. 且 Dubbo 技术不能脱离 spring 框架.
    在 2.5.3 版本的 dubbo 中, 默认依赖的是 spring2.5 版本技术. 可以选用 spring4.5 以下版本.
    在 2.5.7 版本的 dubbo 中, 默认依赖的是 spring4.3.10 版本技术. 可以选择任意的 spring版本.

1.5monitor

    监控中心,是 Dubbo 提供的一个jar工程.
    主要功能是监控服务端(Provider)和消费端(Consumer)的使用数据的. 如: 服务端是什么,有多少接口,多少方法, 调用次数, 压力信息等. 客户端有多少, 调用过哪些服务端, 调用了多少次等.

2.Dubbo架构图的执行流程

2.1Dubbo执行流程

  1. start:启动Spring容器时,自动启动Dubbo的Provider
  2. register:Dubbo的Provider在启动后自动回去注册中心注册内容,注册的内容包括:
	Provider 的 IP
	Provider 的端口
	Provider 对外提供的接口列表,哪些方法,哪些接口
	Dubbo 的版本
	访问 Provider 的协议
  1. subscribe:订阅,当Consumer 启动时,自动去Registry获取到已注册的服务的信息
  2. notify:通知,当Provider的信息发生变化时,自动由Registry向Consumer推送通知。
  3. invoke:调用,Consumer 调用Provider中方法
	同步请求,消耗一定性能,但是必须是同步请求,因为需要接收调用方法后的结果
  1. count:次数,每隔2分钟,provider 和 consumer 自动向Monitor 发送访问次数,Monitor进行统计

3.Dubbo支持的协议

3.1Dubbo协议(官方推荐协议)

特点说明
优点采用 NIO 复用单一长连接,并使用线程池并发处理请求
减少握手和加大并发效率,性能较好(推荐使用)
缺点大文件上传时,可能出现问题(不使用Dubbo文件上传)

3.2RMI(Remote Method Invocation)协议

特点说明
优点JDK 自带的能力。可与原生 RMI 互操作,基于TCP协议
缺点偶尔连接失败

3.3Hessian

特点说明
优点可与原生 Hessian 互操作,基于HTTP协议
缺点需 Hessian.jar 支持,http 短连接的开销大

4.Dubbo支持的注册中心

4.1Zookeeper(官方推荐)

特点说明
优点支持分布式,很多周边产品
缺点受限于Zookeeper 软件的稳定性,Zookeeper 专门分布式辅助软件,稳定较优

4.2Multicast

特点说明
优点去中心化,不需要单独安装软件
缺点Provider 和 Consumer 和Registry 不能跨机房(路由)

4.3Redis

特点说明
优点支持集群,性能高
缺点要求服务器时间同步,否则可能出现集群失败问题

4.4Simple

特点说明
优点标准RPC服务,没有兼容问题
缺点不支持集群

三、Zookeeper

在Dubbo中,我们选择Zookeeper来搭建服务治理中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值