Dubbo
【黑马程序员Dubbo快速入门,Java分布式框架dubbo教程】
1 分布式系统中的相关概念
文章目录
- Dubbo
- 1 分布式系统中的相关概念
- 1.3 架构演进
- 1.3.1 架构演进
- 1.3.2 架构演进 - 单体架构
- 1.3.3 架构演进 - 垂直架构
- 1.3.4 架构演进 - 分布式架构
- 1.3.5 架构演进 - SOA 架构
- 1.3.6 微服务架构
1.3 架构演进
1.3.1 架构演进
1.3.2 架构演进 - 单体架构
优点:
- 简单:开发部署都很方便,小型项目首选
缺点:
- 项目启动慢
- 可靠性差
- 可伸缩性差
- 扩展性和可维护性差
- 性能低
1.3.3 架构演进 - 垂直架构
- 垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构。
单体架构存在的问题:
- 项目启动慢
- 可靠性差
- 可伸缩性差
- 扩展性和可维护性差
- 性能低
垂直架构存在的问题:
- 重复功能太多
1.3.4 架构演进 - 分布式架构
- 分布式架构是指在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用。
- RPC: Remote Procedure Call 远程过程调用。有非常多的协议和技术来都实现了RPC的过程。比如:HTTP REST风格,Java RMI规范、WebService SOAP协议、Hession等等。
垂直架构存在的问题:
- 重复功能太多
分布式架构存在的问题:
-
服务提供方一旦产生变更,所有消费方都需要变更。
1.3.5 架构演进 - SOA 架构
- SOA:(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。
- ESB:(Enterparise Service Bus) 企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。ESB 包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。
分布式架构存在的问题
服务提供方一旦产生变更,所有消费方都需要变更
1.3.6 微服务架构
- 微服务架构是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
- 微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想
特点:
- 服务实现组件化:开发者可以自由选择开发技术。也不需要协调其他团队
- 服务之间交互一般使用REST API
- 去中心化:每个微服务有自己私有的数据库持久化业务数据
- 自动化部署:把应用拆分成为一个一个独立的单个服务,方便自动化部署、测试、运维
【小结】
Dubbo 是 SOA时代的产物,SpringCloud 是微服务时代的产物