微服务架构设计的首要任务就是合理划分微服务,即围绕业务功能创建微服务项目。在划分微服务时,有关微服务粗细粒度的考量,建议在平台创建的初始阶段使用粗粒度的方法,按业务功能进行划分。随着业务的发展及其运营的情况,再依据发展规模考虑是否继续细分。下面,我们将使用水平划分法和垂直划分法两种方法相结合的方式创建微服务
一方面在水平方向上:
根据业务功能划分微服务,并把这次划分所创建的微服务称为REST API微服务。REST API微服务负责业务功能的行为设计,主要完成数据管理方面的工作,并通过使用REST协议,对外提供接口服务。
另一方面在垂直方向上:
再以REST API微服务为基础,实现前后端分离设计,创建Web UI微服务。Web UI微服务不直接访问数据,它只专注于人机交互界面的设计,它的数据存取将通过调用REST API微服务来完成。这样,经过两次微服务划分,我们就可以创建出REST API和Web UI两种类型的微服务。也就是说,我们只要使用两种类型的微服务,就可以构建一个复杂的业务系统。
使用REST API和Web UI微服务,结合高性能和高并发的设计,再通过微服务的多副本发布,就可以构建一个能适应任何规模访问的、多维的、稳定牢固的网格结构,并且这个网格结构还具有自由伸缩的特性,可以根据业务的发展规模进行扩充或者缩编,这样就可以快速地搭建一个可持续扩展的系统平台
软件架构设计的流程,从项目立项--》项目需求--》项目设计--》项目开发
架构设计名词解析 |
---|
火龙果软件架构设计---softwear archietcure good | 架构设计的本质 |
---|
解道 | 凤凰架构---构建可靠的大型分布式系统 ” | 周志明的软件架构课 | 为什么这么设计---程序设计决策 |
---|
UMLchina---潘加宇 | 软件需求设计方法学全程实例剖析幻灯片---潘加宇 | 《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题---潘加宇 |
---|
[2020.01加一套题]UMLChina建模竞赛题大全-题目全文+分卷自测(11套110题)---潘加宇 | UMLChina建模竞赛题答案及解析------潘加宇 |
---|
- 人人都懂设计模式:从生活中领务设计模式
- 设计模式就该这样学:基于经典框架源码和真实业务场景---2020
- 重学JAVA设计模式
- 研磨设计模式
- 给前端同学学的7种设计模式精讲课
- Spring 框架使用了哪些设计模式?
- 微服务架构中的10个最重要的设计模式
- 从程序员到架构师:大数据量、缓存、高并发、微服务、多团队协同等核心 2022
- 大话软件工程:需求分析与软件设计---2019 【good】
- 软件需求最佳实践
- 架构真意:企业级应用架构设计方法论与实践
- 高性能JAVA架构: 核心原理与案例实战
- 软件架构设计:大型网站技术架构与业务架构融合之道
- 一线架构师实践指南---温立
- 软件架构设计(第2版---温立)
- 实用软件架构: 从系统环境到软件部署---IBM 工程师所写
- 架构整洁之道---2018
- 大型网站技术架构--李智慧
- 系统架构设计---2017
- 企业互联网架构原理---2021
- 软件方法: 业务建模和需求---重点讲业务建模 系统建模 业务用例 业务时序图 需求用例等知识---
- 架构解密: 从分布式到微服务(第2版)---2020 不论你是有十几年研发经验及架构经验的IT老手,还是刚入门系统架构的IT新手,本书都能对你理解分布式架构和微服务架构大有助益,对分布式、微服务、云原生、K8s、Service Mesh等发展脉络和原理进行深度解密
- 超大流量分布式系统架构解决方案: 人人都是架构师2.0---2020
- 架构真意:企业级应用架构设计方法论与实践---2021
- 软件架构设计: 大型网站技术架构与业务架构融合之道---2018
- 可伸缩架构(第2版): 云环境下的高可用与风险管理---2021
- 分布式系统设计实践
- 软件框架的设计---代表着业界最高的设计水准,对你学习软件框架的架构设计与实现原理同样会有非常大的帮助
- 复杂软件设计之道: 邻域驱动设计全面解析与实战---2020
- 实现邻域驱动设计
- DDD 建模工作坊指南
- 事件风暴EventStorming建模法
- 深入实践DDD: 以DSL驱动复杂软件开发---2021
- 邻域驱动设计---2020
- DDD(领域驱动设计)思想解读及优秀实践【完结】---视频
- Springboot领域驱动开发
- DDD(领域驱动设计)DDD 微服务落地实战
- Spring微服务架构设计---2020
- Spring 微服务架构设计---2020 如何用SpringBoot 和 Spring Cloud 开发微服务系统,如何演进微服务,微服务的日志管理和监控,如何用Docker, Mesos 和 Marathon管理互联网级微服务架构
- 微服务设计: 企业架构转型之道---2019 如何规划企业架构 ,包括业务架构 因用架构 数据架构 和技术架构, 企业架构的服务化过程 以及其完成后的企业服务架构的微服务过程 企业微服务架构的治理和管理
- Kubernetes微服务实战
- SOA架构: 服务和微服务分析及设计---2017
- 微服务分布式架构开发实战
- Istio服务网络技术解析与实践
- Service Mesh实战:基于Linkerd和kubernetes的微服务实践
- Service Mesh 微服务架构设计
- Istio服务网洛计术解析与实践
- istio实战指南
- Service Mesh实战:用Istio软负载实现服务网格
- 深入浅出Istio: Service Mesh快速入门与实践
- istio入门与实战
- 云原生服务网格Istio: 原理 实践 架构与源码解析
大型电商平台微服务设计入门案例 |
---|
张传波 软件设计是怎样炼成的---实际操作的步骤 | 凤凰架构---构建可靠的大型分布式系统 周志明 | 周志明的软件架构课 | 为什么这么设计---程序设计决策 |
---|
高并发架构的整体思路 |
---|
企业总体架构要如何做?小白也能快速领悟的设计思想 | 架构师是怎样炼成的 |
---|
MVC设计架构落地案例---看完这篇,别人的开源项目结构应该能看懂了 | MVC架构杂谈 |
---|
阿里巴巴公司中优秀的代码都是如何分层的? | java web开发中的各种层 | 一文教会你如何写复杂业务代码 |
---|
面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,结合实际的业务场景,我沉淀了一套“如何写复杂业务代码”的方法论,一文教会你如何写复杂业务代码 |
---|
应用架构之道:分离业务逻辑和技术细节 | 用架构方法实现业务架构与应用架构对准 |
---|
业务-应用-数据-技术架构的正向设计方法 | 解剖实体框架 |
---|
我是怎么画架构图的 |
---|
架构设计实践五部曲(一):架构与架构图 | 架构设计实践五部曲(二):业务架构与产品架构设计实践 | 架构设计实践五部曲(三):从领域模型提取数据架构 |
---|
架构设计实践五部曲(四):单体式与分布式的应用架构 | 架构设计实践五部曲(五):技术架构的战略和战术原则 |
---|
国内主流在用的10大后台UI框架,私活必备 |
---|
都说软件架构要分层、分模块,具体应该怎么做之一 | 都说软件架构要分层、分模块,具体应该怎么做之二 | 业务架构实践:一步一步画出业务架构图 |
---|
需求分析挑战之旅——疯狂的订餐系统 |
---|
架构收藏必备:架构设计的六大原则 | 架构设计:微服务架构如何划分?这6个标准原则让你一目了然 |
---|
软件架构入门 | 程序员必知的几种软件架构模式 |
---|
软件开发模型的演化 | 十种软件架构设计模式(Architectural Pattern | 四种软件架构演进史,程序员会一种就很牛了 |
---|
项目经理小姐姐非要给我讲一讲,项目开发规范和流程!---项目开发的工具 |
---|
耦合到底意味着什么呢 | Software Design Tutorial #1 | Software Design Tutorial #2 |
---|
软件架构设计模式(Architectural Pattern)不同于设计模式(Design Pattern) | Java架构:一文读懂微服务架构的重构策略 |
---|
程序员转型架构师,推荐你读这几本书 |
---|
UML学习入门就这一篇文章 | 活用类图——分析业务概念模型(图文) |
---|
- UML
- 软件设计模式
- 架构设计的目的
- 软件架构设计思想路线
- 性能的需求,容错能力、技术异构、职责划分等各方面因素都成为架构需要考虑的问题
- 系统分析与设计的三个发展阶段
- 第一阶段:面向数据驱动分析与设计
- 第二阶段:面向对象和服务分析与设计,不管是在面向对象分析与设计中还是在面向服务分析与设计中,都带来了一个致命的缺点:分析阶段和设计阶段都是分开的、割裂的,不能很好地衔接
- 第三阶段:领域驱动设计,使用统一的模型来满足分析与设计的需求
- 软件架构设计思想路线
- 架构设计分类
- 业务架构---业务架构是决定一个软件项目能否顺利开展的总纲,软件架构是业务架构在技术层面的映射,合理的开发分工也应该基于业务架构去做。如果没有业务架构,进行软件开发就会很盲目。业务架构是需求和开发的汇聚点,需求分析是否做到位,功能开发是否达到预期目标,都以此为依托
- 应用架构
- 数据架构
- 静态部分的内容---静态部分的内容的重点是数据元模型、数据模型,包括主数据、共享动态数据和所有业务相关的业务对象数据的分析和建模
- 动态部分的内容---动态部分的内容的重点则是对数据全生命周期的管控和治理
- 技术架构
- 软件架构设计8步骤---从需求到架构验证
- 架构设计的流程
- 1. 需求工程
- 2. 邻域建模
- 3. 确定关键需求
- 4. 概念架构设计==分层架构设计和API设计
- 5. 细化架构设计==模块设计
- 6 数据库架构设计
- 7 用户体验架构设计
- 8. 架构验证
- 软件架构风格的演进
- 大型机架构风格(Mainframe)
- 原始分布式架构风格(Distributed)
- Spring Boot 实现单体架构(Monolithic)---单体”只是表明系统中主要的过程调用都是进程内调用,不会发生进程间通信,仅此而已
- Spring Cloud 为基础设施实现微服务架构---初步解决了扩容缩容、独立部署、运维和管理等问题, 在Spring Cloud架构中选择在应用层面而不是基础设施层面去解决分布式问题,完全是因为由硬件构成的基础设施,跟不上由软件构成的应用服务的灵活性的无奈之举,通过代码来解决分布式问题的可配置、安全和可观测性
- Kubernetes 为基础设施的微服务架构---Spring Cloud Kubernetes 的技术架构, 当 Kubernetes 统一了容器编排管理系统之后,这些纯技术性的分布式问题,便开始有了被广泛认可和采纳的基础设施层面的解决方案
- 后微服务架构风格:云原生时代(Cloud Native)
- 无服务架构(Serverless)
- CQRS模式架构
- 设计架构的套路
- 架构设计6个原则
- 决定如何划分顶级子系统
- 设计模式
我做的项目中通常每个项目至少需要1份架构设计文档、1份数据库设计文档、0到多份模块设计文档和1份用户体验设计文档
软件架构设计为什麽难?因为它是跨越现实世界(问题领域)到计算机领域(解决方案)之间的一座桥,需求分析是明确“问题领域”,将要解决的问题以 "功能 + 质量 + 约束"的形式定义下来,但需求不管做得再细,也没有打破“系统是黑盒子”这一点,软件架构设计就是完成从面向问题领域到面向解决方案的转换 (进入系统黑盒子)
-
Spring Util、entity、model、DAO、DTO、view、mapper、service、controller文件夹用途
-
系统架构设计-从程序员向架构师转型之路.pdf
-
软件是这样“炼”成的 从软件需求分析到软件架构设计.pdf
-
software-architecture-patterns.pdf
-
软件需求十步走 新一代软件需求工程实践指南.pdf
-
软件架构设计(第二版):程序员向架构师转型必备.pdf 温昱