1.分布式技术栈

这些技术栈都是_为了更好的开发分布式架构的项目_。
(大营销平台的系统框架如下图,扩展的分布式技术栈)
在这里插入图片描述

(1)Dubbo——分布式技术栈

Dubbo+Nacos注册中心是应用可以分布式部署,并且提供RPC接口

(2)Zookeeper——分布式技术栈

动态配置,通过动态配置对熔断限流进行操作

(3)任务调度xxxl-job——分布式技术栈

(4)ES——分布式技术栈

数据同步——分布式技术栈
分库、分表——分布式技术栈
因为分库分表了,所以引入阿里云的cana框架将数据同步到Elasticsearch(ES)进行聚合查询。

(5)RPC——分布式技术栈

Http,RPC都是接口间的通信方式
分布式系统的通信解决方案,基于Socket通信。

将A扩容,分布式部署,来满足流量,提高系统承载量
A提供RPC服务,B调用A提供的RPC服务。
RPC的调用需要对外提供一个接口描述。

Http, RPC区别

在这里插入图片描述
(上图描述:前台系统调用前台系统、交易系统、支付系统等,这每一个都是一个微服务)
简单架构
当使用Http接口通信,使用Nginx负载将a,b,c这些应用负载到应用A上去(就是使用Nignx提供服务)。

在这里插入图片描述
对于大型应用
使用RPC,有个注册中心nacos,将应用a,b,c注册到nacos中。

2.微服务架构

微服务是_对系统拆分的方式_。

(1)MVC——微服务架构

在这里插入图片描述

(2)DDD——微服务架构

(Domain-Driven Design 领域驱动设计)
DDD与MVC同属微服务架构
是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题。

MVC, DDD区别

在这里插入图片描述
也就是说,这些domainA里的这些对象都是用于服务自己的领域,不会去服务其他领域。
而MVC里聚集着各种不同业务的对象。

名词总结:

在代码发那个面这一整 个Project:叫做工程
业务:比如抽奖、添加购物车、删除购物车
系统(应用):整个外卖平台、营销平台。有的时候也分开把每个微服务叫系统比如前台系统、交易系统、支付系统等
微服务:一套商城内,商品、支付、发货、结算、营销(抽奖、优惠券)每一个是一套微服务,来构成整个商城。