简介
为了解决项目耦合,提高并发能力,早期项目是如何做到的呢?
- 单体架构:单一工程中,包含所有模块模块间存在紧密耦合
- 分布式SOA架构:核心业务抽取出来,作为独立的服务通过RPC进行远程通信
- 微服务架构:服务组件化 使用REST API交互
SOA架构:SOA:(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过接口协议来完成服务间通信。
服务间通过RPC进行远程调用
目前Dubbo在企业中有两种开发思路
- 基于SOA思想:将传统单一应用拆分为web(消费者)模块和service(提供者)模块,基于Dubbo通信
- 辅助SpringCloud架构提升效率:Dubbo基于TCP(传输层)协议,效率更高。可以替换Feign(HTTP协议),提升高并发压力
Dubbo的快速入门
远程调用存在的问题:
- 服务消费者该如何获取服务提供者的地址信息?使用Nacos进行获取
- 当服务提供者发生变化时如何进行快速切换?Nacos进行通知
- 提供者和消费者如何监控?Nacos监控服务
基本架构