初始微服务
什么是软件架构
软件架构是在软件的内部,经过综合各种因素的考量、权衡,选择特定的技术,将系统划分成不同的部分并使这些部分相互分工,彼此协作,为用户提供需要的价值。
哪些因素
业务需求
技术栈
成本
组织架构
可扩展性
可维护性
软件脚骨的进化
一层架构
MVC
dubbo
什么是单体架构
功能、业务集中在一个发布包里,部署运行在同一个进程中
单体架构的优势
易于开发
易于测试
易于部署
易于水平伸缩
单体架构面临的挑战
代码膨胀、难以维护
构建、部署成本大
新人上周困难
创新困难
可扩展性差
什么是微服务
使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署
微服务的特征
单一职责
轻量级通信(rest api)
隔离性
有自己的数据,即业务数据独立性
技术多样性
微服务诞生背景
互联网行业的快速发展
敏捷开发、精益方法深入人心
容器技术的成熟
微服务架构的优势
独立性
敏捷性
技术栈灵活
高效团队
微服务架构的不足
额外的工作:服务的拆分
数据一致性
沟通成本