Dubbo(一):基础知识详解

本文深入介绍了Dubbo的基础知识,包括软件架构的发展(单体、垂直、SOA、微服务)、Dubbo的基本概念和作用,以及推荐使用Zookeeper作为服务注册中心。此外,还详细阐述了Zookeeper的树形目录结构、监听通知机制和单机版安装。在项目实践中,讲解了SpringBoot与Dubbo的集成,以及使用和服务发布注意事项,最后提到了负载均衡和事务管理的问题。
摘要由CSDN通过智能技术生成

Dubbo基础知识

一:基本概念
软件架构的发展过程

单体架构-----垂直架构-----SOA架构-----微服务架构

  • 单体架构:(All In One)所有的服务集中在一个应用,扩展时需要横向扩展整个系统(成本较高)。
    • 优点:适用于小型项目,开发部署简单易用
    • 缺点:大型项目不易开发与维护;只能使用一种开发语言;扩展成本高
  • 垂直架构:根据业务进行整个应用的切割,拆成几个互不影响的应用。
    • 举例说明下:一个系统包含用户管理,订单模块,物流模块,垂直架构就是,将系统根据业务分为用户管理和订单模块用户管理和物流模块两个应用,分别部署,由于公用模块用户管理无法复用,这也是垂直架构的一个痛点。
    • 优点:实现了系统的业务的分离,能够进行模块的单独部署
    • 缺点:系统的切割粒度过大;扩展只能采用集群方式;公共模块无法复用,项目之间功能冗余。
  • SOA架构(Service-Oriented Architecture):面向服务架构
    • 定义:将重复的功能或模块抽取成组件的形式,对外服务;项目与服务之间使用ESB(企业服务总线)的形式作为通信的桥梁。
    • 缺点:依赖于ESB(中央管理模式进行各应用之间的交互运作)。
  • 微服务架构:单独部署,独立运行。
    • 定义:将系统服务完全独立出来,抽取为一个个职责单一的服务,服务之间采用轻量级的框架协议(Http)进行交互。
    • 优点:每个服务足够内聚,足够小,代码容易理解、开发效率提高;服务之间可以独立部署,微服务架构让持续部署成为可能;每个服务可以各自进行横向扩展和纵向扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;容易扩大开发团队,可以针对每个服务(service)组件开发团队;提高容错性(fault isolation),一个服务的内存泄露并不会让整个系统瘫痪;系统不会被长期限制在某个技术栈上。
    • 缺点:从优点中推其缺点
      • 服务众多,难以维护与管理(Dubbo+ZK,SpringCloud)。
      • 服务间交互通讯是不可靠的(RPC)
      • 分布式事务处理(数据一致性)
      • 单独部署就意味着每一个服务都拥有自己数据落地存储(MySQL),也就意味着微服务的扩展,只能采用集群方式。

SOA机构与微服务架构一脉相承,微服务架构做了更细致的处理(服务的颗粒度更小,去中心化,去ESB)。

功能 SOA 微服务
组件大小 大块业务逻辑 单独任务或小块业务逻辑
耦合 通常松耦合 总是松耦合
公司架构 任何类型 小型、专注于功能交叉的团队
管理 着重中央管理 着重分散管理
目标 确保应用能够交互操作 执行新功能,快速拓展开发团队
Dubbo概念简介

以下内容摘自dubbo官网:

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

dubbo就是一款解决服务间通信的框架,它能让不在一台服务器的各个服务进行相互调用,对使用者来说就像调用本地方法一样,并为我们整合了智能容错和负载均衡,当某个服务不可用或是当某个服务新增时dubbo会自动发现并注册他们。dubbo还提供了管理控制台,我们可以很直观的看到当前注册中心的状态以及注册中心中注册的服务(包括服务的提供者和消费者;dubbo推荐ZK作为其注册中心),还可以对这些服务进行各种管理,包括服务动态配置,负载均衡,访问控制,权重管理等等

二:基本结构与流程

dub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值