架构学习
1.概念认识
- 软件架构
在软件的内部,考虑综合因素,选特定的技术,将系统划分不同部分,不同模块,并且相互分工和协作 的 一种方案
综合因素有:业务需求,技术栈,成本,组织结构,可扩展性,可维护性
- 单体架构
业务功能都集中在一起,部署运行在同一进程中或机器中
优:易开发,已测试,易部署,易水平伸缩
缺:代码膨胀,难维护(bug分析定位修复成本高,代码量大的时候,开发人员对全局功能了解也非常缺乏,牵一发而动全身,修复这个bug引起其他bug,恶性循环,维护困难)
部署成本大,创新差,难扩展,新人上手难
- 微服务
多微才算微?
- 代码量?
- 开放时间?
- 不可度量 传递的是一种设计思路与思想
微服务的特征
- 单一职责
- 轻量级通信
- 隔离性
- 有自己的数据
- 技术多样性
单体架构:

微服务:


微服务优势
- 独立性
- 敏捷性
- 技术栈灵活
- 高效团队开发
微服务不足
- 额外工作,拆分 (DDD了解一下)
- 数据一致性
- 沟通成本
2.引入微服务带来的问题与解决方案
- 微服务之间如何通讯?
从通讯模式角度考虑:
一对一还是一对多?
同步还是异步?
从通讯协议角度考虑:
Restful api
RPC
MQ如何选择rpc框架
- 微服务如何发现彼此?
传统服务
> 微服务发现
- 微服务怎样部署?更新?扩容?
服务编排
本文深入探讨了软件架构的概念,对比了单体架构与微服务架构的特点与应用场景。阐述了微服务架构的独立性、敏捷性和技术栈灵活性等优势,同时也分析了其额外工作、数据一致性和沟通成本等问题。并提供了微服务间通讯、服务发现与部署的解决方案。









> 微服务发现

8万+

被折叠的 条评论
为什么被折叠?



