哈喽各位同学们大家好呀,小编今天带着开发者学院中课程“微服务架构的设计策略 ”干货总结来了~一起学习新课程吧!
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇
课程名称:微服务架构的设计策略
课程地址:https://developer.aliyun.com/learning/course/60/detail/1111
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java
微服务架构的设计策略
咱们这节课重点关注如何进行微服务架构设计。第一阶段我们主要是偏重理论体系和微服务相关的整个系统的重要概念原则,会给大家介绍打下坚实的基础,为后面的实战练习做铺垫。
学习分三大阶段
- 微服务Microservice的设计原则
- 微服务架构的设计原则
- 微服务Microservice设计的关注点
首先大家来思考一个问题,如果让你做微服务架构设计的话,你怎么样去设计微服务?你的微服务应该具备哪些特点的特性?
给大家总结重要的一点,我们记住一个问题,微服务架构本身也属于分布式架构,只不过它是更复杂的分布式架构。我们在讲微服务概念的时候,咱们提到过微服务实际它是诞生于SoA时代所以它还具备SoA架构的一些特点,记住我们所有的架构设计有很重要的一个原则:
需求第一:一定要以需求为出发点。所有的架构好与坏一定是相对的,相对他处的一个需求背景。因为微服务架构能够在某些业务场景中具备优势,所以它相比传统的架构,他有一些优点但是同时也存在着缺点,它不完美。
单一职责:我们的服务尽量是体现单一职责的思想,粒度不是越细越好,也不是越粗越好。
协议统一:还有尽量去统一协议,不包括不得已的话,我们不引入其他协议像我们一般微服务的话,咱们讲现在目前的协议主要是rest有可能会比如说有可能你会引入消费者的协议,或者引入其他的这种通讯协议,当然在我们说都是基于实际的需求
独立开发:独立开发一般咱们这里面提到的我们说的是模块拆分以后开发人员一般是独立我们按照模块进行拆分,然后每个人负责一块,每个人熟悉一块代码和逻辑业务逻辑这样的话开发时间都会相对来说高很多
独立部署:独立部署这也是微服架构的很重要的一个原则,咱们讲了微服务架构拆分以后又会出现可能很多程序很多进程,而且每一个模块不是所有的都更新只需要迭代我那一块就行了,就是体现了我们说叫分而治之的这样一个思想,大家一起统一部署。
微服务Microservice的拆分原则
按照业务模块拆分
你找一个大概的服务,拆分力度的话一般的话还是基于业务。
DDD思路可以借鉴,不能照搬
DDD本身不是架构设计模式,DDD是一种但是在向对象设计的一个思想或者原则,它是用来解决复杂业务逻辑的一个拆分问题的,它本身并不解决整个架构层次的问题,它是解决业务层的,理解这一点。
单一职责 Single Responsibility
电商架构设计:
- 账号模块
- 商品模块
- 订单模块
- 评论模块
- 快递模块
- 短信模块
- 支付模块
- 卡券模块
- 信用模块
- 酒店模块
场景它本身就像个生态一样,它里面接入的功能模块多,这里面天生适合和足够庞大的基础上适合分人制快速迭代。微服务架构,新的业务诞生早期可能只有两三台服务器,后面的话做起来可能上千台服务器。包括游戏也一样前端很多平台是属于导游的模式,加入一个模块进来,这个平台作为一个入口。拆分原则一般的话我们是基于业务进行拆分,或者你也可以说是DDD.
微服务架构设计的关注点
微服务Microservice设计的关注点
微服务架构的新特性
微服务Microservice设计的五大考量
微服务架构设计的5大考量
一个架构师它采用的微服务架构一定要说服别人需要给个合适的理由。服务架构里面在做事物的话是比较难的,所以要注意一个数据一致性问题。