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